@umijs/bundler-webpack 4.0.0-canary.20220718.2 → 4.0.0-canary.20220729.1

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 (154) hide show
  1. package/client/client/client.d.ts +1 -0
  2. package/client/client/client.js +295 -194
  3. package/client/constants.d.ts +15 -0
  4. package/client/constants.js +28 -19
  5. package/client/utils/formatWebpackMessages.d.ts +12 -0
  6. package/client/utils/formatWebpackMessages.js +68 -86
  7. package/dist/build.d.ts +1 -2
  8. package/dist/build.js +105 -68
  9. package/dist/cli.d.ts +0 -1
  10. package/dist/cli.js +77 -69
  11. package/dist/config/_sampleFeature.d.ts +0 -1
  12. package/dist/config/_sampleFeature.js +33 -9
  13. package/dist/config/assetRules.d.ts +0 -1
  14. package/dist/config/assetRules.js +45 -36
  15. package/dist/config/bundleAnalyzerPlugin.d.ts +0 -1
  16. package/dist/config/bundleAnalyzerPlugin.js +39 -17
  17. package/dist/config/compressPlugin.d.ts +0 -1
  18. package/dist/config/compressPlugin.js +113 -95
  19. package/dist/config/config.d.ts +1 -1
  20. package/dist/config/config.js +204 -218
  21. package/dist/config/copyPlugin.d.ts +0 -1
  22. package/dist/config/copyPlugin.js +59 -40
  23. package/dist/config/cssRules.d.ts +0 -1
  24. package/dist/config/cssRules.js +136 -131
  25. package/dist/config/definePlugin.d.ts +0 -1
  26. package/dist/config/definePlugin.js +71 -35
  27. package/dist/config/detectDeadCode.d.ts +0 -1
  28. package/dist/config/detectDeadCode.js +120 -108
  29. package/dist/config/detectDeadCodePlugin.d.ts +0 -1
  30. package/dist/config/detectDeadCodePlugin.js +78 -63
  31. package/dist/config/fastRefreshPlugin.d.ts +0 -1
  32. package/dist/config/fastRefreshPlugin.js +39 -20
  33. package/dist/config/forkTSCheckerPlugin.d.ts +0 -1
  34. package/dist/config/forkTSCheckerPlugin.js +38 -18
  35. package/dist/config/harmonyLinkingErrorPlugin.d.ts +0 -1
  36. package/dist/config/harmonyLinkingErrorPlugin.js +48 -29
  37. package/dist/config/ignorePlugin.d.ts +0 -1
  38. package/dist/config/ignorePlugin.js +38 -14
  39. package/dist/config/javaScriptRules.d.ts +0 -1
  40. package/dist/config/javaScriptRules.js +147 -175
  41. package/dist/config/manifestPlugin.d.ts +0 -1
  42. package/dist/config/manifestPlugin.js +51 -15
  43. package/dist/config/miniCSSExtractPlugin.d.ts +0 -1
  44. package/dist/config/miniCSSExtractPlugin.js +42 -22
  45. package/dist/config/nodePolyfill.d.ts +0 -1
  46. package/dist/config/nodePolyfill.js +65 -26
  47. package/dist/config/nodePrefixPlugin.d.ts +0 -1
  48. package/dist/config/nodePrefixPlugin.js +36 -12
  49. package/dist/config/progressPlugin.d.ts +0 -1
  50. package/dist/config/progressPlugin.js +37 -13
  51. package/dist/config/purgecssWebpackPlugin.d.ts +0 -1
  52. package/dist/config/purgecssWebpackPlugin.js +41 -19
  53. package/dist/config/speedMeasureWebpackPlugin.d.ts +0 -1
  54. package/dist/config/speedMeasureWebpackPlugin.js +41 -20
  55. package/dist/config/ssrPlugin.d.ts +0 -1
  56. package/dist/config/ssrPlugin.js +83 -63
  57. package/dist/config/svgRules.d.ts +0 -1
  58. package/dist/config/svgRules.js +74 -46
  59. package/dist/constants.d.ts +0 -1
  60. package/dist/constants.js +57 -22
  61. package/dist/dev.d.ts +1 -2
  62. package/dist/dev.js +174 -135
  63. package/dist/index.d.ts +0 -1
  64. package/dist/index.js +22 -20
  65. package/dist/loader/svgr.d.ts +0 -1
  66. package/dist/loader/svgr.js +73 -54
  67. package/dist/loader/swc.d.ts +0 -1
  68. package/dist/loader/swc.js +110 -69
  69. package/dist/parcelCSS.d.ts +0 -1
  70. package/dist/parcelCSS.js +31 -27
  71. package/dist/plugins/ProgressPlugin.d.ts +0 -1
  72. package/dist/plugins/ProgressPlugin.js +66 -43
  73. package/dist/plugins/RuntimePublicPathPlugin.d.ts +0 -1
  74. package/dist/plugins/RuntimePublicPathPlugin.js +42 -25
  75. package/dist/plugins/_SamplePlugin.d.ts +0 -1
  76. package/dist/plugins/_SamplePlugin.js +39 -14
  77. package/dist/requireHook.d.ts +0 -1
  78. package/dist/requireHook.js +37 -27
  79. package/dist/schema.d.ts +0 -1
  80. package/dist/schema.js +123 -97
  81. package/dist/server/server.d.ts +0 -2
  82. package/dist/server/server.js +214 -184
  83. package/dist/server/ws.d.ts +0 -3
  84. package/dist/server/ws.js +63 -38
  85. package/dist/swcPlugins/autoCSSModules.d.ts +0 -1
  86. package/dist/swcPlugins/autoCSSModules.js +50 -31
  87. package/dist/swcPlugins/changeImportFromString.d.ts +0 -1
  88. package/dist/swcPlugins/changeImportFromString.js +31 -9
  89. package/dist/swcPlugins/lockCoreJS.d.ts +0 -1
  90. package/dist/swcPlugins/lockCoreJS.js +44 -20
  91. package/dist/types.d.ts +2 -2
  92. package/dist/types.js +61 -30
  93. package/dist/utils/browsersList.d.ts +0 -1
  94. package/dist/utils/browsersList.js +31 -8
  95. package/dist/utils/depMatch.d.ts +0 -1
  96. package/dist/utils/depMatch.js +63 -39
  97. package/dist/utils/formatWebpackMessages.d.ts +0 -1
  98. package/dist/utils/formatWebpackMessages.js +93 -91
  99. package/dist/utils/getEsBuildTarget.d.ts +0 -1
  100. package/dist/utils/getEsBuildTarget.js +32 -10
  101. package/package.json +10 -15
  102. package/compiled/react-refresh/LICENSE +0 -21
  103. package/compiled/react-refresh/index.js +0 -21
  104. package/compiled/react-refresh/package.json +0 -1
  105. package/dist/build.d.ts.map +0 -1
  106. package/dist/cli.d.ts.map +0 -1
  107. package/dist/client/client.d.ts +0 -2
  108. package/dist/client/client.d.ts.map +0 -1
  109. package/dist/client/client.js +0 -245
  110. package/dist/config/_sampleFeature.d.ts.map +0 -1
  111. package/dist/config/assetRules.d.ts.map +0 -1
  112. package/dist/config/bundleAnalyzerPlugin.d.ts.map +0 -1
  113. package/dist/config/compressPlugin.d.ts.map +0 -1
  114. package/dist/config/config.d.ts.map +0 -1
  115. package/dist/config/copyPlugin.d.ts.map +0 -1
  116. package/dist/config/cssRules.d.ts.map +0 -1
  117. package/dist/config/definePlugin.d.ts.map +0 -1
  118. package/dist/config/detectDeadCode.d.ts.map +0 -1
  119. package/dist/config/detectDeadCodePlugin.d.ts.map +0 -1
  120. package/dist/config/fastRefreshPlugin.d.ts.map +0 -1
  121. package/dist/config/forkTSCheckerPlugin.d.ts.map +0 -1
  122. package/dist/config/harmonyLinkingErrorPlugin.d.ts.map +0 -1
  123. package/dist/config/ignorePlugin.d.ts.map +0 -1
  124. package/dist/config/javaScriptRules.d.ts.map +0 -1
  125. package/dist/config/manifestPlugin.d.ts.map +0 -1
  126. package/dist/config/miniCSSExtractPlugin.d.ts.map +0 -1
  127. package/dist/config/nodePolyfill.d.ts.map +0 -1
  128. package/dist/config/nodePrefixPlugin.d.ts.map +0 -1
  129. package/dist/config/progressPlugin.d.ts.map +0 -1
  130. package/dist/config/purgecssWebpackPlugin.d.ts.map +0 -1
  131. package/dist/config/speedMeasureWebpackPlugin.d.ts.map +0 -1
  132. package/dist/config/ssrPlugin.d.ts.map +0 -1
  133. package/dist/config/svgRules.d.ts.map +0 -1
  134. package/dist/constants.d.ts.map +0 -1
  135. package/dist/dev.d.ts.map +0 -1
  136. package/dist/index.d.ts.map +0 -1
  137. package/dist/loader/svgr.d.ts.map +0 -1
  138. package/dist/loader/swc.d.ts.map +0 -1
  139. package/dist/parcelCSS.d.ts.map +0 -1
  140. package/dist/plugins/ProgressPlugin.d.ts.map +0 -1
  141. package/dist/plugins/RuntimePublicPathPlugin.d.ts.map +0 -1
  142. package/dist/plugins/_SamplePlugin.d.ts.map +0 -1
  143. package/dist/requireHook.d.ts.map +0 -1
  144. package/dist/schema.d.ts.map +0 -1
  145. package/dist/server/server.d.ts.map +0 -1
  146. package/dist/server/ws.d.ts.map +0 -1
  147. package/dist/swcPlugins/autoCSSModules.d.ts.map +0 -1
  148. package/dist/swcPlugins/changeImportFromString.d.ts.map +0 -1
  149. package/dist/swcPlugins/lockCoreJS.d.ts.map +0 -1
  150. package/dist/types.d.ts.map +0 -1
  151. package/dist/utils/browsersList.d.ts.map +0 -1
  152. package/dist/utils/depMatch.d.ts.map +0 -1
  153. package/dist/utils/formatWebpackMessages.d.ts.map +0 -1
  154. package/dist/utils/getEsBuildTarget.d.ts.map +0 -1
