@docusaurus/bundler 4.0.0-canary-6899 → 4.0.0-canary-6903
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/importFaster.d.ts +0 -2
- package/lib/importFaster.d.ts.map +1 -1
- package/lib/importFaster.js +0 -5
- package/lib/importFaster.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/minification.d.ts +1 -2
- package/lib/minification.d.ts.map +1 -1
- package/lib/minification.js +25 -38
- package/lib/minification.js.map +1 -1
- package/lib/minifyHtml.d.ts +1 -4
- package/lib/minifyHtml.d.ts.map +1 -1
- package/lib/minifyHtml.js +2 -35
- package/lib/minifyHtml.js.map +1 -1
- package/package.json +7 -8
- package/src/importFaster.ts +0 -11
- package/src/index.ts +1 -5
- package/src/minification.ts +30 -46
- package/src/minifyHtml.ts +2 -42
package/lib/importFaster.d.ts
CHANGED
|
@@ -4,10 +4,8 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import type { MinimizerOptions as JsMinimizerOptions, CustomOptions } from 'terser-webpack-plugin';
|
|
8
7
|
export type FasterModule = Awaited<typeof import('@docusaurus/faster')>;
|
|
9
8
|
export declare function importRspack(): Promise<FasterModule['rspack']>;
|
|
10
9
|
export declare function importRspackDevServer(): Promise<FasterModule['rspackDevServer']>;
|
|
11
10
|
export declare function importGetSwcLoaderOptions(): Promise<FasterModule['getSwcLoaderOptions']>;
|
|
12
|
-
export declare function importSwcJsMinimizerOptions(): Promise<JsMinimizerOptions<CustomOptions>>;
|
|
13
11
|
//# sourceMappingURL=importFaster.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importFaster.d.ts","sourceRoot":"","sources":["../src/importFaster.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"importFaster.d.ts","sourceRoot":"","sources":["../src/importFaster.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,oBAAoB,CAAC,CAAC,CAAC;AAmBxE,wBAAsB,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAGpE;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CACpD,YAAY,CAAC,iBAAiB,CAAC,CAChC,CAGA;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CACxD,YAAY,CAAC,qBAAqB,CAAC,CACpC,CAGA"}
|
package/lib/importFaster.js
CHANGED
|
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.importRspack = importRspack;
|
|
10
10
|
exports.importRspackDevServer = importRspackDevServer;
|
|
11
11
|
exports.importGetSwcLoaderOptions = importGetSwcLoaderOptions;
|
|
12
|
-
exports.importSwcJsMinimizerOptions = importSwcJsMinimizerOptions;
|
|
13
12
|
const tslib_1 = require("tslib");
|
|
14
13
|
const logger_1 = tslib_1.__importDefault(require("@docusaurus/logger"));
|
|
15
14
|
async function importFaster() {
|
|
@@ -35,8 +34,4 @@ async function importGetSwcLoaderOptions() {
|
|
|
35
34
|
const faster = await ensureFaster();
|
|
36
35
|
return faster.getSwcLoaderOptions;
|
|
37
36
|
}
|
|
38
|
-
async function importSwcJsMinimizerOptions() {
|
|
39
|
-
const faster = await ensureFaster();
|
|
40
|
-
return faster.getSwcJsMinimizerOptions();
|
|
41
|
-
}
|
|
42
37
|
//# sourceMappingURL=importFaster.js.map
|
package/lib/importFaster.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importFaster.js","sourceRoot":"","sources":["../src/importFaster.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"importFaster.js","sourceRoot":"","sources":["../src/importFaster.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAEH,wEAAwC;AAIxC,KAAK,UAAU,YAAY;IACzB,OAAO,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,IAAI,CAAC;QACH,OAAO,MAAM,YAAY,EAAE,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,+DAA+D,gBAAM,CAAC,IAAI,CACxE,oBAAoB,CACrB,2BAA2B,EAC5B,EAAC,KAAK,EAAE,KAAK,EAAC,CACf,CAAC;IACJ,CAAC;AACH,CAAC;AAEM,KAAK;IACV,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAEM,KAAK;IAGV,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,eAAe,CAAC;AAChC,CAAC;AAEM,KAAK;IAGV,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,mBAAmB,CAAC;AACpC,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
export { printStatsWarnings, formatStatsErrorMessage, compile } from './compiler';
|
|
8
8
|
export { getCurrentBundler, getCSSExtractPlugin, getCopyPlugin, getProgressBarPlugin, registerBundlerTracing, } from './currentBundler';
|
|
9
9
|
export { getMinimizers } from './minification';
|
|
10
|
-
export { getHtmlMinifier, type HtmlMinifier
|
|
10
|
+
export { getHtmlMinifier, type HtmlMinifier } from './minifyHtml';
|
|
11
11
|
export { createJsLoaderFactory } from './loaders/jsLoader';
|
|
12
12
|
export { createStyleLoadersFactory } from './loaders/styleLoader';
|
|
13
13
|
export { importRspackDevServer } from './importFaster';
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAE,OAAO,EAAC,MAAM,YAAY,CAAC;AAEhF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAE,OAAO,EAAC,MAAM,YAAY,CAAC;AAEhF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAE,KAAK,YAAY,EAAC,MAAM,cAAc,CAAC;AAChE,OAAO,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAC,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAC,qBAAqB,EAAC,MAAM,gBAAgB,CAAC"}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,uCAAgF;AAAxE,8GAAA,kBAAkB,OAAA;AAAE,mHAAA,uBAAuB,OAAA;AAAE,mGAAA,OAAO,OAAA;AAE5D,mDAM0B;AALxB,mHAAA,iBAAiB,OAAA;AACjB,qHAAA,mBAAmB,OAAA;AACnB,+GAAA,aAAa,OAAA;AACb,sHAAA,oBAAoB,OAAA;AACpB,wHAAA,sBAAsB,OAAA;AAGxB,+CAA6C;AAArC,6GAAA,aAAa,OAAA;AACrB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,uCAAgF;AAAxE,8GAAA,kBAAkB,OAAA;AAAE,mHAAA,uBAAuB,OAAA;AAAE,mGAAA,OAAO,OAAA;AAE5D,mDAM0B;AALxB,mHAAA,iBAAiB,OAAA;AACjB,qHAAA,mBAAmB,OAAA;AACnB,+GAAA,aAAa,OAAA;AACb,sHAAA,oBAAoB,OAAA;AACpB,wHAAA,sBAAsB,OAAA;AAGxB,+CAA6C;AAArC,6GAAA,aAAa,OAAA;AACrB,2CAAgE;AAAxD,6GAAA,eAAe,OAAA;AACvB,+CAAyD;AAAjD,iHAAA,qBAAqB,OAAA;AAC7B,qDAAgE;AAAxD,wHAAA,yBAAyB,OAAA;AACjC,+CAAqD;AAA7C,qHAAA,qBAAqB,OAAA"}
|
package/lib/minification.d.ts
CHANGED
|
@@ -5,9 +5,8 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import type { WebpackPluginInstance } from 'webpack';
|
|
8
|
-
import type { CurrentBundler
|
|
8
|
+
import type { CurrentBundler } from '@docusaurus/types';
|
|
9
9
|
export type MinimizersConfig = {
|
|
10
|
-
faster: Pick<FasterConfig, 'swcJsMinimizer'>;
|
|
11
10
|
currentBundler: CurrentBundler;
|
|
12
11
|
};
|
|
13
12
|
export declare function getMinimizers(params: MinimizersConfig): Promise<WebpackPluginInstance[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minification.d.ts","sourceRoot":"","sources":["../src/minification.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"minification.d.ts","sourceRoot":"","sources":["../src/minification.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC;AACnD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,cAAc,CAAC;CAChC,CAAC;AAkFF,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAIlC"}
|
package/lib/minification.js
CHANGED
|
@@ -10,9 +10,25 @@ exports.getMinimizers = getMinimizers;
|
|
|
10
10
|
const tslib_1 = require("tslib");
|
|
11
11
|
const terser_webpack_plugin_1 = tslib_1.__importDefault(require("terser-webpack-plugin"));
|
|
12
12
|
const css_minimizer_webpack_plugin_1 = tslib_1.__importDefault(require("css-minimizer-webpack-plugin"));
|
|
13
|
-
const importFaster_1 = require("./importFaster");
|
|
14
13
|
const currentBundler_1 = require("./currentBundler");
|
|
15
14
|
const browserslist_1 = require("./browserslist");
|
|
15
|
+
// See https://swc.rs/docs/configuration/minification
|
|
16
|
+
function getSwcJsMinimizerOptions() {
|
|
17
|
+
return {
|
|
18
|
+
ecma: 2020,
|
|
19
|
+
compress: {
|
|
20
|
+
ecma: 5,
|
|
21
|
+
},
|
|
22
|
+
module: true,
|
|
23
|
+
mangle: true,
|
|
24
|
+
safari10: true,
|
|
25
|
+
format: {
|
|
26
|
+
ecma: 5,
|
|
27
|
+
comments: false,
|
|
28
|
+
ascii_only: true,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
16
32
|
// See https://github.com/webpack-contrib/terser-webpack-plugin#parallel
|
|
17
33
|
function getTerserParallel() {
|
|
18
34
|
let terserParallel = true;
|
|
@@ -25,41 +41,12 @@ function getTerserParallel() {
|
|
|
25
41
|
}
|
|
26
42
|
return terserParallel;
|
|
27
43
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const terserOptions = await (0, importFaster_1.importSwcJsMinimizerOptions)();
|
|
31
|
-
return new terser_webpack_plugin_1.default({
|
|
32
|
-
parallel: getTerserParallel(),
|
|
33
|
-
minify: terser_webpack_plugin_1.default.swcMinify,
|
|
34
|
-
terserOptions,
|
|
35
|
-
});
|
|
36
|
-
}
|
|
44
|
+
// Terser is not used: terser-webpack-plugin only runs the SWC minifier
|
|
45
|
+
function getJsMinimizer() {
|
|
37
46
|
return new terser_webpack_plugin_1.default({
|
|
38
47
|
parallel: getTerserParallel(),
|
|
39
|
-
|
|
40
|
-
terserOptions:
|
|
41
|
-
parse: {
|
|
42
|
-
// We want uglify-js to parse ecma 8 code. However, we don't want it
|
|
43
|
-
// to apply any minification steps that turns valid ecma 5 code
|
|
44
|
-
// into invalid ecma 5 code. This is why the 'compress' and 'output'
|
|
45
|
-
// sections only apply transformations that are ecma 5 safe
|
|
46
|
-
// https://github.com/facebook/create-react-app/pull/4234
|
|
47
|
-
ecma: 2020,
|
|
48
|
-
},
|
|
49
|
-
compress: {
|
|
50
|
-
ecma: 5,
|
|
51
|
-
},
|
|
52
|
-
mangle: {
|
|
53
|
-
safari10: true,
|
|
54
|
-
},
|
|
55
|
-
output: {
|
|
56
|
-
ecma: 5,
|
|
57
|
-
comments: false,
|
|
58
|
-
// Turned on because emoji and regex is not minified properly using
|
|
59
|
-
// default. See https://github.com/facebook/create-react-app/issues/2488
|
|
60
|
-
ascii_only: true,
|
|
61
|
-
},
|
|
62
|
-
},
|
|
48
|
+
minify: terser_webpack_plugin_1.default.swcMinify,
|
|
49
|
+
terserOptions: getSwcJsMinimizerOptions(),
|
|
63
50
|
});
|
|
64
51
|
}
|
|
65
52
|
function getCssMinimizer() {
|
|
@@ -68,12 +55,12 @@ function getCssMinimizer() {
|
|
|
68
55
|
minimizerOptions: (0, browserslist_1.getLightningCssMinimizerOptions)(),
|
|
69
56
|
});
|
|
70
57
|
}
|
|
71
|
-
|
|
72
|
-
return [
|
|
58
|
+
function getWebpackMinimizers() {
|
|
59
|
+
return [getJsMinimizer(), getCssMinimizer()];
|
|
73
60
|
}
|
|
74
61
|
async function getRspackMinimizers({ currentBundler, }) {
|
|
75
62
|
const rspack = (0, currentBundler_1.getCurrentBundlerAsRspack)({ currentBundler });
|
|
76
|
-
const swcJsMinimizerOptions =
|
|
63
|
+
const swcJsMinimizerOptions = getSwcJsMinimizerOptions();
|
|
77
64
|
return [
|
|
78
65
|
// See https://rspack.dev/plugins/rspack/swc-js-minimizer-rspack-plugin
|
|
79
66
|
// See https://swc.rs/docs/configuration/minification
|
|
@@ -98,6 +85,6 @@ async function getRspackMinimizers({ currentBundler, }) {
|
|
|
98
85
|
async function getMinimizers(params) {
|
|
99
86
|
return params.currentBundler.name === 'rspack'
|
|
100
87
|
? getRspackMinimizers(params)
|
|
101
|
-
: getWebpackMinimizers(
|
|
88
|
+
: getWebpackMinimizers();
|
|
102
89
|
}
|
|
103
90
|
//# sourceMappingURL=minification.js.map
|
package/lib/minification.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minification.js","sourceRoot":"","sources":["../src/minification.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,0FAAiD;AACjD,wGAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"minification.js","sourceRoot":"","sources":["../src/minification.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,0FAAiD;AACjD,wGAA8D;AAC9D,qDAA2D;AAC3D,iDAGwB;AAUxB,qDAAqD;AACrD,SAAS,wBAAwB;IAC/B,OAAO;QACL,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC;SACR;QACD,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;SACjB;KACF,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,SAAS,iBAAiB;IACxB,IAAI,cAAc,GAAqB,IAAI,CAAC;IAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO,EAAE,CAAC;QAC5C,cAAc,GAAG,KAAK,CAAC;IACzB,CAAC;SAAM,IACL,OAAO,CAAC,GAAG,CAAC,eAAe;QAC3B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,EAC7C,CAAC;QACD,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,uEAAuE;AACvE,SAAS,cAAc;IACrB,OAAO,IAAI,+BAAY,CAAkB;QACvC,QAAQ,EAAE,iBAAiB,EAAE;QAC7B,MAAM,EAAE,+BAAY,CAAC,SAAS;QAC9B,aAAa,EAAE,wBAAwB,EAAE;KAC1C,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,IAAI,sCAAkB,CAAC;QAC5B,MAAM,EAAE,sCAAkB,CAAC,kBAAkB;QAC7C,gBAAgB,EAAE,IAAA,8CAA+B,GAAE;KACpD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,EACjC,cAAc,GACG;IACjB,MAAM,MAAM,GAAG,IAAA,0CAAyB,EAAC,EAAC,cAAc,EAAC,CAAC,CAAC;IAC3D,MAAM,qBAAqB,GAAkB,wBAAwB,EAAE,CAAC;IAExE,OAAO;QACL,uEAAuE;QACvE,qDAAqD;QACrD,IAAI,MAAM,CAAC,0BAA0B,CAAC;YACpC,gBAAgB,EAAE;gBAChB,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,qBAAqB,CAAC,IAAI;gBAChC,GAAG,qBAAqB;aACzB;SACF,CAAC;QACF,IAAI,MAAM,CAAC,iCAAiC,CAAC;YAC3C,gBAAgB,EAAE;gBAChB,6CAA6C;gBAC7C,mEAAmE;gBACnE,+FAA+F;gBAC/F,kDAAkD;gBAClD,OAAO,EAAE,IAAA,qCAAsB,GAAE;aAClC;SACF,CAAC;KACmC,CAAC;AAC1C,CAAC;AAEM,KAAK,wBACV,MAAwB;IAExB,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,KAAK,QAAQ;QAC5C,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC;QAC7B,CAAC,CAAC,oBAAoB,EAAE,CAAC;AAC7B,CAAC"}
|
package/lib/minifyHtml.d.ts
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
export type HtmlMinifierType = 'swc' | 'terser';
|
|
8
7
|
type HtmlMinifierResult = {
|
|
9
8
|
code: string;
|
|
10
9
|
warnings: string[];
|
|
@@ -12,8 +11,6 @@ type HtmlMinifierResult = {
|
|
|
12
11
|
export type HtmlMinifier = {
|
|
13
12
|
minify: (html: string) => Promise<HtmlMinifierResult>;
|
|
14
13
|
};
|
|
15
|
-
export declare function getHtmlMinifier(
|
|
16
|
-
type: HtmlMinifierType;
|
|
17
|
-
}): Promise<HtmlMinifier>;
|
|
14
|
+
export declare function getHtmlMinifier(): Promise<HtmlMinifier>;
|
|
18
15
|
export {};
|
|
19
16
|
//# sourceMappingURL=minifyHtml.d.ts.map
|
package/lib/minifyHtml.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minifyHtml.d.ts","sourceRoot":"","sources":["../src/minifyHtml.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"minifyHtml.d.ts","sourceRoot":"","sources":["../src/minifyHtml.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACvD,CAAC;AAMF,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAK7D"}
|
package/lib/minifyHtml.js
CHANGED
|
@@ -7,49 +7,16 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.getHtmlMinifier = getHtmlMinifier;
|
|
10
|
-
const html_minifier_terser_1 = require("html-minifier-terser");
|
|
11
10
|
// Historical env variable
|
|
12
11
|
const SkipHtmlMinification = process.env.SKIP_HTML_MINIFICATION === 'true';
|
|
13
12
|
const NoopMinifier = {
|
|
14
13
|
minify: async (html) => ({ code: html, warnings: [] }),
|
|
15
14
|
};
|
|
16
|
-
async function getHtmlMinifier(
|
|
15
|
+
async function getHtmlMinifier() {
|
|
17
16
|
if (SkipHtmlMinification) {
|
|
18
17
|
return NoopMinifier;
|
|
19
18
|
}
|
|
20
|
-
|
|
21
|
-
return getSwcMinifier();
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
return getTerserMinifier();
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
// Minify html with https://github.com/DanielRuf/html-minifier-terser
|
|
28
|
-
async function getTerserMinifier() {
|
|
29
|
-
return {
|
|
30
|
-
minify: async function minifyHtmlWithTerser(html) {
|
|
31
|
-
try {
|
|
32
|
-
const code = await (0, html_minifier_terser_1.minify)(html, {
|
|
33
|
-
// When enabled => React hydration errors
|
|
34
|
-
removeComments: false,
|
|
35
|
-
removeRedundantAttributes: false,
|
|
36
|
-
removeEmptyAttributes: false,
|
|
37
|
-
sortAttributes: false,
|
|
38
|
-
sortClassName: false,
|
|
39
|
-
removeScriptTypeAttributes: true,
|
|
40
|
-
removeStyleLinkTypeAttributes: true,
|
|
41
|
-
useShortDoctype: true,
|
|
42
|
-
minifyJS: true,
|
|
43
|
-
});
|
|
44
|
-
return { code, warnings: [] };
|
|
45
|
-
}
|
|
46
|
-
catch (err) {
|
|
47
|
-
throw new Error(`HTML minification failed (Terser)`, {
|
|
48
|
-
cause: err,
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
};
|
|
19
|
+
return getSwcMinifier();
|
|
53
20
|
}
|
|
54
21
|
// Minify html with @swc/html
|
|
55
22
|
// Not well-documented but fast!
|
package/lib/minifyHtml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minifyHtml.js","sourceRoot":"","sources":["../src/minifyHtml.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH
|
|
1
|
+
{"version":3,"file":"minifyHtml.js","sourceRoot":"","sources":["../src/minifyHtml.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,0BAA0B;AAC1B,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,MAAM,CAAC;AAW3E,MAAM,YAAY,GAAiB;IACjC,MAAM,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC;CAC7D,CAAC;AAEK,KAAK;IACV,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,cAAc,EAAE,CAAC;AAC1B,CAAC;AAED,6BAA6B;AAC7B,gCAAgC;AAChC,0DAA0D;AAC1D,KAAK,UAAU,cAAc;IAC3B,iEAAiE;IACjE,sDAAsD;IACtD,0DAA0D;IAC1D,sDAAsD;IACtD,MAAM,EAAC,MAAM,EAAE,eAAe,EAAC,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5D,OAAO;QACL,MAAM,EAAE,KAAK,UAAU,iBAAiB,CAAC,IAAI;YAC3C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACtD,uDAAuD;oBACvD,+DAA+D;oBAC/D,cAAc,EAAE,KAAK;oBACrB,6DAA6D;oBAC7D,gBAAgB,EAAE,EAAE;oBAEpB,qEAAqE;oBACrE,sDAAsD;oBACtD,WAAW,EAAE,oBAAoB;oBAEjC,+DAA+D;oBAC/D,qEAAqE;oBACrE,0DAA0D;oBAC1D,MAAM,EAAE,IAAI;oBAEZ,sEAAsE;oBACtE,iCAAiC,EAAE,KAAK;oBACxC,cAAc,EAAE,KAAK;oBAErB,6DAA6D;oBAC7D,mBAAmB,EAAE,KAAK;oBAC1B,mDAAmD;oBACnD,qBAAqB,EAAE,KAAK;oBAC5B,yDAAyD;oBACzD,yBAAyB,EAAE,MAAM;oBAEjC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;oBACxD,OAAO,+BAA+B,UAAU,CAAC,KAAK,KACpD,UAAU,CAAC,OACb,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,CAAC,CAAC,CAAC;gBAEH,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ;iBACT,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,EAAE;oBAChD,KAAK,EAAE,GAAG;iBACX,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docusaurus/bundler",
|
|
3
|
-
"version": "4.0.0-canary-
|
|
3
|
+
"version": "4.0.0-canary-6903",
|
|
4
4
|
"description": "Docusaurus util package to abstract the current bundler.",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -19,15 +19,15 @@
|
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@babel/core": "^7.29.7",
|
|
22
|
-
"@docusaurus/babel": "4.0.0-canary-
|
|
23
|
-
"@docusaurus/logger": "4.0.0-canary-
|
|
24
|
-
"@docusaurus/types": "4.0.0-canary-
|
|
22
|
+
"@docusaurus/babel": "4.0.0-canary-6903",
|
|
23
|
+
"@docusaurus/logger": "4.0.0-canary-6903",
|
|
24
|
+
"@docusaurus/types": "4.0.0-canary-6903",
|
|
25
|
+
"@swc/core": "^1.16.2",
|
|
25
26
|
"@swc/html": "^1.16.2",
|
|
26
27
|
"babel-loader": "^10.1.1",
|
|
27
28
|
"browserslist": "^4.29.0",
|
|
28
29
|
"css-loader": "^7.1.5",
|
|
29
30
|
"css-minimizer-webpack-plugin": "^8.0.0",
|
|
30
|
-
"html-minifier-terser": "^7.2.0",
|
|
31
31
|
"lightningcss": "^1.33.0",
|
|
32
32
|
"mini-css-extract-plugin": "^2.10.2",
|
|
33
33
|
"postcss": "^8.5.28",
|
|
@@ -39,8 +39,7 @@
|
|
|
39
39
|
"webpackbar": "^7.0.0"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@docusaurus/faster": "4.0.0-canary-
|
|
43
|
-
"@types/html-minifier-terser": "^7.0.2"
|
|
42
|
+
"@docusaurus/faster": "4.0.0-canary-6903"
|
|
44
43
|
},
|
|
45
44
|
"peerDependenciesMeta": {
|
|
46
45
|
"@docusaurus/faster": {
|
|
@@ -53,5 +52,5 @@
|
|
|
53
52
|
"engines": {
|
|
54
53
|
"node": ">=24.21"
|
|
55
54
|
},
|
|
56
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "01c23721ed00c463fedb89cf012d55e0c7e1ed7c"
|
|
57
56
|
}
|
package/src/importFaster.ts
CHANGED
|
@@ -6,10 +6,6 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import logger from '@docusaurus/logger';
|
|
9
|
-
import type {
|
|
10
|
-
MinimizerOptions as JsMinimizerOptions,
|
|
11
|
-
CustomOptions,
|
|
12
|
-
} from 'terser-webpack-plugin';
|
|
13
9
|
|
|
14
10
|
export type FasterModule = Awaited<typeof import('@docusaurus/faster')>;
|
|
15
11
|
|
|
@@ -48,10 +44,3 @@ export async function importGetSwcLoaderOptions(): Promise<
|
|
|
48
44
|
const faster = await ensureFaster();
|
|
49
45
|
return faster.getSwcLoaderOptions;
|
|
50
46
|
}
|
|
51
|
-
|
|
52
|
-
export async function importSwcJsMinimizerOptions(): Promise<
|
|
53
|
-
JsMinimizerOptions<CustomOptions>
|
|
54
|
-
> {
|
|
55
|
-
const faster = await ensureFaster();
|
|
56
|
-
return faster.getSwcJsMinimizerOptions() as JsMinimizerOptions<CustomOptions>;
|
|
57
|
-
}
|
package/src/index.ts
CHANGED
|
@@ -16,11 +16,7 @@ export {
|
|
|
16
16
|
} from './currentBundler';
|
|
17
17
|
|
|
18
18
|
export {getMinimizers} from './minification';
|
|
19
|
-
export {
|
|
20
|
-
getHtmlMinifier,
|
|
21
|
-
type HtmlMinifier,
|
|
22
|
-
type HtmlMinifierType,
|
|
23
|
-
} from './minifyHtml';
|
|
19
|
+
export {getHtmlMinifier, type HtmlMinifier} from './minifyHtml';
|
|
24
20
|
export {createJsLoaderFactory} from './loaders/jsLoader';
|
|
25
21
|
export {createStyleLoadersFactory} from './loaders/styleLoader';
|
|
26
22
|
export {importRspackDevServer} from './importFaster';
|
package/src/minification.ts
CHANGED
|
@@ -7,20 +7,38 @@
|
|
|
7
7
|
|
|
8
8
|
import TerserPlugin from 'terser-webpack-plugin';
|
|
9
9
|
import CssMinimizerPlugin from 'css-minimizer-webpack-plugin';
|
|
10
|
-
import {importSwcJsMinimizerOptions} from './importFaster';
|
|
11
10
|
import {getCurrentBundlerAsRspack} from './currentBundler';
|
|
12
11
|
import {
|
|
13
12
|
getBrowserslistQueries,
|
|
14
13
|
getLightningCssMinimizerOptions,
|
|
15
14
|
} from './browserslist';
|
|
15
|
+
import type {JsMinifyOptions} from '@swc/core';
|
|
16
|
+
import type {CustomOptions} from 'terser-webpack-plugin';
|
|
16
17
|
import type {WebpackPluginInstance} from 'webpack';
|
|
17
|
-
import type {CurrentBundler
|
|
18
|
+
import type {CurrentBundler} from '@docusaurus/types';
|
|
18
19
|
|
|
19
20
|
export type MinimizersConfig = {
|
|
20
|
-
faster: Pick<FasterConfig, 'swcJsMinimizer'>;
|
|
21
21
|
currentBundler: CurrentBundler;
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
+
// See https://swc.rs/docs/configuration/minification
|
|
25
|
+
function getSwcJsMinimizerOptions(): JsMinifyOptions {
|
|
26
|
+
return {
|
|
27
|
+
ecma: 2020,
|
|
28
|
+
compress: {
|
|
29
|
+
ecma: 5,
|
|
30
|
+
},
|
|
31
|
+
module: true,
|
|
32
|
+
mangle: true,
|
|
33
|
+
safari10: true,
|
|
34
|
+
format: {
|
|
35
|
+
ecma: 5,
|
|
36
|
+
comments: false,
|
|
37
|
+
ascii_only: true,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
24
42
|
// See https://github.com/webpack-contrib/terser-webpack-plugin#parallel
|
|
25
43
|
function getTerserParallel() {
|
|
26
44
|
let terserParallel: boolean | number = true;
|
|
@@ -35,44 +53,12 @@ function getTerserParallel() {
|
|
|
35
53
|
return terserParallel;
|
|
36
54
|
}
|
|
37
55
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (faster.swcJsMinimizer) {
|
|
42
|
-
const terserOptions = await importSwcJsMinimizerOptions();
|
|
43
|
-
return new TerserPlugin({
|
|
44
|
-
parallel: getTerserParallel(),
|
|
45
|
-
minify: TerserPlugin.swcMinify,
|
|
46
|
-
terserOptions,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return new TerserPlugin({
|
|
56
|
+
// Terser is not used: terser-webpack-plugin only runs the SWC minifier
|
|
57
|
+
function getJsMinimizer(): WebpackPluginInstance {
|
|
58
|
+
return new TerserPlugin<JsMinifyOptions>({
|
|
51
59
|
parallel: getTerserParallel(),
|
|
52
|
-
|
|
53
|
-
terserOptions:
|
|
54
|
-
parse: {
|
|
55
|
-
// We want uglify-js to parse ecma 8 code. However, we don't want it
|
|
56
|
-
// to apply any minification steps that turns valid ecma 5 code
|
|
57
|
-
// into invalid ecma 5 code. This is why the 'compress' and 'output'
|
|
58
|
-
// sections only apply transformations that are ecma 5 safe
|
|
59
|
-
// https://github.com/facebook/create-react-app/pull/4234
|
|
60
|
-
ecma: 2020,
|
|
61
|
-
},
|
|
62
|
-
compress: {
|
|
63
|
-
ecma: 5,
|
|
64
|
-
},
|
|
65
|
-
mangle: {
|
|
66
|
-
safari10: true,
|
|
67
|
-
},
|
|
68
|
-
output: {
|
|
69
|
-
ecma: 5,
|
|
70
|
-
comments: false,
|
|
71
|
-
// Turned on because emoji and regex is not minified properly using
|
|
72
|
-
// default. See https://github.com/facebook/create-react-app/issues/2488
|
|
73
|
-
ascii_only: true,
|
|
74
|
-
},
|
|
75
|
-
},
|
|
60
|
+
minify: TerserPlugin.swcMinify,
|
|
61
|
+
terserOptions: getSwcJsMinimizerOptions(),
|
|
76
62
|
});
|
|
77
63
|
}
|
|
78
64
|
|
|
@@ -83,17 +69,15 @@ function getCssMinimizer(): WebpackPluginInstance {
|
|
|
83
69
|
});
|
|
84
70
|
}
|
|
85
71
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
): Promise<WebpackPluginInstance[]> {
|
|
89
|
-
return [await getJsMinimizer(params), getCssMinimizer()];
|
|
72
|
+
function getWebpackMinimizers(): WebpackPluginInstance[] {
|
|
73
|
+
return [getJsMinimizer(), getCssMinimizer()];
|
|
90
74
|
}
|
|
91
75
|
|
|
92
76
|
async function getRspackMinimizers({
|
|
93
77
|
currentBundler,
|
|
94
78
|
}: MinimizersConfig): Promise<WebpackPluginInstance[]> {
|
|
95
79
|
const rspack = getCurrentBundlerAsRspack({currentBundler});
|
|
96
|
-
const swcJsMinimizerOptions =
|
|
80
|
+
const swcJsMinimizerOptions: CustomOptions = getSwcJsMinimizerOptions();
|
|
97
81
|
|
|
98
82
|
return [
|
|
99
83
|
// See https://rspack.dev/plugins/rspack/swc-js-minimizer-rspack-plugin
|
|
@@ -122,5 +106,5 @@ export async function getMinimizers(
|
|
|
122
106
|
): Promise<WebpackPluginInstance[]> {
|
|
123
107
|
return params.currentBundler.name === 'rspack'
|
|
124
108
|
? getRspackMinimizers(params)
|
|
125
|
-
: getWebpackMinimizers(
|
|
109
|
+
: getWebpackMinimizers();
|
|
126
110
|
}
|
package/src/minifyHtml.ts
CHANGED
|
@@ -5,13 +5,9 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import {minify as terserHtmlMinifier} from 'html-minifier-terser';
|
|
9
|
-
|
|
10
8
|
// Historical env variable
|
|
11
9
|
const SkipHtmlMinification = process.env.SKIP_HTML_MINIFICATION === 'true';
|
|
12
10
|
|
|
13
|
-
export type HtmlMinifierType = 'swc' | 'terser';
|
|
14
|
-
|
|
15
11
|
type HtmlMinifierResult = {
|
|
16
12
|
code: string;
|
|
17
13
|
warnings: string[];
|
|
@@ -25,47 +21,11 @@ const NoopMinifier: HtmlMinifier = {
|
|
|
25
21
|
minify: async (html: string) => ({code: html, warnings: []}),
|
|
26
22
|
};
|
|
27
23
|
|
|
28
|
-
export async function getHtmlMinifier({
|
|
29
|
-
type,
|
|
30
|
-
}: {
|
|
31
|
-
type: HtmlMinifierType;
|
|
32
|
-
}): Promise<HtmlMinifier> {
|
|
24
|
+
export async function getHtmlMinifier(): Promise<HtmlMinifier> {
|
|
33
25
|
if (SkipHtmlMinification) {
|
|
34
26
|
return NoopMinifier;
|
|
35
27
|
}
|
|
36
|
-
|
|
37
|
-
return getSwcMinifier();
|
|
38
|
-
} else {
|
|
39
|
-
return getTerserMinifier();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Minify html with https://github.com/DanielRuf/html-minifier-terser
|
|
44
|
-
async function getTerserMinifier(): Promise<HtmlMinifier> {
|
|
45
|
-
return {
|
|
46
|
-
minify: async function minifyHtmlWithTerser(html) {
|
|
47
|
-
try {
|
|
48
|
-
const code = await terserHtmlMinifier(html, {
|
|
49
|
-
// When enabled => React hydration errors
|
|
50
|
-
removeComments: false,
|
|
51
|
-
removeRedundantAttributes: false,
|
|
52
|
-
removeEmptyAttributes: false,
|
|
53
|
-
sortAttributes: false,
|
|
54
|
-
sortClassName: false,
|
|
55
|
-
|
|
56
|
-
removeScriptTypeAttributes: true,
|
|
57
|
-
removeStyleLinkTypeAttributes: true,
|
|
58
|
-
useShortDoctype: true,
|
|
59
|
-
minifyJS: true,
|
|
60
|
-
});
|
|
61
|
-
return {code, warnings: []};
|
|
62
|
-
} catch (err) {
|
|
63
|
-
throw new Error(`HTML minification failed (Terser)`, {
|
|
64
|
-
cause: err,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
};
|
|
28
|
+
return getSwcMinifier();
|
|
69
29
|
}
|
|
70
30
|
|
|
71
31
|
// Minify html with @swc/html
|