@rsbuild/core 0.0.0-next-20231103091827
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/LICENSE +21 -0
- package/README.md +19 -0
- package/bin/rsbuild.js +24 -0
- package/dist/cli/commands.d.ts +7 -0
- package/dist/cli/commands.js +53 -0
- package/dist/cli/config.d.ts +12 -0
- package/dist/cli/config.js +90 -0
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.js +48 -0
- package/dist/createRsbuild.d.ts +11 -0
- package/dist/createRsbuild.js +103 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +36 -0
- package/dist/plugins/asset.d.ts +3 -0
- package/dist/plugins/asset.js +67 -0
- package/dist/plugins/assetsRetry.d.ts +2 -0
- package/dist/plugins/assetsRetry.js +66 -0
- package/dist/plugins/bundleAnalyzer.d.ts +2 -0
- package/dist/plugins/bundleAnalyzer.js +59 -0
- package/dist/plugins/cache.d.ts +2 -0
- package/dist/plugins/cache.js +115 -0
- package/dist/plugins/cleanOutput.d.ts +2 -0
- package/dist/plugins/cleanOutput.js +47 -0
- package/dist/plugins/define.d.ts +2 -0
- package/dist/plugins/define.js +59 -0
- package/dist/plugins/devtool.d.ts +2 -0
- package/dist/plugins/devtool.js +46 -0
- package/dist/plugins/entry.d.ts +2 -0
- package/dist/plugins/entry.js +42 -0
- package/dist/plugins/externals.d.ts +2 -0
- package/dist/plugins/externals.js +48 -0
- package/dist/plugins/fileSize.d.ts +4 -0
- package/dist/plugins/fileSize.js +160 -0
- package/dist/plugins/html.d.ts +7 -0
- package/dist/plugins/html.js +242 -0
- package/dist/plugins/index.d.ts +2 -0
- package/dist/plugins/index.js +67 -0
- package/dist/plugins/inlineChunk.d.ts +2 -0
- package/dist/plugins/inlineChunk.js +85 -0
- package/dist/plugins/moment.d.ts +2 -0
- package/dist/plugins/moment.js +43 -0
- package/dist/plugins/networkPerformance.d.ts +2 -0
- package/dist/plugins/networkPerformance.js +58 -0
- package/dist/plugins/nodeAddons.d.ts +2 -0
- package/dist/plugins/nodeAddons.js +78 -0
- package/dist/plugins/performance.d.ts +5 -0
- package/dist/plugins/performance.js +63 -0
- package/dist/plugins/preloadOrPrefetch.d.ts +2 -0
- package/dist/plugins/preloadOrPrefetch.js +61 -0
- package/dist/plugins/rem.d.ts +2 -0
- package/dist/plugins/rem.js +103 -0
- package/dist/plugins/splitChunks.d.ts +4 -0
- package/dist/plugins/splitChunks.js +251 -0
- package/dist/plugins/startUrl.d.ts +12 -0
- package/dist/plugins/startUrl.js +146 -0
- package/dist/plugins/target.d.ts +2 -0
- package/dist/plugins/target.js +53 -0
- package/dist/plugins/toml.d.ts +2 -0
- package/dist/plugins/toml.js +36 -0
- package/dist/plugins/wasm.d.ts +2 -0
- package/dist/plugins/wasm.js +51 -0
- package/dist/plugins/yaml.d.ts +2 -0
- package/dist/plugins/yaml.js +36 -0
- package/dist/rspack-provider/config/defaults.d.ts +3 -0
- package/dist/rspack-provider/config/defaults.js +40 -0
- package/dist/rspack-provider/config/normalize.d.ts +7 -0
- package/dist/rspack-provider/config/normalize.js +33 -0
- package/dist/rspack-provider/core/build.d.ts +19 -0
- package/dist/rspack-provider/core/build.js +79 -0
- package/dist/rspack-provider/core/createCompiler.d.ts +9 -0
- package/dist/rspack-provider/core/createCompiler.js +83 -0
- package/dist/rspack-provider/core/createContext.d.ts +7 -0
- package/dist/rspack-provider/core/createContext.js +47 -0
- package/dist/rspack-provider/core/devMiddleware.d.ts +5 -0
- package/dist/rspack-provider/core/devMiddleware.js +65 -0
- package/dist/rspack-provider/core/initConfigs.d.ts +14 -0
- package/dist/rspack-provider/core/initConfigs.js +76 -0
- package/dist/rspack-provider/core/initHooks.d.ts +18 -0
- package/dist/rspack-provider/core/initHooks.js +45 -0
- package/dist/rspack-provider/core/initPlugins.d.ts +9 -0
- package/dist/rspack-provider/core/initPlugins.js +82 -0
- package/dist/rspack-provider/core/inspectConfig.d.ts +19 -0
- package/dist/rspack-provider/core/inspectConfig.js +81 -0
- package/dist/rspack-provider/core/rspackConfig.d.ts +9 -0
- package/dist/rspack-provider/core/rspackConfig.js +137 -0
- package/dist/rspack-provider/core/startDevServer.d.ts +6 -0
- package/dist/rspack-provider/core/startDevServer.js +84 -0
- package/dist/rspack-provider/index.d.ts +5 -0
- package/dist/rspack-provider/index.js +31 -0
- package/dist/rspack-provider/plugins/basic.d.ts +5 -0
- package/dist/rspack-provider/plugins/basic.js +34 -0
- package/dist/rspack-provider/plugins/css.d.ts +29 -0
- package/dist/rspack-provider/plugins/css.js +214 -0
- package/dist/rspack-provider/plugins/fallback.d.ts +2 -0
- package/dist/rspack-provider/plugins/fallback.js +54 -0
- package/dist/rspack-provider/plugins/hmr.d.ts +2 -0
- package/dist/rspack-provider/plugins/hmr.js +38 -0
- package/dist/rspack-provider/plugins/less.d.ts +2 -0
- package/dist/rspack-provider/plugins/less.js +78 -0
- package/dist/rspack-provider/plugins/manifest.d.ts +2 -0
- package/dist/rspack-provider/plugins/manifest.js +58 -0
- package/dist/rspack-provider/plugins/minimize.d.ts +5 -0
- package/dist/rspack-provider/plugins/minimize.js +77 -0
- package/dist/rspack-provider/plugins/output.d.ts +2 -0
- package/dist/rspack-provider/plugins/output.js +65 -0
- package/dist/rspack-provider/plugins/progress.d.ts +2 -0
- package/dist/rspack-provider/plugins/progress.js +57 -0
- package/dist/rspack-provider/plugins/resolve.d.ts +2 -0
- package/dist/rspack-provider/plugins/resolve.js +55 -0
- package/dist/rspack-provider/plugins/rspack-profile.d.ts +4 -0
- package/dist/rspack-provider/plugins/rspack-profile.js +107 -0
- package/dist/rspack-provider/plugins/sass.d.ts +2 -0
- package/dist/rspack-provider/plugins/sass.js +83 -0
- package/dist/rspack-provider/plugins/swc.d.ts +7 -0
- package/dist/rspack-provider/plugins/swc.js +151 -0
- package/dist/rspack-provider/plugins/transition.d.ts +5 -0
- package/dist/rspack-provider/plugins/transition.js +42 -0
- package/dist/rspack-provider/provider.d.ts +8 -0
- package/dist/rspack-provider/provider.js +116 -0
- package/dist/rspack-provider/rspackLoader/css-modules-typescript-pre-loader/index.d.ts +6 -0
- package/dist/rspack-provider/rspackLoader/css-modules-typescript-pre-loader/index.js +84 -0
- package/dist/rspack-provider/rspackLoader/css-modules-typescript-pre-loader/postcss-icss-extract-plugin.d.ts +11 -0
- package/dist/rspack-provider/rspackLoader/css-modules-typescript-pre-loader/postcss-icss-extract-plugin.js +67 -0
- package/dist/rspack-provider/rspackPlugin/removeCssSourcemapPlugin.d.ts +8 -0
- package/dist/rspack-provider/rspackPlugin/removeCssSourcemapPlugin.js +51 -0
- package/dist/rspack-provider/shared/constants.d.ts +1 -0
- package/dist/rspack-provider/shared/constants.js +28 -0
- package/dist/rspack-provider/shared/fs.d.ts +1 -0
- package/dist/rspack-provider/shared/fs.js +38 -0
- package/dist/rspack-provider/shared/index.d.ts +3 -0
- package/dist/rspack-provider/shared/index.js +26 -0
- package/dist/rspack-provider/shared/plugin.d.ts +3 -0
- package/dist/rspack-provider/shared/plugin.js +83 -0
- package/dist/rspack-provider/shared/rspackVersion.d.ts +3 -0
- package/dist/rspack-provider/shared/rspackVersion.js +61 -0
- package/dist/rspack-provider/types/context.d.ts +16 -0
- package/dist/rspack-provider/types/context.js +16 -0
- package/dist/rspack-provider/types/hooks.d.ts +3 -0
- package/dist/rspack-provider/types/hooks.js +16 -0
- package/dist/rspack-provider/types/index.d.ts +4 -0
- package/dist/rspack-provider/types/index.js +26 -0
- package/dist/rspack-provider/types/plugin.d.ts +7 -0
- package/dist/rspack-provider/types/plugin.js +16 -0
- package/dist/utils/generateMetaTags.d.ts +12 -0
- package/dist/utils/generateMetaTags.js +50 -0
- package/package.json +98 -0
- package/static/openChrome.applescript +95 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var cache_exports = {};
|
|
30
|
+
__export(cache_exports, {
|
|
31
|
+
pluginCache: () => pluginCache
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(cache_exports);
|
|
34
|
+
var import_crypto = __toESM(require("crypto"));
|
|
35
|
+
var import_path = require("path");
|
|
36
|
+
var import_fs_extra = require("@rsbuild/shared/fs-extra");
|
|
37
|
+
var import_shared = require("@rsbuild/shared");
|
|
38
|
+
async function validateCache(cacheDirectory, buildDependencies) {
|
|
39
|
+
const configFile = (0, import_path.join)(cacheDirectory, "buildDependencies.json");
|
|
40
|
+
if (await (0, import_shared.isFileExists)(configFile)) {
|
|
41
|
+
const prevBuildDependencies = await import_fs_extra.fs.readJSON(configFile);
|
|
42
|
+
if (JSON.stringify(prevBuildDependencies) === JSON.stringify(buildDependencies)) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
await import_fs_extra.fs.remove(cacheDirectory);
|
|
46
|
+
}
|
|
47
|
+
await import_fs_extra.fs.outputJSON(configFile, buildDependencies);
|
|
48
|
+
}
|
|
49
|
+
function getDigestHash(digest) {
|
|
50
|
+
const fsHash = import_crypto.default.createHash("md5");
|
|
51
|
+
const md5 = fsHash.update(JSON.stringify(digest)).digest("hex").slice(0, 8);
|
|
52
|
+
return md5;
|
|
53
|
+
}
|
|
54
|
+
function getCacheDirectory({ cacheDirectory }, context) {
|
|
55
|
+
if (cacheDirectory) {
|
|
56
|
+
return (0, import_path.isAbsolute)(cacheDirectory) ? cacheDirectory : (0, import_path.join)(context.rootPath, cacheDirectory);
|
|
57
|
+
}
|
|
58
|
+
return (0, import_path.join)(context.cachePath, context.bundlerType);
|
|
59
|
+
}
|
|
60
|
+
async function getBuildDependencies(context) {
|
|
61
|
+
const rootPackageJson = (0, import_path.join)(context.rootPath, "package.json");
|
|
62
|
+
const browserslistConfig = (0, import_path.join)(context.rootPath, ".browserslistrc");
|
|
63
|
+
const buildDependencies = {};
|
|
64
|
+
if (await (0, import_shared.isFileExists)(rootPackageJson)) {
|
|
65
|
+
buildDependencies.packageJson = [rootPackageJson];
|
|
66
|
+
}
|
|
67
|
+
if (context.configPath) {
|
|
68
|
+
buildDependencies.config = [context.configPath];
|
|
69
|
+
}
|
|
70
|
+
if (context.tsconfigPath) {
|
|
71
|
+
buildDependencies.tsconfig = [context.tsconfigPath];
|
|
72
|
+
}
|
|
73
|
+
if (await (0, import_shared.isFileExists)(browserslistConfig)) {
|
|
74
|
+
buildDependencies.browserslistrc = [browserslistConfig];
|
|
75
|
+
}
|
|
76
|
+
const tailwindExts = ["ts", "js", "cjs", "mjs"];
|
|
77
|
+
const configs = tailwindExts.map(
|
|
78
|
+
(ext) => (0, import_path.join)(context.rootPath, `tailwind.config.${ext}`)
|
|
79
|
+
);
|
|
80
|
+
const tailwindConfig = (0, import_shared.findExists)(configs);
|
|
81
|
+
if (tailwindConfig) {
|
|
82
|
+
buildDependencies.tailwindcss = [tailwindConfig];
|
|
83
|
+
}
|
|
84
|
+
return buildDependencies;
|
|
85
|
+
}
|
|
86
|
+
const pluginCache = () => ({
|
|
87
|
+
name: "plugin-cache",
|
|
88
|
+
setup(api) {
|
|
89
|
+
api.modifyBundlerChain(async (chain, { target, env }) => {
|
|
90
|
+
const { buildCache } = api.getNormalizedConfig().performance;
|
|
91
|
+
if (buildCache === false) {
|
|
92
|
+
chain.cache(false);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const { context } = api;
|
|
96
|
+
const cacheConfig = typeof buildCache === "boolean" ? {} : buildCache;
|
|
97
|
+
const cacheDirectory = getCacheDirectory(cacheConfig, context);
|
|
98
|
+
const buildDependencies = await getBuildDependencies(context);
|
|
99
|
+
await validateCache(cacheDirectory, buildDependencies);
|
|
100
|
+
const useDigest = Array.isArray(cacheConfig.cacheDigest) && cacheConfig.cacheDigest.length;
|
|
101
|
+
chain.cache({
|
|
102
|
+
// The default cache name of webpack is '${name}-${env}', and the `name` is `default` by default.
|
|
103
|
+
// We set cache name to avoid cache conflicts of different targets.
|
|
104
|
+
name: useDigest ? `${target}-${env}-${getDigestHash(cacheConfig.cacheDigest)}` : `${target}-${env}`,
|
|
105
|
+
type: "filesystem",
|
|
106
|
+
cacheDirectory,
|
|
107
|
+
buildDependencies
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
113
|
+
0 && (module.exports = {
|
|
114
|
+
pluginCache
|
|
115
|
+
});
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var cleanOutput_exports = {};
|
|
20
|
+
__export(cleanOutput_exports, {
|
|
21
|
+
pluginCleanOutput: () => pluginCleanOutput
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(cleanOutput_exports);
|
|
24
|
+
var import_fs_extra = require("@rsbuild/shared/fs-extra");
|
|
25
|
+
const emptyDir = async (dir) => {
|
|
26
|
+
if (await import_fs_extra.fs.pathExists(dir)) {
|
|
27
|
+
await import_fs_extra.fs.emptyDir(dir);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const pluginCleanOutput = () => ({
|
|
31
|
+
name: "plugin-clean-output",
|
|
32
|
+
setup(api) {
|
|
33
|
+
const clean = async () => {
|
|
34
|
+
const config = api.getNormalizedConfig();
|
|
35
|
+
if (config.output.cleanDistPath) {
|
|
36
|
+
const { distPath } = api.context;
|
|
37
|
+
await emptyDir(distPath);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
api.onBeforeBuild(clean);
|
|
41
|
+
api.onBeforeStartDevServer(clean);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
45
|
+
0 && (module.exports = {
|
|
46
|
+
pluginCleanOutput
|
|
47
|
+
});
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var define_exports = {};
|
|
20
|
+
__export(define_exports, {
|
|
21
|
+
pluginDefine: () => pluginDefine
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(define_exports);
|
|
24
|
+
var import_lodash = require("lodash");
|
|
25
|
+
var import_shared = require("@rsbuild/shared");
|
|
26
|
+
const pluginDefine = () => ({
|
|
27
|
+
name: "plugin-define",
|
|
28
|
+
async setup(api) {
|
|
29
|
+
api.modifyBundlerChain(
|
|
30
|
+
async (chain, { env, target, CHAIN_ID, bundler }) => {
|
|
31
|
+
const config = api.getNormalizedConfig();
|
|
32
|
+
const publicPath = chain.output.get("publicPath");
|
|
33
|
+
const assetPrefix = publicPath && typeof publicPath === "string" ? publicPath : config.output.assetPrefix;
|
|
34
|
+
const builtinVars = {
|
|
35
|
+
"process.env.NODE_ENV": process.env.NODE_ENV,
|
|
36
|
+
"process.env.ASSET_PREFIX": (0, import_shared.removeTailSlash)(assetPrefix)
|
|
37
|
+
};
|
|
38
|
+
const globalVars = (0, import_shared.mergeChainedOptions)(
|
|
39
|
+
builtinVars,
|
|
40
|
+
config.source.globalVars,
|
|
41
|
+
{ env, target }
|
|
42
|
+
);
|
|
43
|
+
const serializedVars = (0, import_lodash.mapValues)(
|
|
44
|
+
globalVars,
|
|
45
|
+
(value) => {
|
|
46
|
+
var _a;
|
|
47
|
+
return (_a = JSON.stringify(value)) != null ? _a : "undefined";
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
const defineExprs = config.source.define;
|
|
51
|
+
chain.plugin(CHAIN_ID.PLUGIN.DEFINE).use(bundler.DefinePlugin, [{ ...serializedVars, ...defineExprs }]);
|
|
52
|
+
}
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
57
|
+
0 && (module.exports = {
|
|
58
|
+
pluginDefine
|
|
59
|
+
});
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var devtool_exports = {};
|
|
20
|
+
__export(devtool_exports, {
|
|
21
|
+
pluginDevtool: () => pluginDevtool
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(devtool_exports);
|
|
24
|
+
var import_shared = require("@rsbuild/shared");
|
|
25
|
+
const pluginDevtool = () => ({
|
|
26
|
+
name: "plugin-devtool",
|
|
27
|
+
setup(api) {
|
|
28
|
+
api.modifyBundlerChain((chain, { isProd, isServer }) => {
|
|
29
|
+
const config = api.getNormalizedConfig();
|
|
30
|
+
if (!(0, import_shared.isUseJsSourceMap)(config)) {
|
|
31
|
+
chain.devtool(false);
|
|
32
|
+
} else {
|
|
33
|
+
const prodDevTool = isServer ? "source-map" : "hidden-source-map";
|
|
34
|
+
const devtool = isProd ? (
|
|
35
|
+
// hide the source map URL in production to avoid Chrome warning
|
|
36
|
+
prodDevTool
|
|
37
|
+
) : "cheap-module-source-map";
|
|
38
|
+
chain.devtool(devtool);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
44
|
+
0 && (module.exports = {
|
|
45
|
+
pluginDevtool
|
|
46
|
+
});
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var entry_exports = {};
|
|
20
|
+
__export(entry_exports, {
|
|
21
|
+
pluginEntry: () => pluginEntry
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(entry_exports);
|
|
24
|
+
var import_shared = require("@rsbuild/shared");
|
|
25
|
+
const pluginEntry = () => ({
|
|
26
|
+
name: "plugin-entry",
|
|
27
|
+
setup(api) {
|
|
28
|
+
api.modifyBundlerChain(async (chain) => {
|
|
29
|
+
const { entry } = api.context;
|
|
30
|
+
const { preEntry } = api.getNormalizedConfig().source;
|
|
31
|
+
Object.keys(entry).forEach((entryName) => {
|
|
32
|
+
const appendEntry = (file) => chain.entry(entryName).add(file);
|
|
33
|
+
preEntry.forEach(appendEntry);
|
|
34
|
+
(0, import_shared.castArray)(entry[entryName]).forEach(appendEntry);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
40
|
+
0 && (module.exports = {
|
|
41
|
+
pluginEntry
|
|
42
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var externals_exports = {};
|
|
20
|
+
__export(externals_exports, {
|
|
21
|
+
pluginExternals: () => pluginExternals
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(externals_exports);
|
|
24
|
+
function pluginExternals() {
|
|
25
|
+
return {
|
|
26
|
+
name: "plugin-externals",
|
|
27
|
+
setup(api) {
|
|
28
|
+
api.modifyBundlerChain((chain) => {
|
|
29
|
+
const { externals } = api.getNormalizedConfig().output;
|
|
30
|
+
if (externals) {
|
|
31
|
+
chain.externals(externals);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
api.onBeforeCreateCompiler(({ bundlerConfigs }) => {
|
|
35
|
+
bundlerConfigs.forEach((config) => {
|
|
36
|
+
const isWebWorker = Array.isArray(config.target) ? config.target.includes("webworker") : config.target === "webworker";
|
|
37
|
+
if (isWebWorker && config.externals) {
|
|
38
|
+
delete config.externals;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
46
|
+
0 && (module.exports = {
|
|
47
|
+
pluginExternals
|
|
48
|
+
});
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var fileSize_exports = {};
|
|
30
|
+
__export(fileSize_exports, {
|
|
31
|
+
filterAsset: () => filterAsset,
|
|
32
|
+
pluginFileSize: () => pluginFileSize
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(fileSize_exports);
|
|
35
|
+
var import_path = __toESM(require("path"));
|
|
36
|
+
var import_chalk = require("@rsbuild/shared/chalk");
|
|
37
|
+
var import_fs_extra = require("@rsbuild/shared/fs-extra");
|
|
38
|
+
var import_shared = require("@rsbuild/shared");
|
|
39
|
+
var import_filesize = __toESM(require("filesize"));
|
|
40
|
+
var import_gzip_size = __toESM(require("gzip-size"));
|
|
41
|
+
const filterAsset = (asset) => !/\.map$/.test(asset) && !/\.LICENSE\.txt$/.test(asset);
|
|
42
|
+
const getAssetColor = (size) => {
|
|
43
|
+
if (size > 300 * 1e3) {
|
|
44
|
+
return import_chalk.chalk.bold.red;
|
|
45
|
+
}
|
|
46
|
+
if (size > 100 * 1e3) {
|
|
47
|
+
return import_chalk.chalk.yellow;
|
|
48
|
+
}
|
|
49
|
+
return import_chalk.chalk.green;
|
|
50
|
+
};
|
|
51
|
+
async function printHeader(longestFileLength, longestLabelLength) {
|
|
52
|
+
const longestLengths = [longestFileLength, longestLabelLength];
|
|
53
|
+
const headerRow = ["File", "Size", "Gzipped"].reduce((prev, cur, index) => {
|
|
54
|
+
const length = longestLengths[index];
|
|
55
|
+
let curLabel = cur;
|
|
56
|
+
if (length) {
|
|
57
|
+
curLabel = cur.length < length ? cur + " ".repeat(length - cur.length) : cur;
|
|
58
|
+
}
|
|
59
|
+
return `${prev + curLabel} `;
|
|
60
|
+
}, " ");
|
|
61
|
+
import_shared.logger.log(import_chalk.chalk.bold.blue(headerRow));
|
|
62
|
+
}
|
|
63
|
+
async function printFileSizes(stats, distPath) {
|
|
64
|
+
const formatAsset = (asset) => {
|
|
65
|
+
const contents = import_fs_extra.fs.readFileSync(import_path.default.join(distPath, asset.name));
|
|
66
|
+
const size = contents.length;
|
|
67
|
+
const gzippedSize = import_gzip_size.default.sync(contents);
|
|
68
|
+
return {
|
|
69
|
+
size,
|
|
70
|
+
folder: import_path.default.join(import_path.default.basename(distPath), import_path.default.dirname(asset.name)),
|
|
71
|
+
name: import_path.default.basename(asset.name),
|
|
72
|
+
gzippedSize,
|
|
73
|
+
sizeLabel: (0, import_filesize.default)(size, { round: 1 }),
|
|
74
|
+
gzipSizeLabel: getAssetColor(gzippedSize)(
|
|
75
|
+
(0, import_filesize.default)(gzippedSize, { round: 1 })
|
|
76
|
+
)
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
const multiStats = "stats" in stats ? stats.stats : [stats];
|
|
80
|
+
const assets = multiStats.map((stats2) => {
|
|
81
|
+
const origin = stats2.toJson({
|
|
82
|
+
all: false,
|
|
83
|
+
assets: true,
|
|
84
|
+
cachedAssets: true,
|
|
85
|
+
groupAssetsByInfo: false,
|
|
86
|
+
groupAssetsByPath: false,
|
|
87
|
+
groupAssetsByChunk: false,
|
|
88
|
+
groupAssetsByExtension: false,
|
|
89
|
+
groupAssetsByEmitStatus: false
|
|
90
|
+
});
|
|
91
|
+
const filteredAssets = origin.assets.filter(
|
|
92
|
+
(asset) => filterAsset(asset.name)
|
|
93
|
+
);
|
|
94
|
+
return filteredAssets.map(formatAsset);
|
|
95
|
+
}).reduce((single, all) => all.concat(single), []);
|
|
96
|
+
if (assets.length === 0) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
assets.sort((a, b) => b.size - a.size);
|
|
100
|
+
const longestLabelLength = Math.max(...assets.map((a) => a.sizeLabel.length));
|
|
101
|
+
const longestFileLength = Math.max(
|
|
102
|
+
...assets.map((a) => (a.folder + import_path.default.sep + a.name).length)
|
|
103
|
+
);
|
|
104
|
+
import_shared.logger.info(`Production file sizes:
|
|
105
|
+
`);
|
|
106
|
+
printHeader(longestFileLength, longestLabelLength);
|
|
107
|
+
let totalSize = 0;
|
|
108
|
+
let totalGzipSize = 0;
|
|
109
|
+
assets.forEach((asset) => {
|
|
110
|
+
let { sizeLabel } = asset;
|
|
111
|
+
const { name, folder, gzipSizeLabel } = asset;
|
|
112
|
+
const fileNameLength = (folder + import_path.default.sep + name).length;
|
|
113
|
+
const sizeLength = sizeLabel.length;
|
|
114
|
+
totalSize += asset.size;
|
|
115
|
+
totalGzipSize += asset.gzippedSize;
|
|
116
|
+
if (sizeLength < longestLabelLength) {
|
|
117
|
+
const rightPadding = " ".repeat(longestLabelLength - sizeLength);
|
|
118
|
+
sizeLabel += rightPadding;
|
|
119
|
+
}
|
|
120
|
+
let fileNameLabel = import_chalk.chalk.dim(asset.folder + import_path.default.sep) + import_chalk.chalk.cyan(asset.name);
|
|
121
|
+
if (fileNameLength < longestFileLength) {
|
|
122
|
+
const rightPadding = " ".repeat(longestFileLength - fileNameLength);
|
|
123
|
+
fileNameLabel += rightPadding;
|
|
124
|
+
}
|
|
125
|
+
import_shared.logger.log(` ${fileNameLabel} ${sizeLabel} ${gzipSizeLabel}`);
|
|
126
|
+
});
|
|
127
|
+
const totalSizeLabel = `${import_chalk.chalk.bold.blue("Total size:")} ${(0, import_filesize.default)(
|
|
128
|
+
totalSize,
|
|
129
|
+
{ round: 1 }
|
|
130
|
+
)}`;
|
|
131
|
+
const gzippedSizeLabel = `${import_chalk.chalk.bold.blue("Gzipped size:")} ${(0, import_filesize.default)(
|
|
132
|
+
totalGzipSize,
|
|
133
|
+
{ round: 1 }
|
|
134
|
+
)}`;
|
|
135
|
+
import_shared.logger.log(`
|
|
136
|
+
${totalSizeLabel}
|
|
137
|
+
${gzippedSizeLabel}
|
|
138
|
+
`);
|
|
139
|
+
}
|
|
140
|
+
const pluginFileSize = () => ({
|
|
141
|
+
name: "plugin-file-size",
|
|
142
|
+
setup(api) {
|
|
143
|
+
api.onAfterBuild(async ({ stats }) => {
|
|
144
|
+
const config = api.getNormalizedConfig();
|
|
145
|
+
if (config.performance.printFileSize && stats) {
|
|
146
|
+
try {
|
|
147
|
+
await printFileSizes(stats, api.context.distPath);
|
|
148
|
+
} catch (err) {
|
|
149
|
+
import_shared.logger.error("Failed to print file size.");
|
|
150
|
+
import_shared.logger.error(err);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
157
|
+
0 && (module.exports = {
|
|
158
|
+
filterAsset,
|
|
159
|
+
pluginFileSize
|
|
160
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { HtmlConfig, DefaultRsbuildPlugin, SharedRsbuildPluginAPI, NormalizedOutputConfig } from '@rsbuild/shared';
|
|
2
|
+
export declare function getMetaTags(entryName: string, config: {
|
|
3
|
+
html: HtmlConfig;
|
|
4
|
+
output: NormalizedOutputConfig;
|
|
5
|
+
}): Promise<import("html-webpack-plugin").HtmlTagObject[]>;
|
|
6
|
+
export declare const applyInjectTags: (api: SharedRsbuildPluginAPI) => void;
|
|
7
|
+
export declare const pluginHtml: () => DefaultRsbuildPlugin;
|