@@ -1,226 +1,212 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ var __export = (target, all) => {
22
+ for (var name in all)
23
+ __defProp(target, name, { get: all[name], enumerable: true });
4
24
  };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getConfig = void 0;
7
- const case_sensitive_paths_webpack_plugin_1 = __importDefault(require("@umijs/case-sensitive-paths-webpack-plugin"));
8
- const path_1 = require("path");
9
- const webpack_1 = __importDefault(require("../../compiled/webpack"));
10
- const webpack_5_chain_1 = __importDefault(require("../../compiled/webpack-5-chain"));
11
- const constants_1 = require("../constants");
12
- const RuntimePublicPathPlugin_1 = require("../plugins/RuntimePublicPathPlugin");
13
- const types_1 = require("../types");
14
- const browsersList_1 = require("../utils/browsersList");
15
- const assetRules_1 = require("./assetRules");
16
- const bundleAnalyzerPlugin_1 = require("./bundleAnalyzerPlugin");
17
- const compressPlugin_1 = require("./compressPlugin");
18
- const copyPlugin_1 = require("./copyPlugin");
19
- const cssRules_1 = require("./cssRules");
20
- const definePlugin_1 = require("./definePlugin");
21
- const detectDeadCodePlugin_1 = require("./detectDeadCodePlugin");
22
- const fastRefreshPlugin_1 = require("./fastRefreshPlugin");
23
- const forkTSCheckerPlugin_1 = require("./forkTSCheckerPlugin");
24
- const harmonyLinkingErrorPlugin_1 = require("./harmonyLinkingErrorPlugin");
25
- const ignorePlugin_1 = require("./ignorePlugin");
26
- const javaScriptRules_1 = require("./javaScriptRules");
27
- const manifestPlugin_1 = require("./manifestPlugin");
28
- const miniCSSExtractPlugin_1 = require("./miniCSSExtractPlugin");
29
- const nodePolyfill_1 = require("./nodePolyfill");
30
- const progressPlugin_1 = require("./progressPlugin");
31
- const speedMeasureWebpackPlugin_1 = require("./speedMeasureWebpackPlugin");
32
- const ssrPlugin_1 = __importDefault(require("./ssrPlugin"));
33
- const svgRules_1 = require("./svgRules");
25
+ var __copyProps = (to, from, except, desc) => {
26
+ if (from && typeof from === "object" || typeof from === "function") {
27
+ for (let key of __getOwnPropNames(from))
28
+ if (!__hasOwnProp.call(to, key) && key !== except)
29
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
30
+ }
31
+ return to;
32
+ };
33
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
34
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
35
+
36
+ // src/config/config.ts
37
+ var config_exports = {};
38
+ __export(config_exports, {
39
+ getConfig: () => getConfig
40
+ });
41
+ module.exports = __toCommonJS(config_exports);
42
+ var import_case_sensitive_paths_webpack_plugin = __toESM(require("@umijs/case-sensitive-paths-webpack-plugin"));
43
+ var import_utils = require("@umijs/utils");
44
+ var import_path = require("path");
45
+ var import_webpack = __toESM(require("../../compiled/webpack"));
46
+ var import_webpack_5_chain = __toESM(require("../../compiled/webpack-5-chain"));
47
+ var import_constants = require("../constants");
48
+ var import_RuntimePublicPathPlugin = require("../plugins/RuntimePublicPathPlugin");
49
+ var import_types = require("../types");
50
+ var import_browsersList = require("../utils/browsersList");
51
+ var import_assetRules = require("./assetRules");
52
+ var import_bundleAnalyzerPlugin = require("./bundleAnalyzerPlugin");
53
+ var import_compressPlugin = require("./compressPlugin");
54
+ var import_copyPlugin = require("./copyPlugin");
55
+ var import_cssRules = require("./cssRules");
56
+ var import_definePlugin = require("./definePlugin");
57
+ var import_detectDeadCodePlugin = require("./detectDeadCodePlugin");
58
+ var import_fastRefreshPlugin = require("./fastRefreshPlugin");
59
+ var import_forkTSCheckerPlugin = require("./forkTSCheckerPlugin");
60
+ var import_harmonyLinkingErrorPlugin = require("./harmonyLinkingErrorPlugin");
61
+ var import_ignorePlugin = require("./ignorePlugin");
62
+ var import_javaScriptRules = require("./javaScriptRules");
63
+ var import_manifestPlugin = require("./manifestPlugin");
64
+ var import_miniCSSExtractPlugin = require("./miniCSSExtractPlugin");
65
+ var import_nodePolyfill = require("./nodePolyfill");
66
+ var import_progressPlugin = require("./progressPlugin");
67
+ var import_speedMeasureWebpackPlugin = require("./speedMeasureWebpackPlugin");
68
+ var import_ssrPlugin = __toESM(require("./ssrPlugin"));
69
+ var import_svgRules = require("./svgRules");
34
70
  async function getConfig(opts) {
35
- const { userConfig } = opts;
36
- const isDev = opts.env === types_1.Env.development;
37
- const config = new webpack_5_chain_1.default();
38
- userConfig.targets || (userConfig.targets = constants_1.DEFAULT_BROWSER_TARGETS);
39
- const useHash = !!(opts.hash || (userConfig.hash && !isDev));
40
- const applyOpts = {
41
- name: opts.name,
42
- config,
43
- userConfig,
44
- cwd: opts.cwd,
45
- env: opts.env,
46
- babelPreset: opts.babelPreset,
47
- extraBabelPlugins: opts.extraBabelPlugins || [],
48
- extraBabelPresets: opts.extraBabelPresets || [],
49
- extraBabelIncludes: opts.extraBabelIncludes || [],
50
- extraEsbuildLoaderHandler: opts.extraEsbuildLoaderHandler || [],
51
- browsers: (0, browsersList_1.getBrowsersList)({
52
- targets: userConfig.targets,
53
- }),
54
- useHash,
55
- staticPathPrefix: opts.staticPathPrefix !== undefined ? opts.staticPathPrefix : 'static/',
56
- };
57
- // mode
58
- config.mode(opts.env);
59
- config.stats('none');
60
- // entry
61
- Object.keys(opts.entry).forEach((key) => {
62
- const entry = config.entry(key);
63
- if (isDev && opts.hmr) {
64
- entry.add(require.resolve('../../client/client/client'));
65
- }
66
- entry.add(opts.entry[key]);
67
- });
68
- // devtool
69
- config.devtool(isDev
70
- ? userConfig.devtool === false
71
- ? false
72
- : userConfig.devtool || constants_1.DEFAULT_DEVTOOL
73
- : userConfig.devtool);
74
- // output
75
- const absOutputPath = (0, path_1.resolve)(opts.cwd, userConfig.outputPath || constants_1.DEFAULT_OUTPUT_PATH);
76
- const disableCompress = process.env.COMPRESS === 'none';
77
- config.output
78
- .path(absOutputPath)
79
- .filename(useHash ? `[name].[contenthash:8].js` : `[name].js`)
80
- .chunkFilename(useHash ? `[name].[contenthash:8].async.js` : `[name].async.js`)
81
- .publicPath(userConfig.publicPath || 'auto')
82
- .pathinfo(isDev || disableCompress)
83
- .set('assetModuleFilename', `${applyOpts.staticPathPrefix}[name].[hash:8][ext]`);
84
- // resolve
85
- // prettier-ignore
86
- config.resolve
87
- .set('symlinks', true)
88
- .modules
89
- .add('node_modules')
90
- .end()
91
- .alias
92
- .merge(userConfig.alias || {})
93
- .end()
94
- .extensions
95
- .merge([
96
- '.wasm',
97
- '.mjs',
98
- '.js',
99
- '.jsx',
100
- '.ts',
101
- '.tsx',
102
- '.json'
103
- ])
104
- .end();
105
- // externals
106
- config.externals(userConfig.externals || []);
107
- // target
108
- config.target(['web', 'es5']);
109
- // experiments
110
- config.experiments({
111
- topLevelAwait: true,
112
- outputModule: !!userConfig.esm,
113
- });
114
- // node polyfill
115
- await (0, nodePolyfill_1.addNodePolyfill)(applyOpts);
116
- // rules
117
- await (0, javaScriptRules_1.addJavaScriptRules)(applyOpts);
118
- await (0, cssRules_1.addCSSRules)(applyOpts);
119
- await (0, assetRules_1.addAssetRules)(applyOpts);
120
- await (0, svgRules_1.addSVGRules)(applyOpts);
121
- // plugins
122
- // mini-css-extract-plugin
123
- await (0, miniCSSExtractPlugin_1.addMiniCSSExtractPlugin)(applyOpts);
124
- // ignoreMomentLocale
125
- await (0, ignorePlugin_1.addIgnorePlugin)(applyOpts);
126
- // define
127
- await (0, definePlugin_1.addDefinePlugin)(applyOpts);
128
- // fast refresh
129
- await (0, fastRefreshPlugin_1.addFastRefreshPlugin)(applyOpts);
130
- // progress
131
- await (0, progressPlugin_1.addProgressPlugin)(applyOpts);
132
- // detect-dead-code-plugin
133
- await (0, detectDeadCodePlugin_1.addDetectDeadCodePlugin)(applyOpts);
134
- // fork-ts-checker
135
- await (0, forkTSCheckerPlugin_1.addForkTSCheckerPlugin)(applyOpts);
136
- // copy
137
- await (0, copyPlugin_1.addCopyPlugin)(applyOpts);
138
- // manifest
139
- await (0, manifestPlugin_1.addManifestPlugin)(applyOpts);
140
- // hmr
71
+ var _a, _b, _c;
72
+ const { userConfig } = opts;
73
+ const isDev = opts.env === import_types.Env.development;
74
+ const config = new import_webpack_5_chain.default();
75
+ userConfig.targets || (userConfig.targets = import_constants.DEFAULT_BROWSER_TARGETS);
76
+ const useHash = !!(opts.hash || userConfig.hash && !isDev);
77
+ const applyOpts = {
78
+ name: opts.name,
79
+ config,
80
+ userConfig,
81
+ cwd: opts.cwd,
82
+ env: opts.env,
83
+ babelPreset: opts.babelPreset,
84
+ extraBabelPlugins: opts.extraBabelPlugins || [],
85
+ extraBabelPresets: opts.extraBabelPresets || [],
86
+ extraBabelIncludes: opts.extraBabelIncludes || [],
87
+ extraEsbuildLoaderHandler: opts.extraEsbuildLoaderHandler || [],
88
+ browsers: (0, import_browsersList.getBrowsersList)({
89
+ targets: userConfig.targets
90
+ }),
91
+ useHash,
92
+ staticPathPrefix: opts.staticPathPrefix !== void 0 ? opts.staticPathPrefix : "static/"
93
+ };
94
+ config.mode(opts.env);
95
+ config.stats("none");
96
+ Object.keys(opts.entry).forEach((key) => {
97
+ const entry = config.entry(key);
141
98
  if (isDev && opts.hmr) {
142
- config.plugin('hmr').use(webpack_1.default.HotModuleReplacementPlugin);
143
- }
144
- // ssr
145
- await (0, ssrPlugin_1.default)(applyOpts);
146
- // compress
147
- await (0, compressPlugin_1.addCompressPlugin)(applyOpts);
148
- // purgecss
149
- // await applyPurgeCSSWebpackPlugin(applyOpts);
150
- // handle HarmonyLinkingError
151
- await (0, harmonyLinkingErrorPlugin_1.addHarmonyLinkingErrorPlugin)(applyOpts);
152
- // remove node: prefix
153
- // disable for performance
154
- // await addNodePrefixPlugin(applyOpts);
155
- // runtimePublicPath
156
- if (userConfig.runtimePublicPath) {
157
- config.plugin('runtimePublicPath').use(RuntimePublicPathPlugin_1.RuntimePublicPathPlugin);
99
+ entry.add(require.resolve("../../client/client/client"));
158
100
  }
159
- // case-sensitive-paths
160
- config.plugin('case-sensitive-paths').use(case_sensitive_paths_webpack_plugin_1.default);
161
- // cache
162
- if (opts.cache) {
163
- config.cache({
164
- type: 'filesystem',
165
- version: require('../../package.json').version,
166
- buildDependencies: {
167
- config: opts.cache.buildDependencies || [],
168
- },
169
- cacheDirectory: opts.cache.cacheDirectory ||
170
- // 使用 rootDir 是在有 APP_ROOT 时,把 cache 目录放在根目录下
171
- (0, path_1.join)(opts.rootDir || opts.cwd, 'node_modules', '.cache', 'bundler-webpack'),
172
- });
173
- // tnpm 安装依赖的情况 webpack 默认的 managedPaths 不生效
174
- // 使用 immutablePaths 避免 node_modules 的内容被写入缓存
175
- // tnpm 安装的依赖路径中同时包含包名和版本号,满足 immutablePaths 使用的条件
176
- // 同时配置 managedPaths 将 tnpm 的软连接结构标记为可信,避免执行快照序列化时 OOM
177
- // ref: smallfish
178
- if ( /*isTnpm*/require('@umijs/utils/package').__npminstall_done) {
179
- const nodeModulesPath = opts.cache.absNodeModulesPath ||
180
- (0, path_1.join)(opts.rootDir || opts.cwd, 'node_modules');
181
- config.snapshot({
182
- immutablePaths: [nodeModulesPath],
183
- managedPaths: [nodeModulesPath],
184
- });
101
+ entry.add(opts.entry[key]);
102
+ });
103
+ config.devtool(isDev ? userConfig.devtool === false ? false : userConfig.devtool || import_constants.DEFAULT_DEVTOOL : userConfig.devtool);
104
+ const absOutputPath = (0, import_path.resolve)(opts.cwd, userConfig.outputPath || import_constants.DEFAULT_OUTPUT_PATH);
105
+ const disableCompress = process.env.COMPRESS === "none";
106
+ config.output.path(absOutputPath).filename(useHash ? `[name].[contenthash:8].js` : `[name].js`).chunkFilename(useHash ? `[name].[contenthash:8].async.js` : `[name].async.js`).publicPath(userConfig.publicPath || "auto").pathinfo(isDev || disableCompress).set("assetModuleFilename", `${applyOpts.staticPathPrefix}[name].[hash:8][ext]`);
107
+ config.resolve.set("symlinks", true).modules.add("node_modules").end().alias.merge(userConfig.alias || {}).end().extensions.merge([
108
+ ".wasm",
109
+ ".mjs",
110
+ ".js",
111
+ ".jsx",
112
+ ".ts",
113
+ ".tsx",
114
+ ".json"
115
+ ]).end();
116
+ config.externals(userConfig.externals || []);
117
+ config.target(["web", "es5"]);
118
+ config.experiments({
119
+ topLevelAwait: true,
120
+ outputModule: !!userConfig.esm
121
+ });
122
+ await (0, import_nodePolyfill.addNodePolyfill)(applyOpts);
123
+ await (0, import_javaScriptRules.addJavaScriptRules)(applyOpts);
124
+ await (0, import_cssRules.addCSSRules)(applyOpts);
125
+ await (0, import_assetRules.addAssetRules)(applyOpts);
126
+ await (0, import_svgRules.addSVGRules)(applyOpts);
127
+ await (0, import_miniCSSExtractPlugin.addMiniCSSExtractPlugin)(applyOpts);
128
+ await (0, import_ignorePlugin.addIgnorePlugin)(applyOpts);
129
+ await (0, import_definePlugin.addDefinePlugin)(applyOpts);
130
+ await (0, import_fastRefreshPlugin.addFastRefreshPlugin)(applyOpts);
131
+ await (0, import_progressPlugin.addProgressPlugin)(applyOpts);
132
+ await (0, import_detectDeadCodePlugin.addDetectDeadCodePlugin)(applyOpts);
133
+ await (0, import_forkTSCheckerPlugin.addForkTSCheckerPlugin)(applyOpts);
134
+ await (0, import_copyPlugin.addCopyPlugin)(applyOpts);
135
+ await (0, import_manifestPlugin.addManifestPlugin)(applyOpts);
136
+ if (isDev && opts.hmr) {
137
+ config.plugin("hmr").use(import_webpack.default.HotModuleReplacementPlugin);
138
+ }
139
+ await (0, import_ssrPlugin.default)(applyOpts);
140
+ await (0, import_compressPlugin.addCompressPlugin)(applyOpts);
141
+ await (0, import_harmonyLinkingErrorPlugin.addHarmonyLinkingErrorPlugin)(applyOpts);
142
+ if (userConfig.runtimePublicPath) {
143
+ config.plugin("runtimePublicPath").use(import_RuntimePublicPathPlugin.RuntimePublicPathPlugin);
144
+ }
145
+ config.plugin("case-sensitive-paths").use(import_case_sensitive_paths_webpack_plugin.default);
146
+ if (opts.cache) {
147
+ config.cache({
148
+ type: "filesystem",
149
+ version: require("../../package.json").version,
150
+ buildDependencies: {
151
+ config: opts.cache.buildDependencies || []
152
+ },
153
+ cacheDirectory: opts.cache.cacheDirectory || (0, import_path.join)(opts.rootDir || opts.cwd, "node_modules", ".cache", "bundler-webpack")
154
+ });
155
+ if (require("@umijs/utils/package").__npminstall_done) {
156
+ const nodeModulesPath = opts.cache.absNodeModulesPath || (0, import_path.join)(opts.rootDir || opts.cwd, "node_modules");
157
+ const localLinkedNodeModules = Object.keys(Object.assign({}, (_a = opts.pkg) == null ? void 0 : _a.dependencies, (_b = opts.pkg) == null ? void 0 : _b.peerDependencies, (_c = opts.pkg) == null ? void 0 : _c.devDependencies)).map((pkg) => {
158
+ try {
159
+ return (0, import_path.resolve)(import_utils.resolve.sync(`${pkg}/package.json`, {
160
+ basedir: opts.rootDir || opts.cwd,
161
+ preserveSymlinks: false
162
+ }), "../node_modules");
163
+ } catch {
164
+ return opts.rootDir || opts.cwd;
185
165
  }
186
- config.infrastructureLogging({
187
- level: 'error',
188
- ...(process.env.WEBPACK_FS_CACHE_DEBUG
189
- ? {
190
- debug: /webpack\.cache/,
191
- }
192
- : {}),
193
- });
194
- }
195
- // analyzer
196
- if (opts.analyze) {
197
- await (0, bundleAnalyzerPlugin_1.addBundleAnalyzerPlugin)(applyOpts);
198
- }
199
- // chain webpack
200
- if (opts.chainWebpack) {
201
- await opts.chainWebpack(config, {
202
- env: opts.env,
203
- webpack: webpack_1.default,
204
- });
205
- }
206
- if (userConfig.chainWebpack) {
207
- await userConfig.chainWebpack(config, {
208
- env: opts.env,
209
- webpack: webpack_1.default,
210
- });
166
+ }).filter((pkg) => !pkg.startsWith(opts.rootDir || opts.cwd));
167
+ if (localLinkedNodeModules.length) {
168
+ import_utils.logger.info(`Detected local linked tnpm node_modules, to avoid oom, they will be treated as immutablePaths & managedPaths in webpack snapshot:`);
169
+ localLinkedNodeModules.forEach((p) => import_utils.logger.info(` ${p}`));
170
+ }
171
+ config.snapshot({
172
+ immutablePaths: [nodeModulesPath, ...localLinkedNodeModules],
173
+ managedPaths: [nodeModulesPath, ...localLinkedNodeModules]
174
+ });
211
175
  }
212
- let webpackConfig = config.toConfig();
213
- // speed measure
214
- // TODO: mini-css-extract-plugin 报错
215
- webpackConfig = await (0, speedMeasureWebpackPlugin_1.addSpeedMeasureWebpackPlugin)({
216
- webpackConfig,
176
+ config.infrastructureLogging(__spreadValues({
177
+ level: "error"
178
+ }, process.env.WEBPACK_FS_CACHE_DEBUG ? {
179
+ debug: /webpack\.cache/
180
+ } : {}));
181
+ }
182
+ if (opts.analyze) {
183
+ await (0, import_bundleAnalyzerPlugin.addBundleAnalyzerPlugin)(applyOpts);
184
+ }
185
+ if (opts.chainWebpack) {
186
+ await opts.chainWebpack(config, {
187
+ env: opts.env,
188
+ webpack: import_webpack.default
217
189
  });
218
- if (opts.modifyWebpackConfig) {
219
- webpackConfig = await opts.modifyWebpackConfig(webpackConfig, {
220
- env: opts.env,
221
- webpack: webpack_1.default,
222
- });
223
- }
224
- return webpackConfig;
190
+ }
191
+ if (userConfig.chainWebpack) {
192
+ await userConfig.chainWebpack(config, {
193
+ env: opts.env,
194
+ webpack: import_webpack.default
195
+ });
196
+ }
197
+ let webpackConfig = config.toConfig();
198
+ webpackConfig = await (0, import_speedMeasureWebpackPlugin.addSpeedMeasureWebpackPlugin)({
199
+ webpackConfig
200
+ });
201
+ if (opts.modifyWebpackConfig) {
202
+ webpackConfig = await opts.modifyWebpackConfig(webpackConfig, {
203
+ env: opts.env,
204
+ webpack: import_webpack.default
205
+ });
206
+ }
207
+ return webpackConfig;
225
208
  }
226
- exports.getConfig = getConfig;
209
+ // Annotate the CommonJS export names for ESM import in node:
210
+ 0 && (module.exports = {
211
+ getConfig
212
+ });
@@ -8,4 +8,3 @@ interface IOpts {
8
8
  }
9
9
  export declare function addCopyPlugin(opts: IOpts): Promise<void>;
10
10
  export {};
11
- //# sourceMappingURL=copyPlugin.d.ts.map
@@ -1,42 +1,61 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addCopyPlugin = void 0;
4
- const fs_1 = require("fs");
5
- const path_1 = require("path");
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/config/copyPlugin.ts
20
+ var copyPlugin_exports = {};
21
+ __export(copyPlugin_exports, {
22
+ addCopyPlugin: () => addCopyPlugin
23
+ });
24
+ module.exports = __toCommonJS(copyPlugin_exports);
25
+ var import_fs = require("fs");
26
+ var import_path = require("path");
6
27
  async function addCopyPlugin(opts) {
7
- var _a;
8
- const { config, userConfig, cwd } = opts;
9
- const copyPatterns = [
10
- (0, fs_1.existsSync)((0, path_1.join)(cwd, 'public')) && {
11
- from: (0, path_1.join)(cwd, 'public'),
12
- // ref: https://github.com/webpack-contrib/copy-webpack-plugin#info
13
- // Set minimized so terser will not do minimize
14
- info: { minimized: true },
15
- },
16
- ...(userConfig.copy
17
- ? (_a = userConfig.copy) === null || _a === void 0 ? void 0 : _a.map((pattern) => {
18
- if (typeof pattern === 'string') {
19
- return {
20
- from: (0, path_1.resolve)(cwd, pattern),
21
- info: { minimized: true },
22
- };
23
- }
24
- return {
25
- from: (0, path_1.resolve)(cwd, pattern.from),
26
- to: (0, path_1.resolve)(cwd, pattern.to),
27
- info: { minimized: true },
28
- };
29
- })
30
- : []),
31
- ].filter(Boolean);
32
- if (copyPatterns.length) {
33
- config
34
- .plugin('copy')
35
- .use(require('@umijs/bundler-webpack/compiled/copy-webpack-plugin'), [
36
- {
37
- patterns: copyPatterns,
38
- },
39
- ]);
40
- }
28
+ var _a;
29
+ const { config, userConfig, cwd } = opts;
30
+ const publicDir = (0, import_path.join)(cwd, "public");
31
+ const copyPatterns = [
32
+ (0, import_fs.existsSync)(publicDir) && (0, import_fs.readdirSync)(publicDir).length && {
33
+ from: publicDir,
34
+ info: { minimized: true }
35
+ },
36
+ ...userConfig.copy ? (_a = userConfig.copy) == null ? void 0 : _a.map((pattern) => {
37
+ if (typeof pattern === "string") {
38
+ return {
39
+ from: (0, import_path.resolve)(cwd, pattern),
40
+ info: { minimized: true }
41
+ };
42
+ }
43
+ return {
44
+ from: (0, import_path.resolve)(cwd, pattern.from),
45
+ to: (0, import_path.resolve)(cwd, pattern.to),
46
+ info: { minimized: true }
47
+ };
48
+ }) : []
49
+ ].filter(Boolean);
50
+ if (copyPatterns.length) {
51
+ config.plugin("copy").use(require("@umijs/bundler-webpack/compiled/copy-webpack-plugin"), [
52
+ {
53
+ patterns: copyPatterns
54
+ }
55
+ ]);
56
+ }
41
57
  }
42
- exports.addCopyPlugin = addCopyPlugin;
58
+ // Annotate the CommonJS export names for ESM import in node:
59
+ 0 && (module.exports = {
60
+ addCopyPlugin
61
+ });
@@ -9,4 +9,3 @@ interface IOpts {
9
9
  }
10
10
  export declare function addCSSRules(opts: IOpts): Promise<void>;
11
11
  export {};
12
- //# sourceMappingURL=cssRules.d.ts.map