@rsbuild/core 0.7.0-beta.3 → 0.7.0-beta.5

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.
Files changed (181) hide show
  1. package/bin/rsbuild.js +4 -3
  2. package/compiled/css-loader/index.js +20 -20
  3. package/compiled/less-loader/index.js +8 -8
  4. package/compiled/postcss-loader/index.js +11 -11
  5. package/compiled/rspack-manifest-plugin/index.js +4 -4
  6. package/dist/{rspack/ignoreCssLoader.js → ignoreCssLoader.cjs} +2 -0
  7. package/dist/index.cjs +7195 -0
  8. package/dist/index.js +7428 -40
  9. package/dist/{rspack/transformLoader.js → transformLoader.cjs} +2 -0
  10. package/dist/{rspack/transformRawLoader.js → transformRawLoader.cjs} +37 -13
  11. package/{dist → dist-types}/constants.d.ts +3 -0
  12. package/dist-types/helpers.d.ts +32 -0
  13. package/{dist → dist-types}/index.d.ts +6 -0
  14. package/{dist → dist-types}/internal.d.ts +5 -3
  15. package/dist-types/package.json +1 -0
  16. package/{dist → dist-types}/plugins/html.d.ts +2 -1
  17. package/{dist → dist-types}/plugins/index.d.ts +1 -0
  18. package/dist-types/plugins/minimize.d.ts +12 -0
  19. package/{dist/provider → dist-types}/plugins/progress.d.ts +1 -1
  20. package/{dist/provider → dist-types}/plugins/resolve.d.ts +1 -1
  21. package/{dist/provider → dist-types}/plugins/rspackProfile.d.ts +1 -1
  22. package/{dist/provider → dist-types}/plugins/swc.d.ts +1 -1
  23. package/dist-types/server/devMiddleware.d.ts +18 -0
  24. package/{dist → dist-types}/server/helper.d.ts +11 -0
  25. package/package.json +14 -16
  26. package/dist/cli/commands.js +0 -110
  27. package/dist/cli/init.js +0 -101
  28. package/dist/cli/prepare.js +0 -43
  29. package/dist/client/format.js +0 -72
  30. package/dist/config.js +0 -306
  31. package/dist/constants.js +0 -40
  32. package/dist/createContext.js +0 -116
  33. package/dist/createRsbuild.js +0 -103
  34. package/dist/initHooks.js +0 -82
  35. package/dist/initPlugins.js +0 -152
  36. package/dist/internal.js +0 -79
  37. package/dist/loadEnv.js +0 -93
  38. package/dist/mergeConfig.js +0 -80
  39. package/dist/pluginHelper.js +0 -66
  40. package/dist/pluginManager.js +0 -180
  41. package/dist/plugins/asset.js +0 -101
  42. package/dist/plugins/basic.js +0 -77
  43. package/dist/plugins/bundleAnalyzer.js +0 -69
  44. package/dist/plugins/cache.js +0 -116
  45. package/dist/plugins/cleanOutput.js +0 -68
  46. package/dist/plugins/css.js +0 -257
  47. package/dist/plugins/define.js +0 -45
  48. package/dist/plugins/entry.js +0 -76
  49. package/dist/plugins/externals.js +0 -48
  50. package/dist/plugins/fileSize.js +0 -199
  51. package/dist/plugins/html.js +0 -327
  52. package/dist/plugins/index.js +0 -66
  53. package/dist/plugins/inlineChunk.js +0 -69
  54. package/dist/plugins/less.js +0 -107
  55. package/dist/plugins/manifest.js +0 -142
  56. package/dist/plugins/moduleFederation.js +0 -125
  57. package/dist/plugins/moment.js +0 -43
  58. package/dist/plugins/nodeAddons.js +0 -74
  59. package/dist/plugins/output.js +0 -63
  60. package/dist/plugins/performance.js +0 -56
  61. package/dist/plugins/resourceHints.js +0 -86
  62. package/dist/plugins/rsdoctor.js +0 -81
  63. package/dist/plugins/sass.js +0 -154
  64. package/dist/plugins/server.js +0 -59
  65. package/dist/plugins/splitChunks.js +0 -236
  66. package/dist/plugins/startUrl.js +0 -146
  67. package/dist/plugins/target.js +0 -54
  68. package/dist/plugins/wasm.js +0 -51
  69. package/dist/provider/build.js +0 -84
  70. package/dist/provider/createCompiler.js +0 -143
  71. package/dist/provider/initConfigs.js +0 -92
  72. package/dist/provider/inspectConfig.js +0 -85
  73. package/dist/provider/plugins/minimize.d.ts +0 -2
  74. package/dist/provider/plugins/minimize.js +0 -49
  75. package/dist/provider/plugins/progress.js +0 -49
  76. package/dist/provider/plugins/resolve.js +0 -42
  77. package/dist/provider/plugins/rspackProfile.js +0 -112
  78. package/dist/provider/plugins/swc.js +0 -152
  79. package/dist/provider/plugins/transition.d.ts +0 -5
  80. package/dist/provider/plugins/transition.js +0 -35
  81. package/dist/provider/provider.js +0 -158
  82. package/dist/provider/rspackConfig.js +0 -144
  83. package/dist/provider/shared.d.ts +0 -16
  84. package/dist/provider/shared.js +0 -215
  85. package/dist/rspack/HtmlAppIconPlugin.js +0 -98
  86. package/dist/rspack/HtmlBasicPlugin.js +0 -229
  87. package/dist/rspack/InlineChunkHtmlPlugin.js +0 -196
  88. package/dist/rspack/preload/HtmlPreloadOrPrefetchPlugin.js +0 -173
  89. package/dist/rspack/preload/helpers/determineAsValue.js +0 -83
  90. package/dist/rspack/preload/helpers/doesChunkBelongToHtml.js +0 -77
  91. package/dist/rspack/preload/helpers/extractChunks.js +0 -83
  92. package/dist/rspack/preload/helpers/index.js +0 -28
  93. package/dist/rspack/preload/helpers/type.js +0 -16
  94. package/dist/server/compilerDevMiddleware.js +0 -129
  95. package/dist/server/devMiddleware.d.ts +0 -3
  96. package/dist/server/devMiddleware.js +0 -74
  97. package/dist/server/devServer.js +0 -195
  98. package/dist/server/getDevMiddlewares.js +0 -177
  99. package/dist/server/helper.js +0 -237
  100. package/dist/server/httpServer.js +0 -45
  101. package/dist/server/index.js +0 -31
  102. package/dist/server/middlewares.js +0 -162
  103. package/dist/server/prodServer.js +0 -196
  104. package/dist/server/proxy.js +0 -93
  105. package/dist/server/restart.js +0 -66
  106. package/dist/server/socketServer.js +0 -178
  107. package/dist/server/watchFiles.js +0 -90
  108. package/dist/types.js +0 -16
  109. /package/dist/client/{hmr.mjs → hmr.js} +0 -0
  110. /package/dist/client/{overlay.mjs → overlay.js} +0 -0
  111. /package/{dist → dist-types}/cli/commands.d.ts +0 -0
  112. /package/{dist → dist-types}/cli/init.d.ts +0 -0
  113. /package/{dist → dist-types}/cli/prepare.d.ts +0 -0
  114. /package/{dist → dist-types}/client/format.d.ts +0 -0
  115. /package/{dist → dist-types}/client/hmr.d.ts +0 -0
  116. /package/{dist → dist-types}/client/overlay.d.ts +0 -0
  117. /package/{dist → dist-types}/config.d.ts +0 -0
  118. /package/{dist → dist-types}/createContext.d.ts +0 -0
  119. /package/{dist → dist-types}/createRsbuild.d.ts +0 -0
  120. /package/{dist → dist-types}/initHooks.d.ts +0 -0
  121. /package/{dist → dist-types}/initPlugins.d.ts +0 -0
  122. /package/{dist → dist-types}/loadEnv.d.ts +0 -0
  123. /package/{dist/rspack → dist-types/loader}/ignoreCssLoader.d.ts +0 -0
  124. /package/{dist/rspack → dist-types/loader}/transformLoader.d.ts +0 -0
  125. /package/{dist/rspack → dist-types/loader}/transformRawLoader.d.ts +0 -0
  126. /package/{dist → dist-types}/mergeConfig.d.ts +0 -0
  127. /package/{dist → dist-types}/pluginHelper.d.ts +0 -0
  128. /package/{dist → dist-types}/pluginManager.d.ts +0 -0
  129. /package/{dist → dist-types}/plugins/asset.d.ts +0 -0
  130. /package/{dist → dist-types}/plugins/basic.d.ts +0 -0
  131. /package/{dist → dist-types}/plugins/bundleAnalyzer.d.ts +0 -0
  132. /package/{dist → dist-types}/plugins/cache.d.ts +0 -0
  133. /package/{dist → dist-types}/plugins/cleanOutput.d.ts +0 -0
  134. /package/{dist → dist-types}/plugins/css.d.ts +0 -0
  135. /package/{dist → dist-types}/plugins/define.d.ts +0 -0
  136. /package/{dist → dist-types}/plugins/entry.d.ts +0 -0
  137. /package/{dist → dist-types}/plugins/externals.d.ts +0 -0
  138. /package/{dist → dist-types}/plugins/fileSize.d.ts +0 -0
  139. /package/{dist → dist-types}/plugins/inlineChunk.d.ts +0 -0
  140. /package/{dist → dist-types}/plugins/less.d.ts +0 -0
  141. /package/{dist → dist-types}/plugins/manifest.d.ts +0 -0
  142. /package/{dist → dist-types}/plugins/moduleFederation.d.ts +0 -0
  143. /package/{dist → dist-types}/plugins/moment.d.ts +0 -0
  144. /package/{dist → dist-types}/plugins/nodeAddons.d.ts +0 -0
  145. /package/{dist → dist-types}/plugins/output.d.ts +0 -0
  146. /package/{dist → dist-types}/plugins/performance.d.ts +0 -0
  147. /package/{dist → dist-types}/plugins/resourceHints.d.ts +0 -0
  148. /package/{dist → dist-types}/plugins/rsdoctor.d.ts +0 -0
  149. /package/{dist → dist-types}/plugins/sass.d.ts +0 -0
  150. /package/{dist → dist-types}/plugins/server.d.ts +0 -0
  151. /package/{dist → dist-types}/plugins/splitChunks.d.ts +0 -0
  152. /package/{dist → dist-types}/plugins/startUrl.d.ts +0 -0
  153. /package/{dist → dist-types}/plugins/target.d.ts +0 -0
  154. /package/{dist → dist-types}/plugins/wasm.d.ts +0 -0
  155. /package/{dist → dist-types}/provider/build.d.ts +0 -0
  156. /package/{dist → dist-types}/provider/createCompiler.d.ts +0 -0
  157. /package/{dist → dist-types}/provider/initConfigs.d.ts +0 -0
  158. /package/{dist → dist-types}/provider/inspectConfig.d.ts +0 -0
  159. /package/{dist → dist-types}/provider/provider.d.ts +0 -0
  160. /package/{dist → dist-types}/provider/rspackConfig.d.ts +0 -0
  161. /package/{dist → dist-types}/rspack/HtmlAppIconPlugin.d.ts +0 -0
  162. /package/{dist → dist-types}/rspack/HtmlBasicPlugin.d.ts +0 -0
  163. /package/{dist → dist-types}/rspack/InlineChunkHtmlPlugin.d.ts +0 -0
  164. /package/{dist → dist-types}/rspack/preload/HtmlPreloadOrPrefetchPlugin.d.ts +0 -0
  165. /package/{dist → dist-types}/rspack/preload/helpers/determineAsValue.d.ts +0 -0
  166. /package/{dist → dist-types}/rspack/preload/helpers/doesChunkBelongToHtml.d.ts +0 -0
  167. /package/{dist → dist-types}/rspack/preload/helpers/extractChunks.d.ts +0 -0
  168. /package/{dist → dist-types}/rspack/preload/helpers/index.d.ts +0 -0
  169. /package/{dist → dist-types}/rspack/preload/helpers/type.d.ts +0 -0
  170. /package/{dist → dist-types}/server/compilerDevMiddleware.d.ts +0 -0
  171. /package/{dist → dist-types}/server/devServer.d.ts +0 -0
  172. /package/{dist → dist-types}/server/getDevMiddlewares.d.ts +0 -0
  173. /package/{dist → dist-types}/server/httpServer.d.ts +0 -0
  174. /package/{dist → dist-types}/server/index.d.ts +0 -0
  175. /package/{dist → dist-types}/server/middlewares.d.ts +0 -0
  176. /package/{dist → dist-types}/server/prodServer.d.ts +0 -0
  177. /package/{dist → dist-types}/server/proxy.d.ts +0 -0
  178. /package/{dist → dist-types}/server/restart.d.ts +0 -0
  179. /package/{dist → dist-types}/server/socketServer.d.ts +0 -0
  180. /package/{dist → dist-types}/server/watchFiles.d.ts +0 -0
  181. /package/{dist → dist-types}/types.d.ts +0 -0
