@rsbuild/core 0.7.0-beta.2 → 0.7.0-beta.4

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/client/{hmr.mjs → hmr.js} +2 -3
  7. package/dist/client/{overlay.mjs → overlay.js} +2 -6
  8. package/dist/{rspack/ignoreCssLoader.js → ignoreCssLoader.cjs} +2 -0
  9. package/dist/index.cjs +7201 -0
  10. package/dist/index.js +7435 -40
  11. package/dist/{rspack/transformLoader.js → transformLoader.cjs} +2 -0
  12. package/dist/{rspack/transformRawLoader.js → transformRawLoader.cjs} +37 -13
  13. package/{dist → dist-types}/constants.d.ts +3 -0
  14. package/dist-types/helpers.d.ts +32 -0
  15. package/{dist → dist-types}/index.d.ts +6 -0
  16. package/{dist → dist-types}/internal.d.ts +5 -2
  17. package/dist-types/package.json +1 -0
  18. package/{dist → dist-types}/plugins/html.d.ts +2 -1
  19. package/{dist → dist-types}/plugins/index.d.ts +1 -0
  20. package/dist-types/plugins/minimize.d.ts +12 -0
  21. package/{dist/provider → dist-types}/plugins/progress.d.ts +1 -1
  22. package/{dist/provider → dist-types}/plugins/resolve.d.ts +1 -1
  23. package/{dist/provider → dist-types}/plugins/rspackProfile.d.ts +1 -1
  24. package/{dist/provider → dist-types}/plugins/swc.d.ts +1 -1
  25. package/dist-types/server/devMiddleware.d.ts +18 -0
  26. package/{dist → dist-types}/server/helper.d.ts +11 -0
  27. package/package.json +14 -16
  28. package/dist/cli/commands.js +0 -110
  29. package/dist/cli/init.js +0 -101
  30. package/dist/cli/prepare.js +0 -43
  31. package/dist/client/format.js +0 -72
  32. package/dist/config.js +0 -306
  33. package/dist/constants.js +0 -40
  34. package/dist/createContext.js +0 -116
  35. package/dist/createRsbuild.js +0 -103
  36. package/dist/initHooks.js +0 -82
  37. package/dist/initPlugins.js +0 -152
  38. package/dist/internal.js +0 -79
  39. package/dist/loadEnv.js +0 -93
  40. package/dist/mergeConfig.js +0 -80
  41. package/dist/pluginHelper.js +0 -66
  42. package/dist/pluginManager.js +0 -180
  43. package/dist/plugins/asset.js +0 -101
  44. package/dist/plugins/basic.js +0 -77
  45. package/dist/plugins/bundleAnalyzer.js +0 -69
  46. package/dist/plugins/cache.js +0 -116
  47. package/dist/plugins/cleanOutput.js +0 -68
  48. package/dist/plugins/css.js +0 -257
  49. package/dist/plugins/define.js +0 -45
  50. package/dist/plugins/entry.js +0 -76
  51. package/dist/plugins/externals.js +0 -48
  52. package/dist/plugins/fileSize.js +0 -199
  53. package/dist/plugins/html.js +0 -327
  54. package/dist/plugins/index.js +0 -66
  55. package/dist/plugins/inlineChunk.js +0 -69
  56. package/dist/plugins/less.js +0 -107
  57. package/dist/plugins/manifest.js +0 -142
  58. package/dist/plugins/moduleFederation.js +0 -125
  59. package/dist/plugins/moment.js +0 -43
  60. package/dist/plugins/nodeAddons.js +0 -74
  61. package/dist/plugins/output.js +0 -63
  62. package/dist/plugins/performance.js +0 -56
  63. package/dist/plugins/resourceHints.js +0 -86
  64. package/dist/plugins/rsdoctor.js +0 -81
  65. package/dist/plugins/sass.js +0 -154
  66. package/dist/plugins/server.js +0 -59
  67. package/dist/plugins/splitChunks.js +0 -236
  68. package/dist/plugins/startUrl.js +0 -146
  69. package/dist/plugins/target.js +0 -54
  70. package/dist/plugins/wasm.js +0 -51
  71. package/dist/provider/build.js +0 -84
  72. package/dist/provider/createCompiler.js +0 -143
  73. package/dist/provider/initConfigs.js +0 -92
  74. package/dist/provider/inspectConfig.js +0 -85
  75. package/dist/provider/plugins/minimize.d.ts +0 -2
  76. package/dist/provider/plugins/minimize.js +0 -49
  77. package/dist/provider/plugins/progress.js +0 -49
  78. package/dist/provider/plugins/resolve.js +0 -42
  79. package/dist/provider/plugins/rspackProfile.js +0 -112
  80. package/dist/provider/plugins/swc.js +0 -152
  81. package/dist/provider/plugins/transition.d.ts +0 -5
  82. package/dist/provider/plugins/transition.js +0 -35
  83. package/dist/provider/provider.js +0 -158
  84. package/dist/provider/rspackConfig.js +0 -144
  85. package/dist/provider/shared.d.ts +0 -16
  86. package/dist/provider/shared.js +0 -215
  87. package/dist/rspack/HtmlAppIconPlugin.js +0 -98
  88. package/dist/rspack/HtmlBasicPlugin.js +0 -229
  89. package/dist/rspack/InlineChunkHtmlPlugin.js +0 -196
  90. package/dist/rspack/preload/HtmlPreloadOrPrefetchPlugin.js +0 -173
  91. package/dist/rspack/preload/helpers/determineAsValue.js +0 -83
  92. package/dist/rspack/preload/helpers/doesChunkBelongToHtml.js +0 -77
  93. package/dist/rspack/preload/helpers/extractChunks.js +0 -83
  94. package/dist/rspack/preload/helpers/index.js +0 -28
  95. package/dist/rspack/preload/helpers/type.js +0 -16
  96. package/dist/server/compilerDevMiddleware.js +0 -129
  97. package/dist/server/devMiddleware.d.ts +0 -3
  98. package/dist/server/devMiddleware.js +0 -74
  99. package/dist/server/devServer.js +0 -195
  100. package/dist/server/getDevMiddlewares.js +0 -177
  101. package/dist/server/helper.js +0 -237
  102. package/dist/server/httpServer.js +0 -45
  103. package/dist/server/index.js +0 -31
  104. package/dist/server/middlewares.js +0 -162
  105. package/dist/server/prodServer.js +0 -196
  106. package/dist/server/proxy.js +0 -93
  107. package/dist/server/restart.js +0 -66
  108. package/dist/server/socketServer.js +0 -178
  109. package/dist/server/watchFiles.js +0 -90
  110. package/dist/types.js +0 -16
  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
- });