@modern-js/builder 2.46.0 → 3.0.0-alpha.0

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 (121) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +14 -16
  3. package/compiled/postcss-load-config/index.d.ts +1 -0
  4. package/compiled/postcss-load-config/index.js +14 -0
  5. package/compiled/postcss-load-config/license +20 -0
  6. package/compiled/postcss-load-config/package.json +1 -0
  7. package/dist/createBuilder.d.ts +8 -2
  8. package/dist/createBuilder.js +124 -39
  9. package/dist/index.d.ts +8 -4
  10. package/dist/index.js +18 -7
  11. package/dist/plugins/babel-post.d.ts +5 -0
  12. package/dist/plugins/{asset.js → babel-post.js} +21 -22
  13. package/dist/plugins/devtools.d.ts +4 -0
  14. package/dist/plugins/{devtool.js → devtools.js} +15 -16
  15. package/dist/plugins/emitRouteFile.d.ts +6 -0
  16. package/dist/plugins/{cleanOutput.js → emitRouteFile.js} +34 -16
  17. package/dist/plugins/environmentDefaults.d.ts +3 -0
  18. package/dist/plugins/environmentDefaults.js +99 -0
  19. package/dist/plugins/globalVars.d.ts +3 -0
  20. package/dist/plugins/{moment.js → globalVars.js} +23 -16
  21. package/dist/plugins/htmlMinify.d.ts +2 -0
  22. package/dist/plugins/htmlMinify.js +126 -0
  23. package/dist/plugins/manifest.d.ts +2 -0
  24. package/dist/plugins/{entry.js → manifest.js} +18 -16
  25. package/dist/plugins/postcss.d.ts +6 -0
  26. package/dist/plugins/postcss.js +133 -0
  27. package/dist/plugins/runtimeChunk.d.ts +2 -0
  28. package/dist/plugins/runtimeChunk.js +55 -0
  29. package/dist/rsc/common.d.ts +22 -0
  30. package/dist/rsc/common.js +174 -0
  31. package/dist/rsc/plugins/rsbuild-rsc-plugin.d.ts +7 -0
  32. package/dist/rsc/plugins/rsbuild-rsc-plugin.js +166 -0
  33. package/dist/rsc/plugins/rspack-rsc-client-plugin.d.ts +14 -0
  34. package/dist/rsc/plugins/rspack-rsc-client-plugin.js +233 -0
  35. package/dist/rsc/plugins/rspack-rsc-server-plugin.d.ts +32 -0
  36. package/dist/rsc/plugins/rspack-rsc-server-plugin.js +290 -0
  37. package/dist/rsc/rsc-client-loader.d.ts +7 -0
  38. package/dist/rsc/rsc-client-loader.js +70 -0
  39. package/dist/rsc/rsc-css-loader.d.ts +2 -0
  40. package/dist/{plugins/yaml.js → rsc/rsc-css-loader.js} +11 -17
  41. package/dist/rsc/rsc-server-loader.d.ts +6 -0
  42. package/dist/rsc/rsc-server-loader.js +95 -0
  43. package/dist/rsc/rsc-ssr-loader.d.ts +6 -0
  44. package/dist/rsc/rsc-ssr-loader.js +58 -0
  45. package/dist/shared/devServer.d.ts +6 -0
  46. package/dist/shared/devServer.js +83 -0
  47. package/dist/shared/getCssSupport.d.ts +1 -0
  48. package/dist/shared/getCssSupport.js +113 -0
  49. package/dist/shared/manifest.d.ts +2 -0
  50. package/dist/{plugins/toml.js → shared/manifest.js} +16 -14
  51. package/dist/shared/parseCommonConfig.d.ts +8 -0
  52. package/dist/shared/parseCommonConfig.js +232 -0
  53. package/dist/shared/utils.d.ts +12 -0
  54. package/dist/shared/utils.js +109 -0
  55. package/dist/types.d.ts +283 -0
  56. package/dist/types.js +16 -0
  57. package/package.json +54 -59
  58. package/dist/cli/commands.d.ts +0 -2
  59. package/dist/cli/commands.js +0 -45
  60. package/dist/cli/config.d.ts +0 -14
  61. package/dist/cli/config.js +0 -72
  62. package/dist/cli/index.d.ts +0 -6
  63. package/dist/cli/index.js +0 -51
  64. package/dist/cli/provider.d.ts +0 -2
  65. package/dist/cli/provider.js +0 -73
  66. package/dist/plugins/antd.d.ts +0 -3
  67. package/dist/plugins/antd.js +0 -63
  68. package/dist/plugins/arco.d.ts +0 -2
  69. package/dist/plugins/arco.js +0 -61
  70. package/dist/plugins/asset.d.ts +0 -2
  71. package/dist/plugins/assetsRetry.d.ts +0 -2
  72. package/dist/plugins/assetsRetry.js +0 -64
  73. package/dist/plugins/bundleAnalyzer.d.ts +0 -2
  74. package/dist/plugins/bundleAnalyzer.js +0 -59
  75. package/dist/plugins/cache.d.ts +0 -2
  76. package/dist/plugins/cache.js +0 -129
  77. package/dist/plugins/checkSyntax.d.ts +0 -2
  78. package/dist/plugins/checkSyntax.js +0 -73
  79. package/dist/plugins/cleanOutput.d.ts +0 -2
  80. package/dist/plugins/define.d.ts +0 -2
  81. package/dist/plugins/define.js +0 -68
  82. package/dist/plugins/devtool.d.ts +0 -2
  83. package/dist/plugins/entry.d.ts +0 -2
  84. package/dist/plugins/externals.d.ts +0 -2
  85. package/dist/plugins/externals.js +0 -48
  86. package/dist/plugins/fileSize.d.ts +0 -4
  87. package/dist/plugins/fileSize.js +0 -164
  88. package/dist/plugins/html.d.ts +0 -3
  89. package/dist/plugins/html.js +0 -236
  90. package/dist/plugins/index.d.ts +0 -2
  91. package/dist/plugins/index.js +0 -74
  92. package/dist/plugins/inlineChunk.d.ts +0 -2
  93. package/dist/plugins/inlineChunk.js +0 -82
  94. package/dist/plugins/moment.d.ts +0 -2
  95. package/dist/plugins/networkPerformance.d.ts +0 -2
  96. package/dist/plugins/networkPerformance.js +0 -54
  97. package/dist/plugins/nodeAddons.d.ts +0 -2
  98. package/dist/plugins/nodeAddons.js +0 -73
  99. package/dist/plugins/performance.d.ts +0 -5
  100. package/dist/plugins/performance.js +0 -66
  101. package/dist/plugins/preloadOrPrefetch.d.ts +0 -2
  102. package/dist/plugins/preloadOrPrefetch.js +0 -57
  103. package/dist/plugins/rem.d.ts +0 -2
  104. package/dist/plugins/rem.js +0 -106
  105. package/dist/plugins/sourceBuild.d.ts +0 -15
  106. package/dist/plugins/sourceBuild.js +0 -121
  107. package/dist/plugins/splitChunks.d.ts +0 -4
  108. package/dist/plugins/splitChunks.js +0 -249
  109. package/dist/plugins/startUrl.d.ts +0 -3
  110. package/dist/plugins/startUrl.js +0 -86
  111. package/dist/plugins/svg.d.ts +0 -2
  112. package/dist/plugins/svg.js +0 -89
  113. package/dist/plugins/target.d.ts +0 -2
  114. package/dist/plugins/target.js +0 -73
  115. package/dist/plugins/toml.d.ts +0 -2
  116. package/dist/plugins/tsChecker.d.ts +0 -2
  117. package/dist/plugins/tsChecker.js +0 -109
  118. package/dist/plugins/wasm.d.ts +0 -2
  119. package/dist/plugins/wasm.js +0 -51
  120. package/dist/plugins/yaml.d.ts +0 -2
  121. package/vitest.config.ts +0 -19
