@docusaurus/bundler 4.0.0-canary-6893 → 4.0.0-canary-6896

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.
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { type TransformOptions } from 'lightningcss';
8
+ export declare function getBrowserslistQueries(): string[];
9
+ type LightningCssMinimizerOptions = Omit<TransformOptions<never>, 'filename' | 'code'>;
10
+ export declare function getLightningCssMinimizerOptions(): LightningCssMinimizerOptions;
11
+ export {};
12
+ //# sourceMappingURL=browserslist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browserslist.d.ts","sourceRoot":"","sources":["../src/browserslist.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAwB,KAAK,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAM1E,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAIjD;AAKD,KAAK,4BAA4B,GAAG,IAAI,CACtC,gBAAgB,CAAC,KAAK,CAAC,EACvB,UAAU,GAAG,MAAM,CACpB,CAAC;AAEF,wBAAgB,+BAA+B,IAAI,4BAA4B,CAG9E"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) Facebook, Inc. and its affiliates.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getBrowserslistQueries = getBrowserslistQueries;
10
+ exports.getLightningCssMinimizerOptions = getLightningCssMinimizerOptions;
11
+ const tslib_1 = require("tslib");
12
+ const browserslist_1 = tslib_1.__importDefault(require("browserslist"));
13
+ const lightningcss_1 = require("lightningcss");
14
+ // Used when the site doesn't provide its own Browserslist config
15
+ // See https://web.dev/baseline
16
+ const DefaultBrowserslistQueries = ['baseline widely available'];
17
+ function getBrowserslistQueries() {
18
+ return (browserslist_1.default.loadConfig({ path: process.cwd() }) ?? DefaultBrowserslistQueries);
19
+ }
20
+ function getLightningCssMinimizerOptions() {
21
+ const browsers = (0, browserslist_1.default)(getBrowserslistQueries());
22
+ return { targets: (0, lightningcss_1.browserslistToTargets)(browsers) };
23
+ }
24
+ //# sourceMappingURL=browserslist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browserslist.js","sourceRoot":"","sources":["../src/browserslist.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAEH,wEAAwC;AACxC,+CAA0E;AAE1E,iEAAiE;AACjE,+BAA+B;AAC/B,MAAM,0BAA0B,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAEjE;IACE,OAAO,CACL,sBAAY,CAAC,UAAU,CAAC,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAC,CAAC,IAAI,0BAA0B,CAC7E,CAAC;AACJ,CAAC;AAUD;IACE,MAAM,QAAQ,GAAG,IAAA,sBAAY,EAAC,sBAAsB,EAAE,CAAC,CAAC;IACxD,OAAO,EAAC,OAAO,EAAE,IAAA,oCAAqB,EAAC,QAAQ,CAAC,EAAC,CAAC;AACpD,CAAC"}
@@ -5,14 +5,10 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import type { MinimizerOptions as JsMinimizerOptions, CustomOptions } from 'terser-webpack-plugin';
8
- import type { MinimizerOptions as CssMinimizerOptions } from 'css-minimizer-webpack-plugin';
9
8
  export type FasterModule = Awaited<typeof import('@docusaurus/faster')>;
10
9
  export declare function importRspack(): Promise<FasterModule['rspack']>;
11
10
  export declare function importRspackDevServer(): Promise<FasterModule['rspackDevServer']>;
12
- export declare function importSwcLoader(): Promise<string>;
13
11
  export declare function importGetSwcLoaderOptions(): Promise<FasterModule['getSwcLoaderOptions']>;
14
12
  export declare function importSwcJsMinimizerOptions(): Promise<JsMinimizerOptions<CustomOptions>>;
15
13
  export declare function importSwcHtmlMinifier(): Promise<ReturnType<FasterModule['getSwcHtmlMinifier']>>;
