@docusaurus/bundler 4.0.0-canary-6912 → 4.0.0-canary-6913
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/currentBundler.d.ts +3 -3
- package/lib/currentBundler.d.ts.map +1 -1
- package/lib/currentBundler.js +4 -7
- package/lib/currentBundler.js.map +1 -1
- package/lib/minification.d.ts.map +1 -1
- package/lib/minification.js +11 -11
- package/lib/minification.js.map +1 -1
- package/package.json +5 -5
- package/src/currentBundler.ts +10 -6
- package/src/minification.ts +8 -6
package/lib/currentBundler.d.ts
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
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 webpack from 'webpack';
|
|
8
|
-
import WebpackBar from 'webpackbar';
|
|
9
|
-
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
|
|
7
|
+
import type webpack from 'webpack';
|
|
8
|
+
import type WebpackBar from 'webpackbar';
|
|
9
|
+
import type MiniCssExtractPlugin from 'mini-css-extract-plugin';
|
|
10
10
|
import type { CurrentBundler, DocusaurusConfig } from '@docusaurus/types';
|
|
11
11
|
type SiteConfigSlice = Pick<DocusaurusConfig, 'webpack'>;
|
|
12
12
|
export declare function getCurrentBundler({ siteConfig, }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currentBundler.d.ts","sourceRoot":"","sources":["../src/currentBundler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"currentBundler.d.ts","sourceRoot":"","sources":["../src/currentBundler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,oBAAoB,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAKxE,KAAK,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;AAOzD,wBAAsB,iBAAiB,CAAC,EACtC,UAAU,GACX,EAAE;IACD,UAAU,EAAE,eAAe,CAAC;CAC7B,GAAG,OAAO,CAAC,cAAc,CAAC,CAY1B;AAED,wBAAsB,mBAAmB,CAAC,EACxC,cAAc,GACf,EAAE;IACD,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,OAAO,oBAAoB,CAAC,CAKvC;AAED,wBAAsB,aAAa,CAAC,EAClC,cAAc,GACf,EAAE;IACD,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,OAAO,OAAO,CAAC,UAAU,CAAC,CAKrC;AAED,wBAAsB,oBAAoB,CAAC,EACzC,cAAc,GACf,EAAE;IACD,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,OAAO,UAAU,CAAC,CAkB7B;AAED,wBAAsB,sBAAsB,CAAC,EAC3C,cAAc,GACf,EAAE;IACD,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAmC/B"}
|
package/lib/currentBundler.js
CHANGED
|
@@ -11,10 +11,6 @@ exports.getCSSExtractPlugin = getCSSExtractPlugin;
|
|
|
11
11
|
exports.getCopyPlugin = getCopyPlugin;
|
|
12
12
|
exports.getProgressBarPlugin = getProgressBarPlugin;
|
|
13
13
|
exports.registerBundlerTracing = registerBundlerTracing;
|
|
14
|
-
const tslib_1 = require("tslib");
|
|
15
|
-
const webpack_1 = tslib_1.__importDefault(require("webpack"));
|
|
16
|
-
const webpackbar_1 = tslib_1.__importDefault(require("webpackbar"));
|
|
17
|
-
const mini_css_extract_plugin_1 = tslib_1.__importDefault(require("mini-css-extract-plugin"));
|
|
18
14
|
const rspack_1 = require("./rspack");
|
|
19
15
|
// Rspack is the default, Webpack is opt-in (deprecated)
|
|
20
16
|
function isRspack(siteConfig) {
|
|
@@ -30,14 +26,14 @@ async function getCurrentBundler({ siteConfig, }) {
|
|
|
30
26
|
}
|
|
31
27
|
return {
|
|
32
28
|
name: 'webpack',
|
|
33
|
-
instance:
|
|
29
|
+
instance: (await import('webpack')).default,
|
|
34
30
|
};
|
|
35
31
|
}
|
|
36
32
|
async function getCSSExtractPlugin({ currentBundler, }) {
|
|
37
33
|
if (currentBundler.name === 'rspack') {
|
|
38
34
|
return rspack_1.rspack.CssExtractRspackPlugin;
|
|
39
35
|
}
|
|
40
|
-
return
|
|
36
|
+
return (await import('mini-css-extract-plugin')).default;
|
|
41
37
|
}
|
|
42
38
|
async function getCopyPlugin({ currentBundler, }) {
|
|
43
39
|
if (currentBundler.name === 'rspack') {
|
|
@@ -60,7 +56,8 @@ async function getProgressBarPlugin({ currentBundler, }) {
|
|
|
60
56
|
}
|
|
61
57
|
return CustomRspackProgressPlugin;
|
|
62
58
|
}
|
|
63
|
-
|
|
59
|
+
// Dynamic import resolves the ESM types, while "import type" resolves CJS
|
|
60
|
+
return (await import('webpackbar')).default;
|
|
64
61
|
}
|
|
65
62
|
async function registerBundlerTracing({ currentBundler, }) {
|
|
66
63
|
if (currentBundler.name === 'rspack') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currentBundler.js","sourceRoot":"","sources":["../src/currentBundler.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"currentBundler.js","sourceRoot":"","sources":["../src/currentBundler.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;AAEH,qCAAgC;AAWhC,wDAAwD;AACxD,SAAS,QAAQ,CAAC,UAA2B;IAC3C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;AAC7B,CAAC;AAEM,KAAK,4BAA4B,EACtC,UAAU,GAGX;IACC,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,gEAAgE;YAChE,QAAQ,EAAE,eAAmC;SAC9C,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;KAC5C,CAAC;AACJ,CAAC;AAEM,KAAK,8BAA8B,EACxC,cAAc,GAGf;IACC,IAAI,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,eAAM,CAAC,sBAAgE,CAAC;IACjF,CAAC;IACD,OAAO,CAAC,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC;AAC3D,CAAC;AAEM,KAAK,wBAAwB,EAClC,cAAc,GAGf;IACC,IAAI,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,eAAM,CAAC,gBAAwD,CAAC;IACzE,CAAC;IACD,OAAO,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;AAC5C,CAAC;AAEM,KAAK,+BAA+B,EACzC,cAAc,GAGf;IACC,IAAI,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,0BAA2B,SAAQ,eAAM,CAAC,cAAc;YAC5D,YAAY,EAAC,IAAI,EAAE,KAAK,GAAG,OAAO,EAAkC;gBAClE,uEAAuE;gBACvE,yDAAyD;gBACzD,KAAK,CAAC;oBACJ,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,4BAA4B,KAAK,0CAA0C;oBACrF,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;YACL,CAAC;SACF;QACD,OAAO,0BAA0D,CAAC;IACpE,CAAC;IAED,0EAA0E;IAC1E,OAAO,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,OAAuC,CAAC;AAC9E,CAAC;AAEM,KAAK,iCAAiC,EAC3C,cAAc,GAGf;IACC,IAAI,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,0DAA0D;QAC1D,mDAAmD;QACnD,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;YACxC,oDAAoD;YACpD,oFAAoF;YACpF,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;YAEjD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACxC,+CAA+C;gBAC/C,yDAAyD;gBACzD,gGAAgG;gBAChG,MAAM,GAAG,MAAM,CAAC;YAClB,CAAC;YAED,MAAM,eAAM,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAC3C,MAAM,EACN,UAAU,EACV,0BAA0B,CAC3B,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;YAE5D,OAAO,KAAK,IAAI,EAAE;gBAChB,MAAM,eAAM,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;YAC7D,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,OAAO,KAAK,IAAI,EAAE;QAChB,OAAO;IACT,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -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;AAYH,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;AAoFF,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAKlC"}
|
package/lib/minification.js
CHANGED
|
@@ -7,9 +7,6 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.getMinimizers = getMinimizers;
|
|
10
|
-
const tslib_1 = require("tslib");
|
|
11
|
-
const terser_webpack_plugin_1 = tslib_1.__importDefault(require("terser-webpack-plugin"));
|
|
12
|
-
const css_minimizer_webpack_plugin_1 = tslib_1.__importDefault(require("css-minimizer-webpack-plugin"));
|
|
13
10
|
const rspack_1 = require("./rspack");
|
|
14
11
|
const browserslist_1 = require("./browserslist");
|
|
15
12
|
// Shared by Webpack and Rspack, compatible with both SWC and Rspack types
|
|
@@ -42,21 +39,24 @@ function getTerserParallel() {
|
|
|
42
39
|
return terserParallel;
|
|
43
40
|
}
|
|
44
41
|
// Terser is not used: terser-webpack-plugin only runs the SWC minifier
|
|
45
|
-
function getJsMinimizer() {
|
|
46
|
-
|
|
42
|
+
async function getJsMinimizer() {
|
|
43
|
+
const { default: TerserPlugin } = await import('terser-webpack-plugin');
|
|
44
|
+
return new TerserPlugin({
|
|
47
45
|
parallel: getTerserParallel(),
|
|
48
|
-
minify:
|
|
46
|
+
minify: TerserPlugin.swcMinify,
|
|
49
47
|
terserOptions: { ...SwcJsMinimizerOptions, safari10: true },
|
|
50
48
|
});
|
|
51
49
|
}
|
|
52
|
-
function getCssMinimizer() {
|
|
53
|
-
|
|
54
|
-
|
|
50
|
+
async function getCssMinimizer() {
|
|
51
|
+
const { default: CssMinimizerPlugin } = await import('css-minimizer-webpack-plugin');
|
|
52
|
+
return new CssMinimizerPlugin({
|
|
53
|
+
minify: CssMinimizerPlugin.lightningCssMinify,
|
|
55
54
|
minimizerOptions: (0, browserslist_1.getLightningCssMinimizerOptions)(),
|
|
56
55
|
});
|
|
57
56
|
}
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
// Webpack-only minimizers are imported lazily, only when Webpack is used
|
|
58
|
+
async function getWebpackMinimizers() {
|
|
59
|
+
return Promise.all([getJsMinimizer(), getCssMinimizer()]);
|
|
60
60
|
}
|
|
61
61
|
function getRspackMinimizers() {
|
|
62
62
|
return [
|
package/lib/minification.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minification.js","sourceRoot":"","sources":["../src/minification.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"minification.js","sourceRoot":"","sources":["../src/minification.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,qCAAgC;AAChC,iDAGwB;AAiBxB,0EAA0E;AAC1E,8DAA8D;AAC9D,qDAAqD;AACrD,uFAAuF;AACvF,MAAM,qBAAqB,GAAG;IAC5B,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE;QACR,IAAI,EAAE,CAAC;KACR;IACD,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE;QACN,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,IAAI;KACjB;CAC6C,CAAC;AAEjD,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,KAAK,UAAU,cAAc;IAC3B,MAAM,EAAC,OAAO,EAAE,YAAY,EAAC,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACtE,OAAO,IAAI,YAAY,CAAkB;QACvC,QAAQ,EAAE,iBAAiB,EAAE;QAC7B,MAAM,EAAE,YAAY,CAAC,SAAS;QAC9B,aAAa,EAAE,EAAC,GAAG,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAC;KAC1D,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,MAAM,EAAC,OAAO,EAAE,kBAAkB,EAAC,GACjC,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;IAC/C,OAAO,IAAI,kBAAkB,CAAC;QAC5B,MAAM,EAAE,kBAAkB,CAAC,kBAAkB;QAC7C,gBAAgB,EAAE,IAAA,8CAA+B,GAAE;KACpD,CAAC,CAAC;AACL,CAAC;AAED,yEAAyE;AACzE,KAAK,UAAU,oBAAoB;IACjC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO;QACL,uEAAuE;QACvE,qDAAqD;QACrD,IAAI,eAAM,CAAC,0BAA0B,CAAC;YACpC,gBAAgB,EAAE;gBAChB,MAAM,EAAE,IAAI;gBACZ,GAAG,qBAAqB;aACzB;SACF,CAAC;QACF,IAAI,eAAM,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;KACH,CAAC;AACJ,CAAC;AAEM,KAAK,wBACV,MAAwB;IAExB,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,KAAK,QAAQ;QAC5C,CAAC,CAAC,0DAA0D;YACzD,mBAAmB,EAAyC;QAC/D,CAAC,CAAC,oBAAoB,EAAE,CAAC;AAC7B,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-6913",
|
|
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,9 +19,9 @@
|
|
|
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-6913",
|
|
23
|
+
"@docusaurus/logger": "4.0.0-canary-6913",
|
|
24
|
+
"@docusaurus/types": "4.0.0-canary-6913",
|
|
25
25
|
"@rspack/core": "^2.2.3",
|
|
26
26
|
"@rspack/dev-server": "^2.2.1",
|
|
27
27
|
"@swc/core": "^1.16.2",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"engines": {
|
|
45
45
|
"node": ">=24.21"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "4ac512f4ec13cf7626e2f099b8e076552a707b78"
|
|
48
48
|
}
|
package/src/currentBundler.ts
CHANGED
|
@@ -5,12 +5,15 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import webpack from 'webpack';
|
|
9
|
-
import WebpackBar from 'webpackbar';
|
|
10
|
-
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
|
|
11
8
|
import {rspack} from './rspack';
|
|
9
|
+
import type webpack from 'webpack';
|
|
10
|
+
import type WebpackBar from 'webpackbar';
|
|
11
|
+
import type MiniCssExtractPlugin from 'mini-css-extract-plugin';
|
|
12
12
|
import type {CurrentBundler, DocusaurusConfig} from '@docusaurus/types';
|
|
13
13
|
|
|
14
|
+
// Webpack-only packages are imported lazily, only when Webpack is used
|
|
15
|
+
// Rspack sites (the default) shouldn't pay their load cost
|
|
16
|
+
|
|
14
17
|
type SiteConfigSlice = Pick<DocusaurusConfig, 'webpack'>;
|
|
15
18
|
|
|
16
19
|
// Rspack is the default, Webpack is opt-in (deprecated)
|
|
@@ -32,7 +35,7 @@ export async function getCurrentBundler({
|
|
|
32
35
|
}
|
|
33
36
|
return {
|
|
34
37
|
name: 'webpack',
|
|
35
|
-
instance: webpack,
|
|
38
|
+
instance: (await import('webpack')).default,
|
|
36
39
|
};
|
|
37
40
|
}
|
|
38
41
|
|
|
@@ -44,7 +47,7 @@ export async function getCSSExtractPlugin({
|
|
|
44
47
|
if (currentBundler.name === 'rspack') {
|
|
45
48
|
return rspack.CssExtractRspackPlugin as unknown as typeof MiniCssExtractPlugin;
|
|
46
49
|
}
|
|
47
|
-
return
|
|
50
|
+
return (await import('mini-css-extract-plugin')).default;
|
|
48
51
|
}
|
|
49
52
|
|
|
50
53
|
export async function getCopyPlugin({
|
|
@@ -78,7 +81,8 @@ export async function getProgressBarPlugin({
|
|
|
78
81
|
return CustomRspackProgressPlugin as unknown as typeof WebpackBar;
|
|
79
82
|
}
|
|
80
83
|
|
|
81
|
-
|
|
84
|
+
// Dynamic import resolves the ESM types, while "import type" resolves CJS
|
|
85
|
+
return (await import('webpackbar')).default as unknown as typeof WebpackBar;
|
|
82
86
|
}
|
|
83
87
|
|
|
84
88
|
export async function registerBundlerTracing({
|
package/src/minification.ts
CHANGED
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import TerserPlugin from 'terser-webpack-plugin';
|
|
9
|
-
import CssMinimizerPlugin from 'css-minimizer-webpack-plugin';
|
|
10
8
|
import {rspack} from './rspack';
|
|
11
9
|
import {
|
|
12
10
|
getBrowserslistQueries,
|
|
@@ -61,7 +59,8 @@ function getTerserParallel() {
|
|
|
61
59
|
}
|
|
62
60
|
|
|
63
61
|
// Terser is not used: terser-webpack-plugin only runs the SWC minifier
|
|
64
|
-
function getJsMinimizer(): WebpackPluginInstance {
|
|
62
|
+
async function getJsMinimizer(): Promise<WebpackPluginInstance> {
|
|
63
|
+
const {default: TerserPlugin} = await import('terser-webpack-plugin');
|
|
65
64
|
return new TerserPlugin<JsMinifyOptions>({
|
|
66
65
|
parallel: getTerserParallel(),
|
|
67
66
|
minify: TerserPlugin.swcMinify,
|
|
@@ -69,15 +68,18 @@ function getJsMinimizer(): WebpackPluginInstance {
|
|
|
69
68
|
});
|
|
70
69
|
}
|
|
71
70
|
|
|
72
|
-
function getCssMinimizer(): WebpackPluginInstance {
|
|
71
|
+
async function getCssMinimizer(): Promise<WebpackPluginInstance> {
|
|
72
|
+
const {default: CssMinimizerPlugin} =
|
|
73
|
+
await import('css-minimizer-webpack-plugin');
|
|
73
74
|
return new CssMinimizerPlugin({
|
|
74
75
|
minify: CssMinimizerPlugin.lightningCssMinify,
|
|
75
76
|
minimizerOptions: getLightningCssMinimizerOptions(),
|
|
76
77
|
});
|
|
77
78
|
}
|
|
78
79
|
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
// Webpack-only minimizers are imported lazily, only when Webpack is used
|
|
81
|
+
async function getWebpackMinimizers(): Promise<WebpackPluginInstance[]> {
|
|
82
|
+
return Promise.all([getJsMinimizer(), getCssMinimizer()]);
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
function getRspackMinimizers(): RspackPluginInstance[] {
|