@@ -1,101 +0,0 @@
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 asset_exports = {};
30
- __export(asset_exports, {
31
- getRegExpForExts: () => getRegExpForExts,
32
- pluginAsset: () => pluginAsset
33
- });
34
- module.exports = __toCommonJS(asset_exports);
35
- var import_node_path = __toESM(require("node:path"));
36
- var import_shared = require("@rsbuild/shared");
37
- const chainStaticAssetRule = ({
38
- emit,
39
- rule,
40
- maxSize,
41
- filename,
42
- assetType
43
- }) => {
44
- const generatorOptions = {
45
- filename
46
- };
47
- if (emit === false) {
48
- generatorOptions.emit = false;
49
- }
50
- rule.oneOf(`${assetType}-asset-url`).type("asset/resource").resourceQuery(/(__inline=false|url)/).set("generator", generatorOptions);
51
- rule.oneOf(`${assetType}-asset-inline`).type("asset/inline").resourceQuery(/inline/);
52
- rule.oneOf(`${assetType}-asset`).type("asset").parser({
53
- dataUrlCondition: {
54
- maxSize
55
- }
56
- }).set("generator", generatorOptions);
57
- };
58
- function getRegExpForExts(exts) {
59
- const matcher = exts.map((ext) => ext.trim()).map((ext) => ext.startsWith(".") ? ext.slice(1) : ext).join("|");
60
- return new RegExp(
61
- exts.length === 1 ? `\\.${matcher}$` : `\\.(?:${matcher})$`,
62
- "i"
63
- );
64
- }
65
- const pluginAsset = () => ({
66
- name: "rsbuild:asset",
67
- setup(api) {
68
- api.modifyBundlerChain((chain, { isProd, target }) => {
69
- const config = api.getNormalizedConfig();
70
- const createAssetRule = (assetType, exts, emit2) => {
71
- const regExp = getRegExpForExts(exts);
72
- const distDir = (0, import_shared.getDistPath)(config, assetType);
73
- const filename = (0, import_shared.getFilename)(config, assetType, isProd);
74
- const { dataUriLimit } = config.output;
75
- const maxSize = typeof dataUriLimit === "number" ? dataUriLimit : dataUriLimit[assetType];
76
- const rule = chain.module.rule(assetType).test(regExp);
77
- chainStaticAssetRule({
78
- emit: emit2,
79
- rule,
80
- maxSize,
81
- filename: import_node_path.default.posix.join(distDir, filename),
82
- assetType
83
- });
84
- };
85
- const emit = config.output.emitAssets({ target });
86
- createAssetRule("image", import_shared.IMAGE_EXTENSIONS, emit);
87
- createAssetRule("svg", ["svg"], emit);
88
- createAssetRule(
89
- "media",
90
- [...import_shared.VIDEO_EXTENSIONS, ...import_shared.AUDIO_EXTENSIONS],
91
- emit
92
- );
93
- createAssetRule("font", import_shared.FONT_EXTENSIONS, emit);
94
- });
95
- }
96
- });
97
- // Annotate the CommonJS export names for ESM import in node:
98
- 0 && (module.exports = {
99
- getRegExpForExts,
100
- pluginAsset
101
- });
@@ -1,77 +0,0 @@
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 basic_exports = {};
30
- __export(basic_exports, {
31
- pluginBasic: () => pluginBasic
32
- });
33
- module.exports = __toCommonJS(basic_exports);
34
- var import_node_path = __toESM(require("node:path"));
35
- var import_shared = require("@rsbuild/shared");
36
- const pluginBasic = () => ({
37
- name: "rsbuild:basic",
38
- setup(api) {
39
- api.modifyBundlerChain(
40
- (chain, { env, isProd, target, bundler, CHAIN_ID }) => {
41
- const config = api.getNormalizedConfig();
42
- chain.name(import_shared.TARGET_ID_MAP[target]);
43
- chain.devtool((0, import_shared.getJsSourceMap)(config));
44
- chain.context(api.context.rootPath);
45
- chain.mode(isProd ? "production" : "development");
46
- chain.merge({
47
- infrastructureLogging: {
48
- // Using `error` level to avoid `cache.PackFileCacheStrategy` logs
49
- level: "error"
50
- }
51
- });
52
- chain.ignoreWarnings([/Conflicting order/]);
53
- chain.performance.hints(false);
54
- chain.module.parser.merge({
55
- javascript: {
56
- exportsPresence: "error"
57
- }
58
- });
59
- const isMinimize = isProd && config.output.minify !== false;
60
- chain.optimization.minimize(isMinimize);
61
- const usingHMR = (0, import_shared.isUsingHMR)(config, { target, isProd });
62
- if (usingHMR) {
63
- chain.plugin(CHAIN_ID.PLUGIN.HMR).use(bundler.HotModuleReplacementPlugin);
64
- }
65
- if (env === "development") {
66
- chain.output.devtoolModuleFilenameTemplate(
67
- (info) => import_node_path.default.resolve(info.absoluteResourcePath).replace(/\\/g, "/")
68
- );
69
- }
70
- }
71
- );
72
- }
73
- });
74
- // Annotate the CommonJS export names for ESM import in node:
75
- 0 && (module.exports = {
76
- pluginBasic
77
- });
@@ -1,69 +0,0 @@
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 bundleAnalyzer_exports = {};
30
- __export(bundleAnalyzer_exports, {
31
- pluginBundleAnalyzer: () => pluginBundleAnalyzer
32
- });
33
- module.exports = __toCommonJS(bundleAnalyzer_exports);
34
- var import_shared = require("@rsbuild/shared");
35
- const isUseAnalyzer = (config) => process.env.BUNDLE_ANALYZE || config.performance?.bundleAnalyze;
36
- function pluginBundleAnalyzer() {
37
- return {
38
- name: "rsbuild:bundle-analyzer",
39
- setup(api) {
40
- api.modifyRsbuildConfig((config) => {
41
- if ((0, import_shared.isProd)() || !isUseAnalyzer(config)) {
42
- return;
43
- }
44
- config.dev || (config.dev = {});
45
- config.dev.writeToDisk = true;
46
- return config;
47
- });
48
- api.modifyBundlerChain(async (chain, { CHAIN_ID, target }) => {
49
- const config = api.getNormalizedConfig();
50
- if (!isUseAnalyzer(config)) {
51
- return;
52
- }
53
- const { default: BundleAnalyzer } = await Promise.resolve().then(() => __toESM(require("@rsbuild/shared/webpack-bundle-analyzer")));
54
- chain.plugin(CHAIN_ID.PLUGIN.BUNDLE_ANALYZER).use(BundleAnalyzer.BundleAnalyzerPlugin, [
55
- {
56
- analyzerMode: "static",
57
- openAnalyzer: false,
58
- reportFilename: `report-${target}.html`,
59
- ...config.performance.bundleAnalyze || {}
60
- }
61
- ]);
62
- });
63
- }
64
- };
65
- }
66
- // Annotate the CommonJS export names for ESM import in node:
67
- 0 && (module.exports = {
68
- pluginBundleAnalyzer
69
- });
@@ -1,116 +0,0 @@
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_node_crypto = __toESM(require("node:crypto"));
35
- var import_node_path = require("node:path");
36
- var import_shared = require("@rsbuild/shared");
37
- var import_shared2 = require("@rsbuild/shared");
38
- async function validateCache(cacheDirectory, buildDependencies) {
39
- const configFile = (0, import_node_path.join)(cacheDirectory, "buildDependencies.json");
40
- if (await (0, import_shared2.isFileExists)(configFile)) {
41
- const prevBuildDependencies = await import_shared.fse.readJSON(configFile);
42
- if (JSON.stringify(prevBuildDependencies) === JSON.stringify(buildDependencies)) {
43
- return;
44
- }
45
- await import_shared.fse.remove(cacheDirectory);
46
- }
47
- await import_shared.fse.outputJSON(configFile, buildDependencies);
48
- }
49
- function getDigestHash(digest) {
50
- const fsHash = import_node_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_node_path.isAbsolute)(cacheDirectory) ? cacheDirectory : (0, import_node_path.join)(context.rootPath, cacheDirectory);
57
- }
58
- return (0, import_node_path.join)(context.cachePath, context.bundlerType);
59
- }
60
- async function getBuildDependencies(context, config) {
61
- const rootPackageJson = (0, import_node_path.join)(context.rootPath, "package.json");
62
- const browserslistConfig = (0, import_node_path.join)(context.rootPath, ".browserslistrc");
63
- const buildDependencies = {};
64
- if (await (0, import_shared2.isFileExists)(rootPackageJson)) {
65
- buildDependencies.packageJson = [rootPackageJson];
66
- }
67
- if (context.tsconfigPath) {
68
- buildDependencies.tsconfig = [context.tsconfigPath];
69
- }
70
- if (config._privateMeta?.configFilePath) {
71
- buildDependencies.rsbuildConfig = [config._privateMeta.configFilePath];
72
- }
73
- if (await (0, import_shared2.isFileExists)(browserslistConfig)) {
74
- buildDependencies.browserslistrc = [browserslistConfig];
75
- }
76
- const tailwindExts = ["ts", "js", "cjs", "mjs"];
77
- const configs = tailwindExts.map(
78
- (ext) => (0, import_node_path.join)(context.rootPath, `tailwind.config.${ext}`)
79
- );
80
- const tailwindConfig = (0, import_shared2.findExists)(configs);
81
- if (tailwindConfig) {
82
- buildDependencies.tailwindcss = [tailwindConfig];
83
- }
84
- return buildDependencies;
85
- }
86
- const pluginCache = () => ({
87
- name: "rsbuild:cache",
88
- setup(api) {
89
- api.modifyBundlerChain(async (chain, { target, env }) => {
90
- const config = api.getNormalizedConfig();
91
- const { buildCache } = config.performance;
92
- if (buildCache === false) {
93
- chain.cache(false);
94
- return;
95
- }
96
- const { context } = api;
97
- const cacheConfig = typeof buildCache === "boolean" ? {} : buildCache;
98
- const cacheDirectory = getCacheDirectory(cacheConfig, context);
99
- const buildDependencies = await getBuildDependencies(context, config);
100
- await validateCache(cacheDirectory, buildDependencies);
101
- const useDigest = Array.isArray(cacheConfig.cacheDigest) && cacheConfig.cacheDigest.length;
102
- chain.cache({
103
- // The default cache name of webpack is '${name}-${env}', and the `name` is `default` by default.
104
- // We set cache name to avoid cache conflicts of different targets.
105
- name: useDigest ? `${target}-${env}-${getDigestHash(cacheConfig.cacheDigest)}` : `${target}-${env}`,
106
- type: "filesystem",
107
- cacheDirectory,
108
- buildDependencies
109
- });
110
- });
111
- }
112
- });
113
- // Annotate the CommonJS export names for ESM import in node:
114
- 0 && (module.exports = {
115
- pluginCache
116
- });
@@ -1,68 +0,0 @@
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_node_path = require("node:path");
25
- var import_shared = require("@rsbuild/shared");
26
- const emptyDir = async (dir) => {
27
- if (await import_shared.fse.pathExists(dir)) {
28
- await import_shared.fse.emptyDir(dir);
29
- }
30
- };
31
- const addTrailingSep = (dir) => dir.endsWith(import_node_path.sep) ? dir : dir + import_node_path.sep;
32
- const isStrictSubdir = (parent, child) => {
33
- const parentDir = addTrailingSep(parent);
34
- const childDir = addTrailingSep(child);
35
- return parentDir !== childDir && childDir.startsWith(parentDir);
36
- };
37
- const pluginCleanOutput = () => ({
38
- name: "rsbuild:clean-output",
39
- setup(api) {
40
- const clean = async () => {
41
- const { distPath, rootPath } = api.context;
42
- const config = api.getNormalizedConfig();
43
- let { cleanDistPath } = config.output;
44
- if (cleanDistPath === void 0) {
45
- cleanDistPath = isStrictSubdir(rootPath, distPath);
46
- if (!cleanDistPath) {
47
- import_shared.logger.warn(
48
- "The dist path is not a subdir of root path, Rsbuild will not empty it."
49
- );
50
- import_shared.logger.warn(
51
- `Please set ${import_shared.color.yellow("`output.cleanDistPath`")} config manually.`
52
- );
53
- import_shared.logger.warn(`Current root path: ${import_shared.color.dim(rootPath)}`);
54
- import_shared.logger.warn(`Current dist path: ${import_shared.color.dim(distPath)}`);
55
- }
56
- }
57
- if (cleanDistPath) {
58
- await emptyDir(distPath);
59
- }
60
- };
61
- api.onBeforeBuild(clean);
62
- api.onBeforeStartDevServer(clean);
63
- }
64
- });
65
- // Annotate the CommonJS export names for ESM import in node:
66
- 0 && (module.exports = {
67
- pluginCleanOutput
68
- });
@@ -1,257 +0,0 @@
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 css_exports = {};
30
- __export(css_exports, {
31
- applyAutoprefixer: () => applyAutoprefixer,
32
- applyCSSRule: () => applyCSSRule,
33
- enableNativeCss: () => enableNativeCss,
34
- isUseCssExtract: () => isUseCssExtract,
35
- normalizeCssLoaderOptions: () => normalizeCssLoaderOptions,
36
- pluginCss: () => pluginCss
37
- });
38
- module.exports = __toCommonJS(css_exports);
39
- var import_node_path = __toESM(require("node:path"));
40
- var import_shared = require("@rsbuild/shared");
41
- var import_pluginHelper = require("../pluginHelper");
42
- var import_shared2 = require("../provider/shared");
43
- const enableNativeCss = (config) => !config.output.injectStyles;
44
- const isUseCssExtract = (config, target) => !config.output.injectStyles && target !== "node" && target !== "web-worker";
45
- const getCssModuleLocalIdentName = (config, isProd) => config.output.cssModules.localIdentName || // Using shorter classname in production to reduce bundle size
46
- (isProd ? "[local]-[hash:base64:6]" : "[path][name]__[local]-[hash:base64:6]");
47
- const normalizeCssLoaderOptions = (options, exportOnlyLocals) => {
48
- if (options.modules && exportOnlyLocals) {
49
- let { modules } = options;
50
- if (modules === true) {
51
- modules = { exportOnlyLocals: true };
52
- } else if (typeof modules === "string") {
53
- modules = { mode: modules, exportOnlyLocals: true };
54
- } else {
55
- modules = {
56
- ...modules,
57
- exportOnlyLocals: true
58
- };
59
- }
60
- return {
61
- ...options,
62
- modules
63
- };
64
- }
65
- return options;
66
- };
67
- const userPostcssrcCache = /* @__PURE__ */ new Map();
68
- async function loadUserPostcssrc(root) {
69
- const cached = userPostcssrcCache.get(root);
70
- if (cached) {
71
- return cached;
72
- }
73
- const { default: postcssrc } = await Promise.resolve().then(() => __toESM(require("../../compiled/postcss-load-config/index.js")));
74
- const promise = postcssrc({}, root).catch((err) => {
75
- if (err.message?.includes("No PostCSS Config found")) {
76
- return {};
77
- }
78
- throw err;
79
- });
80
- userPostcssrcCache.set(root, promise);
81
- promise.then((config) => {
82
- userPostcssrcCache.set(root, config);
83
- });
84
- return promise;
85
- }
86
- const applyAutoprefixer = async (plugins, browserslist, config) => {
87
- const pluginObjects = plugins.map(
88
- (plugin) => (0, import_shared.isFunction)(plugin) ? plugin({}) : plugin
89
- );
90
- const hasAutoprefixer = pluginObjects.some((pluginObject) => {
91
- if ((0, import_shared.isPlainObject)(pluginObject) && "postcssPlugin" in pluginObject) {
92
- return pluginObject.postcssPlugin === "autoprefixer";
93
- }
94
- return false;
95
- });
96
- if (!hasAutoprefixer) {
97
- const { default: autoprefixer } = await Promise.resolve().then(() => __toESM(require("@rsbuild/shared/autoprefixer")));
98
- const autoprefixerOptions = (0, import_shared.mergeChainedOptions)({
99
- defaults: {
100
- flexbox: "no-2009",
101
- overrideBrowserslist: browserslist
102
- },
103
- options: config.tools.autoprefixer
104
- });
105
- pluginObjects.push(autoprefixer(autoprefixerOptions));
106
- }
107
- return pluginObjects;
108
- };
109
- const getPostcssLoaderOptions = async ({
110
- browserslist,
111
- config,
112
- root
113
- }) => {
114
- const extraPlugins = [];
115
- const utils = {
116
- addPlugins(plugins) {
117
- if (Array.isArray(plugins)) {
118
- extraPlugins.push(...plugins);
119
- } else {
120
- extraPlugins.push(plugins);
121
- }
122
- }
123
- };
124
- const userPostcssConfig = await loadUserPostcssrc(root);
125
- let postcssPlugins = userPostcssConfig.plugins?.slice() || [];
126
- postcssPlugins = await applyAutoprefixer(
127
- postcssPlugins,
128
- browserslist,
129
- config
130
- );
131
- const defaultPostcssConfig = {
132
- postcssOptions: {
133
- ...userPostcssConfig,
134
- plugins: postcssPlugins
135
- },
136
- sourceMap: config.output.sourceMap.css
137
- };
138
- const mergedConfig = (0, import_shared.mergeChainedOptions)({
139
- defaults: defaultPostcssConfig,
140
- options: config.tools.postcss,
141
- utils
142
- });
143
- if (extraPlugins.length) {
144
- mergedConfig?.postcssOptions?.plugins.push(...extraPlugins);
145
- }
146
- mergedConfig.postcssOptions || (mergedConfig.postcssOptions = {});
147
- mergedConfig.postcssOptions.config = false;
148
- return mergedConfig;
149
- };
150
- const getCssLoaderOptions = ({
151
- config,
152
- importLoaders,
153
- target,
154
- localIdentName
155
- }) => {
156
- const { cssModules } = config.output;
157
- const defaultOptions = {
158
- importLoaders,
159
- modules: {
160
- auto: cssModules.auto,
161
- namedExport: false,
162
- exportLocalsConvention: cssModules.exportLocalsConvention,
163
- localIdentName
164
- },
165
- sourceMap: config.output.sourceMap.css
166
- };
167
- const mergedCssLoaderOptions = (0, import_shared.mergeChainedOptions)({
168
- defaults: defaultOptions,
169
- options: config.tools.cssLoader,
170
- mergeFn: import_shared.deepmerge
171
- });
172
- const cssLoaderOptions = normalizeCssLoaderOptions(
173
- mergedCssLoaderOptions,
174
- target !== "web"
175
- );
176
- return cssLoaderOptions;
177
- };
178
- async function applyCSSRule({
179
- rule,
180
- config,
181
- context,
182
- utils: { target, isProd, CHAIN_ID },
183
- importLoaders = 1
184
- }) {
185
- const browserslist = await (0, import_shared.getBrowserslistWithDefault)(
186
- context.rootPath,
187
- config,
188
- target
189
- );
190
- const enableExtractCSS = isUseCssExtract(config, target);
191
- const localIdentName = getCssModuleLocalIdentName(config, isProd);
192
- const cssLoaderOptions = getCssLoaderOptions({
193
- config,
194
- importLoaders,
195
- target,
196
- localIdentName
197
- });
198
- if (target === "web") {
199
- if (enableExtractCSS) {
200
- const extraCSSOptions = typeof config.tools.cssExtract === "object" ? config.tools.cssExtract : {
201
- loaderOptions: {},
202
- pluginOptions: {}
203
- };
204
- rule.use(CHAIN_ID.USE.MINI_CSS_EXTRACT).loader((0, import_pluginHelper.getCssExtractPlugin)().loader).options(extraCSSOptions.loaderOptions).end();
205
- } else {
206
- const styleLoaderOptions = (0, import_shared.mergeChainedOptions)({
207
- defaults: {},
208
- options: config.tools.styleLoader
209
- });
210
- rule.use(CHAIN_ID.USE.STYLE).loader((0, import_shared2.getCompiledPath)("style-loader")).options(styleLoaderOptions).end();
211
- }
212
- } else {
213
- rule.use(CHAIN_ID.USE.IGNORE_CSS).loader(import_node_path.default.resolve(__dirname, "../rspack/ignoreCssLoader")).end();
214
- }
215
- rule.use(CHAIN_ID.USE.CSS).loader((0, import_shared2.getCompiledPath)("css-loader")).options(cssLoaderOptions).end();
216
- if (target === "web") {
217
- const postcssLoaderOptions = await getPostcssLoaderOptions({
218
- browserslist,
219
- config,
220
- root: context.rootPath
221
- });
222
- rule.use(CHAIN_ID.USE.POSTCSS).loader((0, import_shared2.getCompiledPath)("postcss-loader")).options(postcssLoaderOptions).end();
223
- }
224
- rule.merge({ sideEffects: true });
225
- rule.resolve.preferRelative(true);
226
- }
227
- const pluginCss = () => {
228
- return {
229
- name: "rsbuild:css",
230
- setup(api) {
231
- api.modifyBundlerChain(async (chain, utils) => {
232
- const rule = chain.module.rule(utils.CHAIN_ID.RULE.CSS);
233
- const config = api.getNormalizedConfig();
234
- rule.test(import_shared.CSS_REGEX);
235
- await applyCSSRule({
236
- rule,
237
- utils,
238
- config,
239
- context: api.context
240
- });
241
- });
242
- api.modifyRspackConfig(async (rspackConfig) => {
243
- rspackConfig.experiments || (rspackConfig.experiments = {});
244
- rspackConfig.experiments.css = false;
245
- });
246
- }
247
- };
248
- };
249
- // Annotate the CommonJS export names for ESM import in node:
250
- 0 && (module.exports = {
251
- applyAutoprefixer,
252
- applyCSSRule,
253
- enableNativeCss,
254
- isUseCssExtract,
255
- normalizeCssLoaderOptions,
256
- pluginCss
257
- });