16
- export declare function importGetBrowserslistQueries(): Promise<FasterModule['getBrowserslistQueries']>;
17
- export declare function importLightningCssMinimizerOptions(): Promise<CssMinimizerOptions<CustomOptions>>;
18
14
  //# 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;AAC/B,OAAO,KAAK,EAAC,gBAAgB,IAAI,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AAE1F,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,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAGvD;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CACxD,YAAY,CAAC,qBAAqB,CAAC,CACpC,CAGA;AAED,wBAAsB,2BAA2B,IAAI,OAAO,CAC1D,kBAAkB,CAAC,aAAa,CAAC,CAClC,CAGA;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CACpD,UAAU,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAC/C,CAGA;AAED,wBAAsB,4BAA4B,IAAI,OAAO,CAC3D,YAAY,CAAC,wBAAwB,CAAC,CACvC,CAGA;AAED,wBAAsB,kCAAkC,IAAI,OAAO,CACjE,mBAAmB,CAAC,aAAa,CAAC,CACnC,CAGA"}
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;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CACpD,UAAU,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAC/C,CAGA"}
@@ -8,12 +8,9 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.importRspack = importRspack;
10
10
  exports.importRspackDevServer = importRspackDevServer;
11
- exports.importSwcLoader = importSwcLoader;
12
11
  exports.importGetSwcLoaderOptions = importGetSwcLoaderOptions;
13
12
  exports.importSwcJsMinimizerOptions = importSwcJsMinimizerOptions;
14
13
  exports.importSwcHtmlMinifier = importSwcHtmlMinifier;
15
- exports.importGetBrowserslistQueries = importGetBrowserslistQueries;
16
- exports.importLightningCssMinimizerOptions = importLightningCssMinimizerOptions;
17
14
  const tslib_1 = require("tslib");
18
15
  const logger_1 = tslib_1.__importDefault(require("@docusaurus/logger"));