@@ -1,249 +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 splitChunks_exports = {};
30
- __export(splitChunks_exports, {
31
- builderPluginSplitChunks: () => builderPluginSplitChunks,
32
- createDependenciesRegExp: () => createDependenciesRegExp
33
- });
34
- module.exports = __toCommonJS(splitChunks_exports);
35
- var import_assert = __toESM(require("assert"));
36
- var import_builder_shared = require("@modern-js/builder-shared");
37
- function getUserDefinedCacheGroups(forceSplitting) {
38
- const cacheGroups = {};
39
- const pairs = Array.isArray(forceSplitting) ? forceSplitting.map((regexp, index) => [
40
- `force-split-${index}`,
41
- regexp
42
- ]) : Object.entries(forceSplitting);
43
- pairs.forEach(([key, regexp]) => {
44
- cacheGroups[key] = {
45
- test: regexp,
46
- name: key,
47
- chunks: "all",
48
- // Ignore minimum size, minimum chunks and maximum requests and always create chunks for user defined cache group.
49
- enforce: true
50
- };
51
- });
52
- return cacheGroups;
53
- }
54
- const DEPENDENCY_MATCH_TEMPL = /[\\/]node_modules[\\/](<SOURCES>)[\\/]/.source;
55
- const createDependenciesRegExp = (...dependencies) => {
56
- const sources = dependencies.map((d) => typeof d === "string" ? d : d.source);
57
- const expr = DEPENDENCY_MATCH_TEMPL.replace("<SOURCES>", sources.join("|"));
58
- return new RegExp(expr);
59
- };
60
- async function splitByExperience(ctx) {
61
- const { isPackageInstalled } = await Promise.resolve().then(() => __toESM(require("@modern-js/utils")));
62
- const { override, polyfill, rootPath, defaultConfig, userDefinedCacheGroups } = ctx;
63
- const experienceCacheGroup = {};
64
- const packageRegExps = {
65
- react: createDependenciesRegExp("react", "react-dom", "scheduler"),
66
- router: createDependenciesRegExp("react-router", "react-router-dom", "@remix-run/router", "history"),
67
- lodash: createDependenciesRegExp("lodash", "lodash-es"),
68
- axios: createDependenciesRegExp("axios", /axios-.+/)
69
- };
70
- if (isPackageInstalled("antd", rootPath)) {
71
- packageRegExps.antd = createDependenciesRegExp("antd");
72
- }
73
- if (isPackageInstalled("@arco-design/web-react", rootPath)) {
74
- packageRegExps.arco = createDependenciesRegExp(/@?arco-design/);
75
- }
76
- if (isPackageInstalled("@douyinfe/semi-ui", rootPath)) {
77
- packageRegExps.semi = createDependenciesRegExp(/@(ies|douyinfe)[\\/]semi-.*/);
78
- }
79
- if (polyfill === "entry" || polyfill === "usage") {
80
- packageRegExps.polyfill = createDependenciesRegExp("tslib", "core-js", "@babel/runtime", "@swc/helpers");
81
- }
82
- Object.entries(packageRegExps).forEach(([name, test]) => {
83
- const key = `lib-${name}`;
84
- experienceCacheGroup[key] = {
85
- test,
86
- priority: 0,
87
- name: key,
88
- reuseExistingChunk: true
89
- };
90
- });
91
- (0, import_assert.default)(defaultConfig !== false);
92
- (0, import_assert.default)(override !== false);
93
- return {
94
- ...defaultConfig,
95
- ...override,
96
- cacheGroups: {
97
- ...defaultConfig.cacheGroups,
98
- ...experienceCacheGroup,
99
- ...userDefinedCacheGroups,
100
- ...override.cacheGroups
101
- }
102
- };
103
- }
104
- function splitByModule(ctx) {
105
- const { override, userDefinedCacheGroups, defaultConfig } = ctx;
106
- (0, import_assert.default)(defaultConfig !== false);
107
- (0, import_assert.default)(override !== false);
108
- return {
109
- ...defaultConfig,
110
- minSize: 0,
111
- maxInitialRequests: Infinity,
112
- ...override,
113
- cacheGroups: {
114
- ...defaultConfig.cacheGroups,
115
- ...userDefinedCacheGroups,
116
- // Core group
117
- vendors: {
118
- priority: -10,
119
- test: import_builder_shared.NODE_MODULES_REGEX,
120
- name(module2) {
121
- return (0, import_builder_shared.getPackageNameFromModulePath)(module2.context);
122
- }
123
- },
124
- ...override.cacheGroups
125
- }
126
- };
127
- }
128
- function splitBySize(ctx) {
129
- const { override, userDefinedCacheGroups, defaultConfig, builderConfig } = ctx;
130
- (0, import_assert.default)(defaultConfig !== false);
131
- (0, import_assert.default)(override !== false);
132
- (0, import_assert.default)(builderConfig.strategy === "split-by-size");
133
- var _builderConfig_minSize, _builderConfig_maxSize;
134
- return {
135
- ...defaultConfig,
136
- minSize: (_builderConfig_minSize = builderConfig.minSize) !== null && _builderConfig_minSize !== void 0 ? _builderConfig_minSize : 0,
137
- maxSize: (_builderConfig_maxSize = builderConfig.maxSize) !== null && _builderConfig_maxSize !== void 0 ? _builderConfig_maxSize : Infinity,
138
- ...override,
139
- cacheGroups: {
140
- ...defaultConfig.cacheGroups,
141
- ...userDefinedCacheGroups,
142
- ...override.cacheGroups
143
- }
144
- };
145
- }
146
- function splitCustom(ctx) {
147
- const { override, userDefinedCacheGroups, defaultConfig } = ctx;
148
- (0, import_assert.default)(defaultConfig !== false);
149
- (0, import_assert.default)(override !== false);
150
- return {
151
- ...defaultConfig,
152
- ...override,
153
- cacheGroups: {
154
- ...defaultConfig.cacheGroups,
155
- ...userDefinedCacheGroups,
156
- ...override.cacheGroups
157
- }
158
- };
159
- }
160
- function allInOne(_ctx) {
161
- return false;
162
- }
163
- function singleVendor(ctx) {
164
- const { override, defaultConfig, userDefinedCacheGroups } = ctx;
165
- (0, import_assert.default)(defaultConfig !== false);
166
- (0, import_assert.default)(override !== false);
167
- const singleVendorCacheGroup = {
168
- singleVendor: {
169
- test: import_builder_shared.NODE_MODULES_REGEX,
170
- priority: 0,
171
- chunks: "all",
172
- name: "vendor",
173
- enforce: true,
174
- reuseExistingChunk: true
175
- }
176
- };
177
- return {
178
- ...defaultConfig,
179
- ...override,
180
- cacheGroups: {
181
- ...defaultConfig.cacheGroups,
182
- ...singleVendorCacheGroup,
183
- ...userDefinedCacheGroups,
184
- ...override.cacheGroups
185
- }
186
- };
187
- }
188
- const SPLIT_STRATEGY_DISPATCHER = {
189
- "split-by-experience": splitByExperience,
190
- "split-by-module": splitByModule,
191
- "split-by-size": splitBySize,
192
- custom: splitCustom,
193
- "all-in-one": allInOne,
194
- "single-vendor": singleVendor
195
- };
196
- function builderPluginSplitChunks() {
197
- return {
198
- name: "builder-plugin-split-chunks",
199
- setup(api) {
200
- api.modifyBundlerChain(async (chain, { isServer, isWebWorker, isServiceWorker }) => {
201
- if (isServer || isWebWorker || isServiceWorker) {
202
- chain.optimization.splitChunks(false);
203
- if (isWebWorker || isServiceWorker) {
204
- chain.module.parser.merge({
205
- javascript: {
206
- dynamicImportMode: "eager"
207
- }
208
- });
209
- }
210
- return;
211
- }
212
- const config = api.getNormalizedConfig();
213
- const defaultConfig = {
214
- // Optimize both `initial` and `async` chunks
215
- chunks: "all",
216
- // When chunk size >= 50000 bytes, split it into separate chunk
217
- enforceSizeThreshold: 5e4,
218
- cacheGroups: {}
219
- };
220
- const { chunkSplit } = config.performance;
221
- let userDefinedCacheGroups = {};
222
- if (chunkSplit.forceSplitting) {
223
- userDefinedCacheGroups = getUserDefinedCacheGroups(chunkSplit.forceSplitting);
224
- }
225
- var _chunkSplit_splitChunks;
226
- const override = chunkSplit.strategy === "custom" ? (_chunkSplit_splitChunks = chunkSplit.splitChunks) !== null && _chunkSplit_splitChunks !== void 0 ? _chunkSplit_splitChunks : chunkSplit.override : chunkSplit.override;
227
- const splitChunksOptions = await SPLIT_STRATEGY_DISPATCHER[chunkSplit.strategy]({
228
- defaultConfig,
229
- override: override || {},
230
- userDefinedCacheGroups,
231
- builderConfig: chunkSplit,
232
- rootPath: api.context.rootPath,
233
- polyfill: config.output.polyfill
234
- });
235
- chain.optimization.splitChunks(splitChunksOptions);
236
- if (chunkSplit.strategy !== "all-in-one") {
237
- chain.optimization.runtimeChunk({
238
- name: import_builder_shared.RUNTIME_CHUNK_NAME
239
- });
240
- }
241
- });
242
- }
243
- };
244
- }
245
- // Annotate the CommonJS export names for ESM import in node:
246
- 0 && (module.exports = {
247
- builderPluginSplitChunks,
248
- createDependenciesRegExp
249
- });
@@ -1,3 +0,0 @@
1
- import type { DefaultBuilderPlugin } from '@modern-js/builder-shared';
2
- export declare const replacePlaceholder: (url: string, port: number) => string;
3
- export declare function builderPluginStartUrl(): DefaultBuilderPlugin;
@@ -1,86 +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 startUrl_exports = {};
30
- __export(startUrl_exports, {
31
- builderPluginStartUrl: () => builderPluginStartUrl,
32
- replacePlaceholder: () => replacePlaceholder
33
- });
34
- module.exports = __toCommonJS(startUrl_exports);
35
- var import_lodash = __toESM(require("@modern-js/utils/lodash"));
36
- const replacePlaceholder = (url, port) => url.replace(/<port>/g, String(port));
37
- const openedURLs = [];
38
- function builderPluginStartUrl() {
39
- return {
40
- name: "builder-plugin-start-url",
41
- async setup(api) {
42
- let port;
43
- api.onAfterStartDevServer(async (params) => {
44
- ({ port } = params);
45
- });
46
- api.onDevCompileDone(async ({ isFirstCompile }) => {
47
- if (!isFirstCompile || !port) {
48
- return;
49
- }
50
- const config = api.getNormalizedConfig();
51
- const { startUrl, beforeStartUrl } = config.dev;
52
- const { https } = api.context.devServer || {};
53
- if (!startUrl) {
54
- return;
55
- }
56
- const urls = [];
57
- if (startUrl === true) {
58
- const protocol = https ? "https" : "http";
59
- urls.push(`${protocol}://localhost:${port}`);
60
- } else {
61
- urls.push(...import_lodash.default.castArray(startUrl).map((item) => replacePlaceholder(item, port)));
62
- }
63
- const { ensureArray } = await Promise.resolve().then(() => __toESM(require("@modern-js/utils")));
64
- const { openBrowser } = await Promise.resolve().then(() => __toESM(require("@modern-js/builder-shared")));
65
- const openUrls = () => {
66
- for (const url of urls) {
67
- if (!openedURLs.includes(url)) {
68
- openBrowser(url);
69
- openedURLs.push(url);
70
- }
71
- }
72
- };
73
- if (beforeStartUrl) {
74
- Promise.all(ensureArray(beforeStartUrl).map((fn) => fn())).then(openUrls);
75
- } else {
76
- openUrls();
77
- }
78
- });
79
- }
80
- };
81
- }
82
- // Annotate the CommonJS export names for ESM import in node:
83
- 0 && (module.exports = {
84
- builderPluginStartUrl,
85
- replacePlaceholder
86
- });
@@ -1,2 +0,0 @@
1
- import type { DefaultBuilderPlugin } from '@modern-js/builder-shared';
2
- export declare const builderPluginSvg: () => DefaultBuilderPlugin;
@@ -1,89 +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 svg_exports = {};
30
- __export(svg_exports, {
31
- builderPluginSvg: () => builderPluginSvg
32
- });
33
- module.exports = __toCommonJS(svg_exports);
34
- var import_path = __toESM(require("path"));
35
- var import_builder_shared = require("@modern-js/builder-shared");
36
- const builderPluginSvg = () => {
37
- return {
38
- name: "builder-plugin-svg",
39
- setup(api) {
40
- api.modifyBundlerChain(async (chain, { isProd, CHAIN_ID }) => {
41
- const config = api.getNormalizedConfig();
42
- const defaultExport = config.output.svgDefaultExport;
43
- const assetType = "svg";
44
- const distDir = (0, import_builder_shared.getDistPath)(config.output, "svg");
45
- const filename = (0, import_builder_shared.getFilename)(config.output, "svg", isProd);
46
- const outputName = import_path.default.posix.join(distDir, filename);
47
- const maxSize = config.output.dataUriLimit[assetType];
48
- const rule = chain.module.rule(CHAIN_ID.RULE.SVG).test(import_builder_shared.SVG_REGEX);
49
- if (config.output.disableSvgr) {
50
- (0, import_builder_shared.chainStaticAssetRule)({
51
- rule,
52
- maxSize,
53
- filename: import_path.default.posix.join(distDir, filename),
54
- assetType
55
- });
56
- return;
57
- }
58
- (0, import_builder_shared.chainStaticAssetRule)({
59
- rule,
60
- maxSize,
61
- filename: import_path.default.posix.join(distDir, filename),
62
- assetType,
63
- issuer: {
64
- // The issuer option ensures that SVGR will only apply if the SVG is imported from a JS file.
65
- not: [
66
- import_builder_shared.JS_REGEX,
67
- import_builder_shared.TS_REGEX
68
- ]
69
- }
70
- });
71
- rule.oneOf(CHAIN_ID.ONE_OF.SVG_INLINE).type("asset/inline").resourceQuery(/inline/);
72
- rule.oneOf(CHAIN_ID.ONE_OF.SVG_URL).type("asset/resource").resourceQuery(/url/).set("generator", {
73
- filename: outputName
74
- });
75
- rule.oneOf(CHAIN_ID.ONE_OF.SVG).type("javascript/auto").use(CHAIN_ID.USE.SVGR).loader(require.resolve("@svgr/webpack")).options({
76
- svgo: true,
77
- svgoConfig: (0, import_builder_shared.getSvgoDefaultConfig)()
78
- }).end().when(defaultExport === "url", (c) => c.use(CHAIN_ID.USE.URL).loader((0, import_builder_shared.getSharedPkgCompiledPath)("url-loader")).options({
79
- limit: config.output.dataUriLimit.svg,
80
- name: outputName
81
- }));
82
- });
83
- }
84
- };
85
- };
86
- // Annotate the CommonJS export names for ESM import in node:
87
- 0 && (module.exports = {
88
- builderPluginSvg
89
- });
@@ -1,2 +0,0 @@
1
- import type { DefaultBuilderPlugin } from '@modern-js/builder-shared';
2
- export declare const builderPluginTarget: () => DefaultBuilderPlugin;
@@ -1,73 +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 target_exports = {};
20
- __export(target_exports, {
21
- builderPluginTarget: () => builderPluginTarget
22
- });
23
- module.exports = __toCommonJS(target_exports);
24
- var import_builder_shared = require("@modern-js/builder-shared");
25
- const builderPluginTarget = () => ({
26
- name: "builder-plugin-target",
27
- setup(api) {
28
- api.modifyBundlerChain(async (chain, { target }) => {
29
- if (target === "node") {
30
- chain.target("node");
31
- return;
32
- }
33
- if (target === "service-worker") {
34
- chain.target("webworker");
35
- return;
36
- }
37
- if (target === "web-worker") {
38
- chain.target([
39
- "webworker",
40
- "es5"
41
- ]);
42
- return;
43
- }
44
- const browserslist = await (0, import_builder_shared.getBrowserslist)(api.context.rootPath);
45
- if (browserslist) {
46
- chain.merge({
47
- target: [
48
- "web",
49
- "browserslist"
50
- ]
51
- });
52
- } else if (target === "modern-web") {
53
- chain.merge({
54
- target: [
55
- "web",
56
- "es2015"
57
- ]
58
- });
59
- } else {
60
- chain.merge({
61
- target: [
62
- "web",
63
- "es5"
64
- ]
65
- });
66
- }
67
- });
68
- }
69
- });
70
- // Annotate the CommonJS export names for ESM import in node:
71
- 0 && (module.exports = {
72
- builderPluginTarget
73
- });
@@ -1,2 +0,0 @@
1
- import { DefaultBuilderPlugin } from '@modern-js/builder-shared';
2
- export declare const builderPluginToml: () => DefaultBuilderPlugin;
@@ -1,2 +0,0 @@
1
- import { DefaultBuilderPlugin } from '@modern-js/builder-shared';
2
- export declare const builderPluginTsChecker: () => DefaultBuilderPlugin;
@@ -1,109 +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 tsChecker_exports = {};
30
- __export(tsChecker_exports, {
31
- builderPluginTsChecker: () => builderPluginTsChecker
32
- });
33
- module.exports = __toCommonJS(tsChecker_exports);
34
- var import_deepmerge = __toESM(require("deepmerge"));
35
- const builderPluginTsChecker = () => {
36
- return {
37
- name: "builder-plugin-ts-checker",
38
- setup(api) {
39
- api.modifyBundlerChain(async (chain, { target }) => {
40
- const config = api.getNormalizedConfig();
41
- if (config.output.disableTsChecker || !api.context.tsconfigPath) {
42
- return;
43
- }
44
- if (Array.isArray(api.context.target) && target !== api.context.target[0]) {
45
- return;
46
- }
47
- const { default: ForkTsCheckerWebpackPlugin } = await Promise.resolve().then(() => __toESM(require("@modern-js/builder-shared/fork-ts-checker-webpack-plugin")));
48
- const { logger, CHAIN_ID, applyOptionsChain } = await Promise.resolve().then(() => __toESM(require("@modern-js/utils")));
49
- let typescriptPath;
50
- try {
51
- typescriptPath = require.resolve("typescript", {
52
- paths: [
53
- api.context.rootPath
54
- ]
55
- });
56
- } catch (err) {
57
- logger.warn('"typescript" is not found in current project, Type Checker will not work.');
58
- return;
59
- }
60
- const { experiments } = api.getNormalizedConfig();
61
- var _experiments_sourceBuild;
62
- const enableSourceBuild = (_experiments_sourceBuild = experiments === null || experiments === void 0 ? void 0 : experiments.sourceBuild) !== null && _experiments_sourceBuild !== void 0 ? _experiments_sourceBuild : false;
63
- const tsCheckerOptions = applyOptionsChain({
64
- typescript: {
65
- // avoid OOM issue
66
- memoryLimit: 8192,
67
- // use tsconfig of user project
68
- configFile: api.context.tsconfigPath,
69
- typescriptPath,
70
- // In source build mode, using the project reference generates a TS2307 error,
71
- // so additional configuration of the tsChecker is required
72
- ...enableSourceBuild ? {
73
- build: true,
74
- mode: "readonly"
75
- } : {}
76
- },
77
- issue: {
78
- exclude: [
79
- {
80
- file: "**/*.(spec|test).ts"
81
- },
82
- {
83
- file: "**/node_modules/**/*"
84
- }
85
- ]
86
- },
87
- logger: {
88
- log() {
89
- },
90
- error(message) {
91
- console.error(message.replace(/ERROR/g, "Type Error"));
92
- }
93
- }
94
- }, config.tools.tsChecker, void 0, import_deepmerge.default);
95
- if (api.context.bundlerType === "rspack" && chain.get("mode") === "production") {
96
- logger.info("ts checker running...");
97
- logger.info("ts checker is running slowly and will block builds until it is complete, please be patient and wait.");
98
- }
99
- chain.plugin(CHAIN_ID.PLUGIN.TS_CHECKER).use(ForkTsCheckerWebpackPlugin, [
100
- tsCheckerOptions
101
- ]);
102
- });
103
- }
104
- };
105
- };
106
- // Annotate the CommonJS export names for ESM import in node:
107
- 0 && (module.exports = {
108
- builderPluginTsChecker
109
- });
@@ -1,2 +0,0 @@
1
- import { type DefaultBuilderPlugin } from '@modern-js/builder-shared';
2
- export declare const builderPluginWasm: () => DefaultBuilderPlugin;
@@ -1,51 +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 wasm_exports = {};
20
- __export(wasm_exports, {
21
- builderPluginWasm: () => builderPluginWasm
22
- });
23
- module.exports = __toCommonJS(wasm_exports);
24
- var import_path = require("path");
25
- var import_builder_shared = require("@modern-js/builder-shared");
26
- const builderPluginWasm = () => ({
27
- name: "builder-plugin-wasm",
28
- setup(api) {
29
- api.modifyBundlerChain(async (chain, { CHAIN_ID }) => {
30
- const config = api.getNormalizedConfig();
31
- const distPath = (0, import_builder_shared.getDistPath)(config.output, "wasm");
32
- chain.experiments({
33
- ...chain.get("experiments"),
34
- asyncWebAssembly: true
35
- });
36
- const wasmFilename = (0, import_path.join)(distPath, "[hash].module.wasm");
37
- chain.output.merge({
38
- webassemblyModuleFilename: wasmFilename
39
- });
40
- chain.module.rule(CHAIN_ID.RULE.WASM).test(/\.wasm$/).merge({
41
- dependency: "url"
42
- }).type("asset/resource").set("generator", {
43
- filename: wasmFilename
44
- });
45
- });
46
- }
47
- });
48
- // Annotate the CommonJS export names for ESM import in node:
49
- 0 && (module.exports = {
50
- builderPluginWasm
51
- });