@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.
@@ -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;AAGH,OAAO,KAAK,EACV,gBAAgB,IAAI,kBAAkB,EACtC,aAAa,EACd,MAAM,uBAAuB,CAAC;AAE/B,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;AAED,wBAAsB,2BAA2B,IAAI,OAAO,CAC1D,kBAAkB,CAAC,aAAa,CAAC,CAClC,CAGA"}
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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"importFaster.js","sourceRoot":"","sources":["../src/importFaster.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;AAEH,wEAAwC;AAQxC,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;AAEM,KAAK;IAGV,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,wBAAwB,EAAuC,CAAC;AAChF,CAAC"}
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, type HtmlMinifierType, } from './minifyHtml';
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';
@@ -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,EACL,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAC,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAC,qBAAqB,EAAC,MAAM,gBAAgB,CAAC"}
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,2CAIsB;AAHpB,6GAAA,eAAe,OAAA;AAIjB,+CAAyD;AAAjD,iHAAA,qBAAqB,OAAA;AAC7B,qDAAgE;AAAxD,wHAAA,yBAAyB,OAAA;AACjC,+CAAqD;AAA7C,qHAAA,qBAAqB,OAAA"}
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"}
@@ -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, FasterConfig } from '@docusaurus/types';
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;AAUH,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC;AACnD,OAAO,KAAK,EAAC,cAAc,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAEpE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAC7C,cAAc,EAAE,cAAc,CAAC;CAChC,CAAC;AAkGF,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAIlC"}
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"}
@@ -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
- async function getJsMinimizer({ faster, }) {
29
- if (faster.swcJsMinimizer) {
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
- // See https://terser.org/docs/options/
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
- async function getWebpackMinimizers(params) {
72
- return [await getJsMinimizer(params), getCssMinimizer()];
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 = await (0, importFaster_1.importSwcJsMinimizerOptions)();
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(params);
88
+ : getWebpackMinimizers();
102
89
  }
103
90
  //# sourceMappingURL=minification.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"minification.js","sourceRoot":"","sources":["../src/minification.ts"],"names":[],"mappings":"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"}
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"}
@@ -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({ type, }: {
16
- type: HtmlMinifierType;
17
- }): Promise<HtmlMinifier>;
14
+ export declare function getHtmlMinifier(): Promise<HtmlMinifier>;
18
15
  export {};
19
16
  //# sourceMappingURL=minifyHtml.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"minifyHtml.d.ts","sourceRoot":"","sources":["../src/minifyHtml.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEhD,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,CAAC,EACpC,IAAI,GACL,EAAE;IACD,IAAI,EAAE,gBAAgB,CAAC;CACxB,GAAG,OAAO,CAAC,YAAY,CAAC,CASxB"}
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({ type, }) {
15
+ async function getHtmlMinifier() {
17
16
  if (SkipHtmlMinification) {
18
17
  return NoopMinifier;
19
18
  }
20
- if (type === 'swc') {
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!
@@ -1 +1 @@
1
- {"version":3,"file":"minifyHtml.js","sourceRoot":"","sources":["../src/minifyHtml.ts"],"names":[],"mappings":"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"}
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-6899",
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-6899",
23
- "@docusaurus/logger": "4.0.0-canary-6899",
24
- "@docusaurus/types": "4.0.0-canary-6899",
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-6899",
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": "72622a2308261a457ca37d1e090d3efe608558cc"
55
+ "gitHead": "01c23721ed00c463fedb89cf012d55e0c7e1ed7c"
57
56
  }
@@ -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';
@@ -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, FasterConfig} from '@docusaurus/types';
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
- async function getJsMinimizer({
39
- faster,
40
- }: MinimizersConfig): Promise<WebpackPluginInstance> {
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
- // See https://terser.org/docs/options/
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
- async function getWebpackMinimizers(
87
- params: MinimizersConfig,
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 = await importSwcJsMinimizerOptions();
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(params);
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
- if (type === 'swc') {
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