19
16
  async function importFaster() {
@@ -35,10 +32,6 @@ async function importRspackDevServer() {
35
32
  const faster = await ensureFaster();
36
33
  return faster.rspackDevServer;
37
34
  }
38
- async function importSwcLoader() {
39
- const faster = await ensureFaster();
40
- return faster.swcLoader;
41
- }
42
35
  async function importGetSwcLoaderOptions() {
43
36
  const faster = await ensureFaster();
44
37
  return faster.getSwcLoaderOptions;
@@ -51,12 +44,4 @@ async function importSwcHtmlMinifier() {
51
44
  const faster = await ensureFaster();
52
45
  return faster.getSwcHtmlMinifier();
53
46
  }
54
- async function importGetBrowserslistQueries() {
55
- const faster = await ensureFaster();
56
- return faster.getBrowserslistQueries;
57
- }
58
- async function importLightningCssMinimizerOptions() {
59
- const faster = await ensureFaster();
60
- return faster.getLightningCssMinimizerOptions();
61
- }
62
47
  //# sourceMappingURL=importFaster.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"importFaster.js","sourceRoot":"","sources":["../src/importFaster.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;AAEH,wEAAwC;AASxC,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;IACV,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,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;AAEM,KAAK;IAGV,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,kBAAkB,EAAE,CAAC;AACrC,CAAC;AAEM,KAAK;IAGV,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,sBAAsB,CAAC;AACvC,CAAC;AAEM,KAAK;IAGV,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,+BAA+B,EAAwC,CAAC;AACxF,CAAC"}
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;AAEM,KAAK;IAGV,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,kBAAkB,EAAE,CAAC;AACrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"jsLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/jsLoader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAC,qBAAqB,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AA0C/E,wBAAsB,qBAAqB,CAAC,EAC1C,UAAU,GACX,EAAE;IACD,UAAU,EAAE;QACV,OAAO,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,EAAE;YACN,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC9C,CAAC;KACH,CAAC;CACH,GAAG,OAAO,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAyBhD"}
1
+ {"version":3,"file":"jsLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/jsLoader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAC,qBAAqB,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAiC/E,wBAAsB,qBAAqB,CAAC,EAC1C,UAAU,GACX,EAAE;IACD,UAAU,EAAE;QACV,OAAO,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,EAAE;YACN,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC9C,CAAC;KACH,CAAC;CACH,GAAG,OAAO,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAoBhD"}
@@ -10,30 +10,25 @@ exports.createJsLoaderFactory = createJsLoaderFactory;
10
10
  const babel_1 = require("@docusaurus/babel");
11
11
  const importFaster_1 = require("../importFaster");
12
12
  const currentBundler_1 = require("../currentBundler");
13
+ const browserslist_1 = require("../browserslist");
13
14
  const BabelJsLoaderFactory = ({ isServer, babelOptions, }) => {
14
15
  return {
15
16
  loader: require.resolve('babel-loader'),
16
17
  options: (0, babel_1.getBabelOptions)({ isServer, babelOptions }),
17
18
  };
18
19
  };
19
- async function createSwcJsLoaderFactory() {
20
- const loader = await (0, importFaster_1.importSwcLoader)();
21
- const getOptions = await (0, importFaster_1.importGetSwcLoaderOptions)();
22
- return ({ isServer }) => {
23
- return {
24
- loader,
25
- options: getOptions({ isServer, bundlerName: 'webpack' }),
26
- };
27
- };
28
- }
29
- // Same as swcLoader, except we use the built-in SWC loader
30
20
  async function createRspackSwcJsLoaderFactory() {
31
21
  const loader = 'builtin:swc-loader';
32
22
  const getOptions = await (0, importFaster_1.importGetSwcLoaderOptions)();
23
+ const clientBrowserslistQueries = (0, browserslist_1.getBrowserslistQueries)();
33
24
  return ({ isServer }) => {
34
25
  return {
35
26
  loader,
36
- options: getOptions({ isServer, bundlerName: 'rspack' }),
27
+ options: getOptions({
28
+ isServer,
29
+ bundlerName: 'rspack',
30
+ clientBrowserslistQueries,
31
+ }),
37
32
  };
38
33
  };
39
34
  }
@@ -42,17 +37,12 @@ async function createRspackSwcJsLoaderFactory() {
42
37
  // It is injected in configureWebpack plugin lifecycle for plugin authors
43
38
  async function createJsLoaderFactory({ siteConfig, }) {
44
39
  const currentBundler = await (0, currentBundler_1.getCurrentBundler)({ siteConfig });
45
- const isSWCLoader = siteConfig.future.faster.swcJsLoader;
46
- if (isSWCLoader) {
40
+ if (currentBundler.name === 'rspack') {
47
41
  if (siteConfig.webpack?.jsLoader) {
48
- throw new Error(`You can't use siteConfig.webpack.jsLoader and siteConfig.future.faster.swcJsLoader at the same time.
49
- To avoid any configuration ambiguity, you must make an explicit choice:
50
- - If you want to use Docusaurus Faster and SWC (recommended), remove siteConfig.webpack.jsLoader
51
- - If you want to use a custom JS loader, use siteConfig.future.faster.swcJsLoader: false`);
42
+ throw new Error(`You can't use siteConfig.webpack.jsLoader with siteConfig.future.faster.rspackBundler.
43
+ Rspack always uses its built-in SWC loader, please remove siteConfig.webpack.jsLoader.`);
52
44
  }
53
- return currentBundler.name === 'rspack'
54
- ? createRspackSwcJsLoaderFactory()
55
- : createSwcJsLoaderFactory();
45
+ return createRspackSwcJsLoaderFactory();
56
46
  }
57
47
  const jsLoader = siteConfig.webpack?.jsLoader ?? 'babel';
58
48
  if (jsLoader instanceof Function) {
@@ -1 +1 @@
1
- {"version":3,"file":"jsLoader.js","sourceRoot":"","sources":["../../src/loaders/jsLoader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,6CAAkD;AAClD,kDAA2E;AAC3E,sDAAoD;AAGpD,MAAM,oBAAoB,GAAyC,CAAC,EAClE,QAAQ,EACR,YAAY,GACb,EAAE,EAAE;IACH,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;QACvC,OAAO,EAAE,IAAA,uBAAe,EAAC,EAAC,QAAQ,EAAE,YAAY,EAAC,CAAC;KACnD,CAAC;AACJ,CAAC,CAAC;AAEF,KAAK,UAAU,wBAAwB;IAGrC,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAe,GAAE,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,IAAA,wCAAyB,GAAE,CAAC;IACrD,OAAO,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE;QACpB,OAAO;YACL,MAAM;YACN,OAAO,EAAE,UAAU,CAAC,EAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAC,CAAC;SACxD,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,KAAK,UAAU,8BAA8B;IAG3C,MAAM,MAAM,GAAG,oBAAoB,CAAC;IACpC,MAAM,UAAU,GAAG,MAAM,IAAA,wCAAyB,GAAE,CAAC;IACrD,OAAO,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE;QACpB,OAAO;YACL,MAAM;YACN,OAAO,EAAE,UAAU,CAAC,EAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;SACvD,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,wEAAwE;AACxE,yEAAyE;AAClE,KAAK,gCAAgC,EAC1C,UAAU,GAQX;IACC,MAAM,cAAc,GAAG,MAAM,IAAA,kCAAiB,EAAC,EAAC,UAAU,EAAC,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;IACzD,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb;;;yFAGiF,CAClF,CAAC;QACJ,CAAC;QACD,OAAO,cAAc,CAAC,IAAI,KAAK,QAAQ;YACrC,CAAC,CAAC,8BAA8B,EAAE;YAClC,CAAC,CAAC,wBAAwB,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC;IACzD,IAAI,QAAQ,YAAY,QAAQ,EAAE,CAAC;QACjC,OAAO,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,EAAE,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"jsLoader.js","sourceRoot":"","sources":["../../src/loaders/jsLoader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,6CAAkD;AAClD,kDAA0D;AAC1D,sDAAoD;AACpD,kDAAuD;AAGvD,MAAM,oBAAoB,GAAyC,CAAC,EAClE,QAAQ,EACR,YAAY,GACb,EAAE,EAAE;IACH,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;QACvC,OAAO,EAAE,IAAA,uBAAe,EAAC,EAAC,QAAQ,EAAE,YAAY,EAAC,CAAC;KACnD,CAAC;AACJ,CAAC,CAAC;AAEF,KAAK,UAAU,8BAA8B;IAG3C,MAAM,MAAM,GAAG,oBAAoB,CAAC;IACpC,MAAM,UAAU,GAAG,MAAM,IAAA,wCAAyB,GAAE,CAAC;IACrD,MAAM,yBAAyB,GAAG,IAAA,qCAAsB,GAAE,CAAC;IAC3D,OAAO,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE;QACpB,OAAO;YACL,MAAM;YACN,OAAO,EAAE,UAAU,CAAC;gBAClB,QAAQ;gBACR,WAAW,EAAE,QAAQ;gBACrB,yBAAyB;aAC1B,CAAC;SACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,wEAAwE;AACxE,yEAAyE;AAClE,KAAK,gCAAgC,EAC1C,UAAU,GAQX;IACC,MAAM,cAAc,GAAG,MAAM,IAAA,kCAAiB,EAAC,EAAC,UAAU,EAAC,CAAC,CAAC;IAC7D,IAAI,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb;uFAC+E,CAChF,CAAC;QACJ,CAAC;QACD,OAAO,8BAA8B,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC;IACzD,IAAI,QAAQ,YAAY,QAAQ,EAAE,CAAC;QACjC,OAAO,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,EAAE,CAAC,CAAC;AAC1E,CAAC"}
@@ -7,7 +7,7 @@
7
7
  import type { WebpackPluginInstance } from 'webpack';
8
8
  import type { CurrentBundler, FasterConfig } from '@docusaurus/types';
9
9
  export type MinimizersConfig = {
10
- faster: Pick<FasterConfig, 'swcJsMinimizer' | 'lightningCssMinimizer'>;
10
+ faster: Pick<FasterConfig, 'swcJsMinimizer'>;
11
11
  currentBundler: CurrentBundler;
12
12
  };
13
13
  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;AAWH,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,GAAG,uBAAuB,CAAC,CAAC;IACvE,cAAc,EAAE,cAAc,CAAC;CAChC,CAAC;AA8HF,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;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"}
@@ -12,6 +12,7 @@ const terser_webpack_plugin_1 = tslib_1.__importDefault(require("terser-webpack-
12
12
  const css_minimizer_webpack_plugin_1 = tslib_1.__importDefault(require("css-minimizer-webpack-plugin"));
13
13
  const importFaster_1 = require("./importFaster");
14
14
  const currentBundler_1 = require("./currentBundler");
15
+ const browserslist_1 = require("./browserslist");
15
16
  // See https://github.com/webpack-contrib/terser-webpack-plugin#parallel
16
17
  function getTerserParallel() {
17
18
  let terserParallel = true;
@@ -61,38 +62,17 @@ async function getJsMinimizer({ faster, }) {
61
62
  },
62
63
  });
63
64
  }
64
- async function getLightningCssMinimizer() {
65
+ function getCssMinimizer() {
65
66
  return new css_minimizer_webpack_plugin_1.default({
66
67
  minify: css_minimizer_webpack_plugin_1.default.lightningCssMinify,
67
- minimizerOptions: await (0, importFaster_1.importLightningCssMinimizerOptions)(),
68
+ minimizerOptions: (0, browserslist_1.getLightningCssMinimizerOptions)(),
68
69
  });
69
70
  }
70
- async function getCssNanoMinimizer() {
71
- // This is an historical env variable to opt-out of the advanced minimizer
72
- // Sometimes there's a bug in it and people are happy to disable it
73
- const useSimpleCssMinifier = process.env.USE_SIMPLE_CSS_MINIFIER === 'true';
74
- if (useSimpleCssMinifier) {
75
- return new css_minimizer_webpack_plugin_1.default();
76
- }
77
- return new css_minimizer_webpack_plugin_1.default({
78
- minify: css_minimizer_webpack_plugin_1.default.cssnanoMinify,
79
- minimizerOptions: {
80
- preset: require.resolve('@docusaurus/cssnano-preset'),
81
- },
82
- });
83
- }
84
- async function getCssMinimizer(params) {
85
- return params.faster.lightningCssMinimizer
86
- ? getLightningCssMinimizer()
87
- : getCssNanoMinimizer();
88
- }
89
71
  async function getWebpackMinimizers(params) {
90
- return Promise.all([getJsMinimizer(params), getCssMinimizer(params)]);
72
+ return [await getJsMinimizer(params), getCssMinimizer()];
91
73
  }
92
74
  async function getRspackMinimizers({ currentBundler, }) {
93
75
  const rspack = (0, currentBundler_1.getCurrentBundlerAsRspack)({ currentBundler });
94
- const getBrowserslistQueries = await (0, importFaster_1.importGetBrowserslistQueries)();
95
- const browserslistQueries = getBrowserslistQueries();
96
76
  const swcJsMinimizerOptions = await (0, importFaster_1.importSwcJsMinimizerOptions)();
97
77
  return [
98
78
  // See https://rspack.dev/plugins/rspack/swc-js-minimizer-rspack-plugin
@@ -106,13 +86,11 @@ async function getRspackMinimizers({ currentBundler, }) {
106
86
  }),
107
87
  new rspack.LightningCssMinimizerRspackPlugin({
108
88
  minimizerOptions: {
109
- ...(await (0, importFaster_1.importLightningCssMinimizerOptions)()),
110
- // Not sure why but Rspack takes browserslist queries directly
111
- // While LightningCSS targets are normally not browserslist queries
112
- // We have to override the option to avoid errors
89
+ // Rspack takes Browserslist queries directly
90
+ // While LightningCSS targets are normally not Browserslist queries
113
91
  // See https://rspack.dev/plugins/rspack/lightning-css-minimizer-rspack-plugin#minimizeroptions
114
92
  // See https://lightningcss.dev/transpilation.html
115
- targets: browserslistQueries,
93
+ targets: (0, browserslist_1.getBrowserslistQueries)(),
116
94
  },
117
95
  }),
118
96
  ];
@@ -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,iDAA2D;AAC3D,qDAA2D;AAC3D,iDAGwB;AASxB,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,KAAK,UAAU,cAAc,CAAC,EAC5B,MAAM,GACW;IACjB,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAG,MAAM,IAAA,0CAA2B,GAAE,CAAC;QAC1D,OAAO,IAAI,+BAAY,CAAC;YACtB,QAAQ,EAAE,iBAAiB,EAAE;YAC7B,MAAM,EAAE,+BAAY,CAAC,SAAS;YAC9B,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,+BAAY,CAAC;QACtB,QAAQ,EAAE,iBAAiB,EAAE;QAC7B,uCAAuC;QACvC,aAAa,EAAE;YACb,KAAK,EAAE;gBACL,oEAAoE;gBACpE,+DAA+D;gBAC/D,oEAAoE;gBACpE,2DAA2D;gBAC3D,yDAAyD;gBACzD,IAAI,EAAE,IAAI;aACX;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,CAAC;aACR;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,IAAI;aACf;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,KAAK;gBACf,mEAAmE;gBACnE,wEAAwE;gBACxE,UAAU,EAAE,IAAI;aACjB;SACF;KACF,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,KAAK,UAAU,oBAAoB,CACjC,MAAwB;IAExB,OAAO,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,EACjC,cAAc,GACG;IACjB,MAAM,MAAM,GAAG,IAAA,0CAAyB,EAAC,EAAC,cAAc,EAAC,CAAC,CAAC;IAC3D,MAAM,qBAAqB,GAAG,MAAM,IAAA,0CAA2B,GAAE,CAAC;IAElE,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,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docusaurus/bundler",
3
- "version": "4.0.0-canary-6893",
3
+ "version": "4.0.0-canary-6896",
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-6893",
23
- "@docusaurus/cssnano-preset": "4.0.0-canary-6893",
24
- "@docusaurus/logger": "4.0.0-canary-6893",
25
- "@docusaurus/types": "4.0.0-canary-6893",
22
+ "@docusaurus/babel": "4.0.0-canary-6896",
23
+ "@docusaurus/logger": "4.0.0-canary-6896",
24
+ "@docusaurus/types": "4.0.0-canary-6896",
26
25
  "babel-loader": "^10.1.1",
26
+ "browserslist": "^4.29.0",
27
27
  "css-loader": "^7.1.5",
28
28
  "css-minimizer-webpack-plugin": "^8.0.0",
29
- "cssnano": "^7.1.9",
30
29
  "html-minifier-terser": "^7.2.0",
30
+ "lightningcss": "^1.33.0",
31
31
  "mini-css-extract-plugin": "^2.10.2",
32
32
  "postcss": "^8.5.28",
33
33
  "postcss-loader": "^8.2.1",
@@ -38,7 +38,7 @@
38
38
  "webpackbar": "^7.0.0"
39
39
  },
40
40
  "peerDependencies": {
41
- "@docusaurus/faster": "4.0.0-canary-6893",
41
+ "@docusaurus/faster": "4.0.0-canary-6896",
42
42
  "@types/html-minifier-terser": "^7.0.2"
43
43
  },
44
44
  "peerDependenciesMeta": {
@@ -52,5 +52,5 @@
52
52
  "engines": {
53
53
  "node": ">=24.21"
54
54
  },
55
- "gitHead": "4034eb0170f49b59b9d4e5f34425045beb0074e5"
55
+ "gitHead": "ff0fc69d74156d041b6ddfd675f19ad7c461a26c"
56
56
  }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import browserslist from 'browserslist';
9
+ import {browserslistToTargets, type TransformOptions} from 'lightningcss';
10
+
11
+ // Used when the site doesn't provide its own Browserslist config
12
+ // See https://web.dev/baseline
13
+ const DefaultBrowserslistQueries = ['baseline widely available'];
14
+
15
+ export function getBrowserslistQueries(): string[] {
16
+ return (
17
+ browserslist.loadConfig({path: process.cwd()}) ?? DefaultBrowserslistQueries
18
+ );
19
+ }
20
+
21
+ // LightningCSS doesn't expose any type for css-minimizer-webpack-plugin setup
22
+ // So we derive it ourselves
23
+ // see https://lightningcss.dev/docs.html#with-webpack
24
+ type LightningCssMinimizerOptions = Omit<
25
+ TransformOptions<never>,
26
+ 'filename' | 'code'
27
+ >;
28
+
29
+ export function getLightningCssMinimizerOptions(): LightningCssMinimizerOptions {
30
+ const browsers = browserslist(getBrowserslistQueries());
31
+ return {targets: browserslistToTargets(browsers)};
32
+ }
@@ -10,7 +10,6 @@ import type {
10
10
  MinimizerOptions as JsMinimizerOptions,
11
11
  CustomOptions,
12
12
  } from 'terser-webpack-plugin';
13
- import type {MinimizerOptions as CssMinimizerOptions} from 'css-minimizer-webpack-plugin';
14
13
 
15
14
  export type FasterModule = Awaited<typeof import('@docusaurus/faster')>;
16
15
 
@@ -43,11 +42,6 @@ export async function importRspackDevServer(): Promise<
43
42
  return faster.rspackDevServer;
44
43
  }
45
44
 
46
- export async function importSwcLoader(): Promise<string> {
47
- const faster = await ensureFaster();
48
- return faster.swcLoader;
49
- }
50
-
51
45
  export async function importGetSwcLoaderOptions(): Promise<
52
46
  FasterModule['getSwcLoaderOptions']
53
47
  > {
@@ -68,17 +62,3 @@ export async function importSwcHtmlMinifier(): Promise<
68
62
  const faster = await ensureFaster();
69
63
  return faster.getSwcHtmlMinifier();
70
64
  }
71
-
72
- export async function importGetBrowserslistQueries(): Promise<
73
- FasterModule['getBrowserslistQueries']
74
- > {
75
- const faster = await ensureFaster();
76
- return faster.getBrowserslistQueries;
77
- }
78
-
79
- export async function importLightningCssMinimizerOptions(): Promise<
80
- CssMinimizerOptions<CustomOptions>
81
- > {
82
- const faster = await ensureFaster();
83
- return faster.getLightningCssMinimizerOptions() as CssMinimizerOptions<CustomOptions>;
84
- }
@@ -6,8 +6,9 @@
6
6
  */
7
7
 
8
8
  import {getBabelOptions} from '@docusaurus/babel';
9
- import {importSwcLoader, importGetSwcLoaderOptions} from '../importFaster';
9
+ import {importGetSwcLoaderOptions} from '../importFaster';
10
10
  import {getCurrentBundler} from '../currentBundler';
11
+ import {getBrowserslistQueries} from '../browserslist';
11
12
  import type {ConfigureWebpackUtils, DocusaurusConfig} from '@docusaurus/types';
12
13
 
13
14
  const BabelJsLoaderFactory: ConfigureWebpackUtils['getJSLoader'] = ({
@@ -20,29 +21,20 @@ const BabelJsLoaderFactory: ConfigureWebpackUtils['getJSLoader'] = ({
20
21
  };
21
22
  };
22
23
 
23
- async function createSwcJsLoaderFactory(): Promise<
24
- ConfigureWebpackUtils['getJSLoader']
25
- > {
26
- const loader = await importSwcLoader();
27
- const getOptions = await importGetSwcLoaderOptions();
28
- return ({isServer}) => {
29
- return {
30
- loader,
31
- options: getOptions({isServer, bundlerName: 'webpack'}),
32
- };
33
- };
34
- }
35
-
36
- // Same as swcLoader, except we use the built-in SWC loader
37
24
  async function createRspackSwcJsLoaderFactory(): Promise<
38
25
  ConfigureWebpackUtils['getJSLoader']
39
26
  > {
40
27
  const loader = 'builtin:swc-loader';
41
28
  const getOptions = await importGetSwcLoaderOptions();
29
+ const clientBrowserslistQueries = getBrowserslistQueries();
42
30
  return ({isServer}) => {
43
31
  return {
44
32
  loader,
45
- options: getOptions({isServer, bundlerName: 'rspack'}),
33
+ options: getOptions({
34
+ isServer,
35
+ bundlerName: 'rspack',
36
+ clientBrowserslistQueries,
37
+ }),
46
38
  };
47
39
  };
48
40
  }
@@ -61,19 +53,14 @@ export async function createJsLoaderFactory({
61
53
  };
62
54
  }): Promise<ConfigureWebpackUtils['getJSLoader']> {
63
55
  const currentBundler = await getCurrentBundler({siteConfig});
64
- const isSWCLoader = siteConfig.future.faster.swcJsLoader;
65
- if (isSWCLoader) {
56
+ if (currentBundler.name === 'rspack') {
66
57
  if (siteConfig.webpack?.jsLoader) {
67
58
  throw new Error(
68
- `You can't use siteConfig.webpack.jsLoader and siteConfig.future.faster.swcJsLoader at the same time.
69
- To avoid any configuration ambiguity, you must make an explicit choice:
70
- - If you want to use Docusaurus Faster and SWC (recommended), remove siteConfig.webpack.jsLoader
71
- - If you want to use a custom JS loader, use siteConfig.future.faster.swcJsLoader: false`,
59
+ `You can't use siteConfig.webpack.jsLoader with siteConfig.future.faster.rspackBundler.
60
+ Rspack always uses its built-in SWC loader, please remove siteConfig.webpack.jsLoader.`,
72
61
  );
73
62
  }
74
- return currentBundler.name === 'rspack'
75
- ? createRspackSwcJsLoaderFactory()
76
- : createSwcJsLoaderFactory();
63
+ return createRspackSwcJsLoaderFactory();
77
64
  }
78
65
 
79
66
  const jsLoader = siteConfig.webpack?.jsLoader ?? 'babel';
@@ -7,18 +7,17 @@
7
7
 
8
8
  import TerserPlugin from 'terser-webpack-plugin';
9
9
  import CssMinimizerPlugin from 'css-minimizer-webpack-plugin';
10
- import {
11
- importSwcJsMinimizerOptions,
12
- importLightningCssMinimizerOptions,
13
- importGetBrowserslistQueries,
14
- } from './importFaster';
10
+ import {importSwcJsMinimizerOptions} from './importFaster';
15
11
  import {getCurrentBundlerAsRspack} from './currentBundler';
16
- import type {CssNanoOptions} from 'css-minimizer-webpack-plugin';
12
+ import {
13
+ getBrowserslistQueries,
14
+ getLightningCssMinimizerOptions,
15
+ } from './browserslist';
17
16
  import type {WebpackPluginInstance} from 'webpack';
18
17
  import type {CurrentBundler, FasterConfig} from '@docusaurus/types';
19
18
 
20
19
  export type MinimizersConfig = {
21
- faster: Pick<FasterConfig, 'swcJsMinimizer' | 'lightningCssMinimizer'>;
20
+ faster: Pick<FasterConfig, 'swcJsMinimizer'>;
22
21
  currentBundler: CurrentBundler;
23
22
  };
24
23
 
@@ -77,49 +76,23 @@ async function getJsMinimizer({
77
76
  });
78
77
  }
79
78
 
80
- async function getLightningCssMinimizer(): Promise<WebpackPluginInstance> {
79
+ function getCssMinimizer(): WebpackPluginInstance {
81
80
  return new CssMinimizerPlugin({
82
81
  minify: CssMinimizerPlugin.lightningCssMinify,
83
- minimizerOptions: await importLightningCssMinimizerOptions(),
82
+ minimizerOptions: getLightningCssMinimizerOptions(),
84
83
  });
85
84
  }
86
85
 
87
- async function getCssNanoMinimizer(): Promise<WebpackPluginInstance> {
88
- // This is an historical env variable to opt-out of the advanced minimizer
89
- // Sometimes there's a bug in it and people are happy to disable it
90
- const useSimpleCssMinifier = process.env.USE_SIMPLE_CSS_MINIFIER === 'true';
91
- if (useSimpleCssMinifier) {
92
- return new CssMinimizerPlugin();
93
- }
94
-
95
- return new CssMinimizerPlugin<CssNanoOptions>({
96
- minify: CssMinimizerPlugin.cssnanoMinify,
97
- minimizerOptions: {
98
- preset: require.resolve('@docusaurus/cssnano-preset'),
99
- },
100
- });
101
- }
102
-
103
- async function getCssMinimizer(
104
- params: MinimizersConfig,
105
- ): Promise<WebpackPluginInstance> {
106
- return params.faster.lightningCssMinimizer
107
- ? getLightningCssMinimizer()
108
- : getCssNanoMinimizer();
109
- }
110
-
111
86
  async function getWebpackMinimizers(
112
87
  params: MinimizersConfig,
113
88
  ): Promise<WebpackPluginInstance[]> {
114
- return Promise.all([getJsMinimizer(params), getCssMinimizer(params)]);
89
+ return [await getJsMinimizer(params), getCssMinimizer()];
115
90
  }
116
91
 
117
92
  async function getRspackMinimizers({
118
93
  currentBundler,
119
94
  }: MinimizersConfig): Promise<WebpackPluginInstance[]> {
120
95
  const rspack = getCurrentBundlerAsRspack({currentBundler});
121
- const getBrowserslistQueries = await importGetBrowserslistQueries();
122
- const browserslistQueries = getBrowserslistQueries();
123
96
  const swcJsMinimizerOptions = await importSwcJsMinimizerOptions();
124
97
 
125
98
  return [
@@ -134,13 +107,11 @@ async function getRspackMinimizers({
134
107
  }),
135
108
  new rspack.LightningCssMinimizerRspackPlugin({
136
109
  minimizerOptions: {
137
- ...(await importLightningCssMinimizerOptions()),
138
- // Not sure why but Rspack takes browserslist queries directly
139
- // While LightningCSS targets are normally not browserslist queries
140
- // We have to override the option to avoid errors
110
+ // Rspack takes Browserslist queries directly
111
+ // While LightningCSS targets are normally not Browserslist queries
141
112
  // See https://rspack.dev/plugins/rspack/lightning-css-minimizer-rspack-plugin#minimizeroptions
142
113
  // See https://lightningcss.dev/transpilation.html
143
- targets: browserslistQueries,
114
+ targets: getBrowserslistQueries(),
144
115
  },
145
116
  }),
146
117
  ] as unknown as WebpackPluginInstance[];