@umijs/bundler-webpack 3.5.18 → 4.0.0-beta.2

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 (333) hide show
  1. package/README.md +2 -0
  2. package/bin/bundler-webpack.js +1 -2
  3. package/client/client/client.js +202 -0
  4. package/client/constants.js +12 -0
  5. package/client/utils/formatWebpackMessages.js +92 -0
  6. package/compiled/@svgr/webpack/.svgo.yml +75 -0
  7. package/compiled/@svgr/webpack/LICENSE +7 -0
  8. package/compiled/@svgr/webpack/index.js +343 -0
  9. package/compiled/@svgr/webpack/package.json +1 -0
  10. package/compiled/autoprefixer/LICENSE +20 -0
  11. package/compiled/autoprefixer/browserslist/index.d.ts +172 -0
  12. package/compiled/autoprefixer/index.js +9 -0
  13. package/compiled/autoprefixer/lib/autoprefixer.d.ts +95 -0
  14. package/compiled/autoprefixer/package.json +1 -0
  15. package/compiled/autoprefixer/postcss/lib/at-rule.d.ts +106 -0
  16. package/compiled/autoprefixer/postcss/lib/comment.d.ts +56 -0
  17. package/compiled/autoprefixer/postcss/lib/container.d.ts +442 -0
  18. package/compiled/autoprefixer/postcss/lib/css-syntax-error.d.ts +192 -0
  19. package/compiled/autoprefixer/postcss/lib/declaration.d.ts +124 -0
  20. package/compiled/autoprefixer/postcss/lib/document.d.ts +57 -0
  21. package/compiled/autoprefixer/postcss/lib/input.d.ts +130 -0
  22. package/compiled/autoprefixer/postcss/lib/lazy-result.d.ts +175 -0
  23. package/compiled/autoprefixer/postcss/lib/list.d.ts +51 -0
  24. package/compiled/autoprefixer/postcss/lib/node.d.ts +444 -0
  25. package/compiled/autoprefixer/postcss/lib/postcss.d.ts +472 -0
  26. package/compiled/autoprefixer/postcss/lib/previous-map.d.ts +72 -0
  27. package/compiled/autoprefixer/postcss/lib/processor.d.ts +101 -0
  28. package/compiled/autoprefixer/postcss/lib/result.d.ts +195 -0
  29. package/compiled/autoprefixer/postcss/lib/root.d.ts +73 -0
  30. package/compiled/autoprefixer/postcss/lib/rule.d.ts +104 -0
  31. package/compiled/autoprefixer/postcss/lib/warning.d.ts +104 -0
  32. package/compiled/autoprefixer/source-map-js/source-map.d.ts +98 -0
  33. package/compiled/babel-loader/LICENSE +22 -0
  34. package/compiled/babel-loader/index.js +3 -0
  35. package/compiled/babel-loader/package.json +1 -0
  36. package/compiled/compression/LICENSE +23 -0
  37. package/compiled/compression/index.js +57 -0
  38. package/compiled/compression/package.json +1 -0
  39. package/compiled/connect-history-api-fallback/LICENSE +21 -0
  40. package/compiled/connect-history-api-fallback/index.js +1 -0
  41. package/compiled/connect-history-api-fallback/package.json +1 -0
  42. package/{lib/webpack/plugins/mini-css-extract-plugin → compiled/copy-webpack-plugin}/LICENSE +0 -0
  43. package/compiled/copy-webpack-plugin/index.js +46 -0
  44. package/compiled/copy-webpack-plugin/package.json +1 -0
  45. package/{lib/webpack/plugins/terser-webpack-plugin → compiled/css-loader}/LICENSE +0 -0
  46. package/compiled/css-loader/api.js +102 -0
  47. package/compiled/css-loader/getUrl.js +29 -0
  48. package/compiled/css-loader/index.js +2 -0
  49. package/compiled/css-loader/noSourceMaps.js +5 -0
  50. package/compiled/css-loader/package.json +1 -0
  51. package/compiled/css-loader/sourceMaps.js +22 -0
  52. package/compiled/css-minimizer-webpack-plugin/LICENSE +20 -0
  53. package/compiled/css-minimizer-webpack-plugin/index.js +3 -0
  54. package/compiled/css-minimizer-webpack-plugin/minify.js +72 -0
  55. package/compiled/css-minimizer-webpack-plugin/package.json +1 -0
  56. package/compiled/css-minimizer-webpack-plugin/utils.js +166 -0
  57. package/compiled/cssnano/index.js +192 -0
  58. package/compiled/cssnano/package.json +1 -0
  59. package/compiled/express/LICENSE +24 -0
  60. package/compiled/express/body-parser/index.d.ts +104 -0
  61. package/compiled/express/connect/index.d.ts +93 -0
  62. package/compiled/express/express-serve-static-core/index.d.ts +1252 -0
  63. package/compiled/express/index.d.ts +133 -0
  64. package/compiled/express/index.js +338 -0
  65. package/compiled/express/mime/index.d.ts +35 -0
  66. package/compiled/express/package.json +1 -0
  67. package/compiled/express/qs/index.d.ts +62 -0
  68. package/compiled/express/range-parser/index.d.ts +35 -0
  69. package/compiled/express/serve-static/index.d.ts +108 -0
  70. package/compiled/http-proxy-middleware/LICENSE +22 -0
  71. package/compiled/http-proxy-middleware/dist/index.d.ts +4 -0
  72. package/compiled/http-proxy-middleware/dist/types.d.ts +54 -0
  73. package/compiled/http-proxy-middleware/http-proxy/index.d.ts +226 -0
  74. package/compiled/http-proxy-middleware/index.js +66 -0
  75. package/compiled/http-proxy-middleware/package.json +1 -0
  76. package/compiled/less/index.js +31 -0
  77. package/compiled/less/package.json +1 -0
  78. package/compiled/less-loader/LICENSE +20 -0
  79. package/compiled/less-loader/index.js +1 -0
  80. package/compiled/less-loader/package.json +1 -0
  81. package/compiled/mini-css-extract-plugin/LICENSE +20 -0
  82. package/{lib/webpack/plugins/mini-css-extract-plugin/src → compiled/mini-css-extract-plugin}/hmr/hotModuleReplacement.js +50 -52
  83. package/compiled/mini-css-extract-plugin/hmr/normalize-url.js +35 -0
  84. package/compiled/mini-css-extract-plugin/index.js +11606 -0
  85. package/compiled/mini-css-extract-plugin/loader-options.json +32 -0
  86. package/compiled/mini-css-extract-plugin/loader.js +315 -0
  87. package/compiled/mini-css-extract-plugin/package.json +1 -0
  88. package/compiled/mini-css-extract-plugin/utils.js +154 -0
  89. package/compiled/postcss-flexbugs-fixes/LICENSE +20 -0
  90. package/compiled/postcss-flexbugs-fixes/index.js +1 -0
  91. package/compiled/postcss-flexbugs-fixes/package.json +1 -0
  92. package/compiled/postcss-loader/LICENSE +20 -0
  93. package/compiled/postcss-loader/index.js +1 -0
  94. package/compiled/postcss-loader/package.json +1 -0
  95. package/compiled/purgecss-webpack-plugin/LICENSE +21 -0
  96. package/compiled/purgecss-webpack-plugin/index.js +7781 -0
  97. package/compiled/purgecss-webpack-plugin/package.json +1 -0
  98. package/compiled/react-refresh/index.js +19 -0
  99. package/compiled/sass-loader/LICENSE +20 -0
  100. package/compiled/sass-loader/index.js +1 -0
  101. package/compiled/sass-loader/package.json +1 -0
  102. package/compiled/schema-utils/LICENSE +20 -0
  103. package/compiled/schema-utils/ajv/lib/ajv.d.ts +397 -0
  104. package/compiled/schema-utils/declarations/ValidationError.d.ts +74 -0
  105. package/compiled/schema-utils/declarations/index.d.ts +3 -0
  106. package/compiled/schema-utils/declarations/validate.d.ts +37 -0
  107. package/compiled/schema-utils/index.js +3 -0
  108. package/compiled/schema-utils/json-schema/index.d.ts +751 -0
  109. package/compiled/schema-utils/package.json +1 -0
  110. package/compiled/speed-measure-webpack-plugin/LICENSE +21 -0
  111. package/compiled/speed-measure-webpack-plugin/index.js +1 -0
  112. package/compiled/speed-measure-webpack-plugin/package.json +1 -0
  113. package/compiled/style-loader/LICENSE +20 -0
  114. package/compiled/style-loader/index.js +1 -0
  115. package/compiled/style-loader/package.json +1 -0
  116. package/compiled/style-loader/runtime/injectStylesIntoLinkTag.js +29 -0
  117. package/compiled/style-loader/runtime/injectStylesIntoStyleTag.js +104 -0
  118. package/compiled/style-loader/runtime/insertBySelector.js +39 -0
  119. package/compiled/style-loader/runtime/insertStyleElement.js +11 -0
  120. package/compiled/style-loader/runtime/isEqualLocals.js +35 -0
  121. package/compiled/style-loader/runtime/isOldIE.js +19 -0
  122. package/compiled/style-loader/runtime/setAttributesWithAttributes.js +16 -0
  123. package/compiled/style-loader/runtime/setAttributesWithAttributesAndNonce.js +10 -0
  124. package/compiled/style-loader/runtime/setAttributesWithoutAttributes.js +12 -0
  125. package/compiled/style-loader/runtime/singletonStyleDomAPI.js +93 -0
  126. package/compiled/style-loader/runtime/styleDomAPI.js +70 -0
  127. package/compiled/style-loader/runtime/styleTagTransform.js +16 -0
  128. package/compiled/svgo-loader/LICENSE +22 -0
  129. package/compiled/svgo-loader/index.js +4 -0
  130. package/compiled/svgo-loader/package.json +1 -0
  131. package/compiled/swc-loader/LICENSE +25 -0
  132. package/compiled/swc-loader/index.js +1 -0
  133. package/compiled/swc-loader/package.json +1 -0
  134. package/compiled/tapable/LICENSE +21 -0
  135. package/compiled/tapable/index.js +1 -0
  136. package/compiled/tapable/package.json +1 -0
  137. package/compiled/tapable/tapable.d.ts +116 -0
  138. package/compiled/terser/LICENSE +29 -0
  139. package/compiled/terser/index.js +1 -0
  140. package/compiled/terser/mappings.wasm +0 -0
  141. package/compiled/terser/package.json +1 -0
  142. package/compiled/terser/source-map/source-map.d.ts +369 -0
  143. package/compiled/terser/tools/terser.d.ts +207 -0
  144. package/compiled/terser-webpack-plugin/LICENSE +20 -0
  145. package/compiled/terser-webpack-plugin/ajv/lib/ajv.d.ts +397 -0
  146. package/compiled/terser-webpack-plugin/index.js +15142 -0
  147. package/compiled/terser-webpack-plugin/jest-worker/build/index.d.ts +49 -0
  148. package/compiled/terser-webpack-plugin/jest-worker/build/types.d.ts +142 -0
  149. package/compiled/terser-webpack-plugin/json-schema/index.d.ts +751 -0
  150. package/compiled/terser-webpack-plugin/minify.js +43 -0
  151. package/compiled/terser-webpack-plugin/package.json +1 -0
  152. package/compiled/terser-webpack-plugin/schema-utils/declarations/ValidationError.d.ts +74 -0
  153. package/compiled/terser-webpack-plugin/schema-utils/declarations/index.d.ts +3 -0
  154. package/compiled/terser-webpack-plugin/schema-utils/declarations/validate.d.ts +37 -0
  155. package/compiled/terser-webpack-plugin/source-map/source-map.d.ts +98 -0
  156. package/compiled/terser-webpack-plugin/types/cjs.d.ts +3 -0
  157. package/compiled/terser-webpack-plugin/types/index.d.ts +295 -0
  158. package/compiled/terser-webpack-plugin/types/utils.d.ts +105 -0
  159. package/compiled/terser-webpack-plugin/utils.js +594 -0
  160. package/compiled/url-loader/LICENSE +20 -0
  161. package/compiled/url-loader/index.js +15 -0
  162. package/compiled/url-loader/package.json +1 -0
  163. package/compiled/webpack/Chunk.js +1 -0
  164. package/compiled/webpack/Compilation.js +1 -0
  165. package/compiled/webpack/HotModuleReplacement.runtime.js +394 -0
  166. package/compiled/webpack/JavascriptHotModuleReplacement.runtime.js +462 -0
  167. package/compiled/webpack/LICENSE +20 -0
  168. package/compiled/webpack/LibraryTemplatePlugin.js +1 -0
  169. package/compiled/webpack/LoaderTargetPlugin.js +1 -0
  170. package/compiled/webpack/ModuleFilenameHelpers.js +1 -0
  171. package/compiled/webpack/NormalModule.js +1 -0
  172. package/compiled/webpack/RuntimeGlobals.js +1 -0
  173. package/compiled/webpack/RuntimeModule.js +1 -0
  174. package/compiled/webpack/SingleEntryPlugin.js +1 -0
  175. package/compiled/webpack/Template.js +1 -0
  176. package/compiled/webpack/ajv/lib/ajv.d.ts +397 -0
  177. package/compiled/webpack/deepImports.json +12 -0
  178. package/compiled/webpack/index.js +162861 -0
  179. package/compiled/webpack/json-schema/index.d.ts +751 -0
  180. package/compiled/webpack/lazy-compilation-node.js +40 -0
  181. package/compiled/webpack/lazy-compilation-web.js +74 -0
  182. package/compiled/webpack/package.json +5 -0
  183. package/compiled/webpack/schema-utils/declarations/ValidationError.d.ts +74 -0
  184. package/compiled/webpack/schema-utils/declarations/index.d.ts +3 -0
  185. package/compiled/webpack/schema-utils/declarations/validate.d.ts +37 -0
  186. package/compiled/webpack/types.d.ts +12664 -0
  187. package/compiled/webpack-5-chain/LICENSE +373 -0
  188. package/compiled/webpack-5-chain/index.js +1 -0
  189. package/compiled/webpack-5-chain/package.json +1 -0
  190. package/compiled/webpack-5-chain/types/index.d.ts +543 -0
  191. package/compiled/webpack-bundle-analyzer/LICENSE +20 -0
  192. package/compiled/webpack-bundle-analyzer/index.js +30 -0
  193. package/compiled/webpack-bundle-analyzer/package.json +1 -0
  194. package/compiled/webpack-bundle-analyzer/public/viewer.js +16 -0
  195. package/compiled/webpack-bundle-analyzer/public/viewer.js.LICENSE.txt +10 -0
  196. package/compiled/webpack-bundle-analyzer/public/viewer.js.map +1 -0
  197. package/compiled/webpack-dev-middleware/LICENSE +20 -0
  198. package/compiled/webpack-dev-middleware/index.js +21 -0
  199. package/compiled/webpack-dev-middleware/package.json +1 -0
  200. package/compiled/webpack-sources/LICENSE +21 -0
  201. package/compiled/webpack-sources/index.d.ts +20 -0
  202. package/compiled/webpack-sources/index.js +1 -0
  203. package/compiled/webpack-sources/lib/CachedSource.d.ts +18 -0
  204. package/compiled/webpack-sources/lib/CompatSource.d.ts +9 -0
  205. package/compiled/webpack-sources/lib/ConcatSource.d.ts +22 -0
  206. package/compiled/webpack-sources/lib/OriginalSource.d.ts +18 -0
  207. package/compiled/webpack-sources/lib/PrefixSource.d.ts +12 -0
  208. package/compiled/webpack-sources/lib/RawSource.d.ts +13 -0
  209. package/compiled/webpack-sources/lib/ReplaceSource.d.ts +35 -0
  210. package/compiled/webpack-sources/lib/SizeOnlySource.d.ts +7 -0
  211. package/compiled/webpack-sources/lib/Source.d.ts +45 -0
  212. package/compiled/webpack-sources/lib/SourceMapSource.d.ts +22 -0
  213. package/compiled/webpack-sources/lib/index.d.ts +60 -0
  214. package/compiled/webpack-sources/package.json +1 -0
  215. package/compiled/webpack-sources/source-list-map/index.d.ts +91 -0
  216. package/compiled/webpack-sources/source-map/source-map.d.ts +369 -0
  217. package/compiled/ws/LICENSE +19 -0
  218. package/compiled/ws/index.d.ts +359 -0
  219. package/compiled/ws/index.js +1 -0
  220. package/compiled/ws/package.json +1 -0
  221. package/dist/build.d.ts +16 -0
  222. package/dist/build.js +71 -0
  223. package/{lib → dist}/cli.d.ts +0 -0
  224. package/dist/cli.js +113 -0
  225. package/{lib/webpackHotDevClient/webpackHotDevClient.d.ts → dist/client/client.d.ts} +0 -0
  226. package/dist/client/client.js +239 -0
  227. package/dist/config/_sampleFeature.d.ts +10 -0
  228. package/dist/config/_sampleFeature.js +22 -0
  229. package/dist/config/assetRules.d.ts +11 -0
  230. package/dist/config/assetRules.js +57 -0
  231. package/dist/config/bundleAnalyzerPlugin.d.ts +10 -0
  232. package/dist/config/bundleAnalyzerPlugin.js +30 -0
  233. package/dist/config/compressPlugin.d.ts +10 -0
  234. package/dist/config/compressPlugin.js +77 -0
  235. package/dist/config/config.d.ts +19 -0
  236. package/dist/config/config.js +171 -0
  237. package/dist/config/copyPlugin.d.ts +10 -0
  238. package/dist/config/copyPlugin.js +49 -0
  239. package/dist/config/cssRules.d.ts +11 -0
  240. package/dist/config/cssRules.js +98 -0
  241. package/dist/config/definePlugin.d.ts +15 -0
  242. package/dist/config/definePlugin.js +45 -0
  243. package/dist/config/fastRefreshPlugin.d.ts +12 -0
  244. package/dist/config/fastRefreshPlugin.js +34 -0
  245. package/dist/config/ignorePlugin.d.ts +10 -0
  246. package/dist/config/ignorePlugin.js +27 -0
  247. package/dist/config/javaScriptRules.d.ts +14 -0
  248. package/dist/config/javaScriptRules.js +150 -0
  249. package/dist/config/miniCSSExtractPlugin.d.ts +10 -0
  250. package/dist/config/miniCSSExtractPlugin.js +34 -0
  251. package/dist/config/nodePolyfill.d.ts +10 -0
  252. package/dist/config/nodePolyfill.js +34 -0
  253. package/dist/config/progressPlugin.d.ts +11 -0
  254. package/dist/config/progressPlugin.js +27 -0
  255. package/dist/config/purgecssWebpackPlugin.d.ts +10 -0
  256. package/dist/config/purgecssWebpackPlugin.js +32 -0
  257. package/dist/config/speedMeasureWebpackPlugin.d.ts +6 -0
  258. package/dist/config/speedMeasureWebpackPlugin.js +34 -0
  259. package/dist/config/svgRules.d.ts +11 -0
  260. package/dist/config/svgRules.js +56 -0
  261. package/dist/constants.d.ts +11 -0
  262. package/dist/constants.js +15 -0
  263. package/dist/dev.d.ts +18 -0
  264. package/dist/dev.js +80 -0
  265. package/dist/index.d.ts +5 -0
  266. package/dist/index.js +16 -0
  267. package/dist/plugins/ESBuildCSSMinifyPlugin.d.ts +11 -0
  268. package/dist/plugins/ESBuildCSSMinifyPlugin.js +65 -0
  269. package/dist/plugins/ProgressPlugin.d.ts +15 -0
  270. package/dist/plugins/ProgressPlugin.js +44 -0
  271. package/dist/plugins/_SamplePlugin.d.ts +9 -0
  272. package/dist/plugins/_SamplePlugin.js +14 -0
  273. package/dist/requireHook.d.ts +1 -0
  274. package/dist/requireHook.js +31 -0
  275. package/dist/schema.d.ts +3 -0
  276. package/dist/schema.js +68 -0
  277. package/dist/server/server.d.ts +16 -0
  278. package/dist/server/server.js +157 -0
  279. package/dist/server/ws.d.ts +8 -0
  280. package/dist/server/ws.js +42 -0
  281. package/dist/types.d.ts +97 -0
  282. package/dist/types.js +29 -0
  283. package/dist/utils/browsersList.d.ts +5 -0
  284. package/dist/utils/browsersList.js +10 -0
  285. package/dist/utils/depMatch.d.ts +6 -0
  286. package/dist/utils/depMatch.js +46 -0
  287. package/dist/utils/formatWebpackMessages.d.ts +12 -0
  288. package/dist/utils/formatWebpackMessages.js +100 -0
  289. package/package.json +163 -35
  290. package/bundled/css/hotModuleReplacement.js +0 -1203
  291. package/bundled/js/webpackHotDevClient.js +0 -13386
  292. package/lib/DevCompileDonePlugin.d.ts +0 -10
  293. package/lib/DevCompileDonePlugin.js +0 -53
  294. package/lib/cli.js +0 -184
  295. package/lib/getConfig/css.d.ts +0 -22
  296. package/lib/getConfig/css.js +0 -186
  297. package/lib/getConfig/getConfig.d.ts +0 -26
  298. package/lib/getConfig/getConfig.js +0 -578
  299. package/lib/getConfig/nodeModulesTransform.d.ts +0 -13
  300. package/lib/getConfig/nodeModulesTransform.js +0 -141
  301. package/lib/getConfig/pkgMatch.d.ts +0 -2
  302. package/lib/getConfig/pkgMatch.js +0 -58
  303. package/lib/getConfig/resolveDefine.d.ts +0 -5
  304. package/lib/getConfig/resolveDefine.js +0 -53
  305. package/lib/getConfig/runtimePublicPathEntry.d.ts +0 -1
  306. package/lib/getConfig/runtimePublicPathEntry.js +0 -3
  307. package/lib/getConfig/terserOptions.d.ts +0 -41
  308. package/lib/getConfig/terserOptions.js +0 -64
  309. package/lib/index.d.ts +0 -34
  310. package/lib/index.js +0 -314
  311. package/lib/requireHook.d.ts +0 -3
  312. package/lib/requireHook.js +0 -51
  313. package/lib/webpack/plugins/mini-css-extract-plugin/src/CssDependency.js +0 -94
  314. package/lib/webpack/plugins/mini-css-extract-plugin/src/CssDependencyTemplate.js +0 -26
  315. package/lib/webpack/plugins/mini-css-extract-plugin/src/CssLoadingRuntimeModule.js +0 -93
  316. package/lib/webpack/plugins/mini-css-extract-plugin/src/CssModule.js +0 -164
  317. package/lib/webpack/plugins/mini-css-extract-plugin/src/CssModuleFactory.js +0 -32
  318. package/lib/webpack/plugins/mini-css-extract-plugin/src/cjs.js +0 -15
  319. package/lib/webpack/plugins/mini-css-extract-plugin/src/index.js +0 -542
  320. package/lib/webpack/plugins/mini-css-extract-plugin/src/loader.js +0 -319
  321. package/lib/webpack/plugins/mini-css-extract-plugin/src/utils.js +0 -97
  322. package/lib/webpack/plugins/mini-css-extract-plugin.d.ts +0 -1
  323. package/lib/webpack/plugins/mini-css-extract-plugin.js +0 -15
  324. package/lib/webpack/plugins/terser-webpack-plugin/package.json +0 -3
  325. package/lib/webpack/plugins/terser-webpack-plugin/src/Webpack4Cache.js +0 -187
  326. package/lib/webpack/plugins/terser-webpack-plugin/src/Webpack5Cache.js +0 -61
  327. package/lib/webpack/plugins/terser-webpack-plugin/src/index.js +0 -683
  328. package/lib/webpack/plugins/terser-webpack-plugin/src/minify.js +0 -197
  329. package/lib/webpack/plugins/terser-webpack-plugin.d.ts +0 -1
  330. package/lib/webpack/plugins/terser-webpack-plugin.js +0 -15
  331. package/lib/webpackHotDevClient/formatWebpackMessages.d.ts +0 -11
  332. package/lib/webpackHotDevClient/formatWebpackMessages.js +0 -127
  333. package/lib/webpackHotDevClient/webpackHotDevClient.js +0 -311
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.getConfig = void 0;
16
+ const path_1 = require("path");
17
+ const webpack_1 = __importDefault(require("../../compiled/webpack"));
18
+ const webpack_5_chain_1 = __importDefault(require("../../compiled/webpack-5-chain"));
19
+ const constants_1 = require("../constants");
20
+ const types_1 = require("../types");
21
+ const browsersList_1 = require("../utils/browsersList");
22
+ const assetRules_1 = require("./assetRules");
23
+ const bundleAnalyzerPlugin_1 = require("./bundleAnalyzerPlugin");
24
+ const compressPlugin_1 = require("./compressPlugin");
25
+ const copyPlugin_1 = require("./copyPlugin");
26
+ const cssRules_1 = require("./cssRules");
27
+ const definePlugin_1 = require("./definePlugin");
28
+ const fastRefreshPlugin_1 = require("./fastRefreshPlugin");
29
+ const ignorePlugin_1 = require("./ignorePlugin");
30
+ const javaScriptRules_1 = require("./javaScriptRules");
31
+ const miniCSSExtractPlugin_1 = require("./miniCSSExtractPlugin");
32
+ const nodePolyfill_1 = require("./nodePolyfill");
33
+ const progressPlugin_1 = require("./progressPlugin");
34
+ const speedMeasureWebpackPlugin_1 = require("./speedMeasureWebpackPlugin");
35
+ const svgRules_1 = require("./svgRules");
36
+ function getConfig(opts) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ const { userConfig } = opts;
39
+ const isDev = opts.env === types_1.Env.development;
40
+ const config = new webpack_5_chain_1.default();
41
+ userConfig.targets = userConfig.targets || {
42
+ chrome: 80,
43
+ };
44
+ const applyOpts = {
45
+ name: opts.name,
46
+ config,
47
+ userConfig,
48
+ cwd: opts.cwd,
49
+ env: opts.env,
50
+ babelPreset: opts.babelPreset,
51
+ extraBabelPlugins: opts.extraBabelPlugins || [],
52
+ extraBabelPresets: opts.extraBabelPresets || [],
53
+ browsers: (0, browsersList_1.getBrowsersList)({
54
+ targets: userConfig.targets,
55
+ }),
56
+ staticPathPrefix: opts.staticPathPrefix !== undefined ? opts.staticPathPrefix : 'static/',
57
+ };
58
+ // mode
59
+ config.mode(opts.env);
60
+ config.stats('none');
61
+ // entry
62
+ Object.keys(opts.entry).forEach((key) => {
63
+ const entry = config.entry(key);
64
+ // TODO: runtimePublicPath
65
+ if (isDev && opts.hmr) {
66
+ entry.add(require.resolve('../../client/client/client'));
67
+ }
68
+ entry.add(opts.entry[key]);
69
+ });
70
+ // devtool
71
+ config.devtool(isDev
72
+ ? userConfig.devtool === false
73
+ ? false
74
+ : userConfig.devtool || constants_1.DEFAULT_DEVTOOL
75
+ : userConfig.devtool);
76
+ // output
77
+ const absOutputPath = (0, path_1.join)(opts.cwd, userConfig.outputPath || constants_1.DEFAULT_OUTPUT_PATH);
78
+ const useHash = opts.hash || (userConfig.hash && !isDev);
79
+ const disableCompress = process.env.COMPRESS === 'none';
80
+ config.output
81
+ .path(absOutputPath)
82
+ .filename(useHash ? `[name].[contenthash:8].js` : `[name].js`)
83
+ .chunkFilename(useHash ? `[name].[contenthash:8].async.js` : `[name].js`)
84
+ .publicPath(userConfig.publicPath || '/')
85
+ .pathinfo(isDev || disableCompress);
86
+ // resolve
87
+ // prettier-ignore
88
+ config.resolve
89
+ .set('symlinks', true)
90
+ .modules
91
+ .add('node_modules')
92
+ .end()
93
+ .alias
94
+ .merge(userConfig.alias || {})
95
+ .end()
96
+ .extensions
97
+ .merge([
98
+ '.wasm',
99
+ '.mjs',
100
+ '.js',
101
+ '.jsx',
102
+ '.ts',
103
+ '.tsx',
104
+ '.json'
105
+ ])
106
+ .end();
107
+ // externals
108
+ config.externals(userConfig.externals || []);
109
+ // target
110
+ config.target(['web', 'es5']);
111
+ // experiments
112
+ config.experiments({
113
+ topLevelAwait: true,
114
+ });
115
+ // node polyfill
116
+ yield (0, nodePolyfill_1.addNodePolyfill)(applyOpts);
117
+ // rules
118
+ yield (0, javaScriptRules_1.addJavaScriptRules)(applyOpts);
119
+ yield (0, cssRules_1.addCSSRules)(applyOpts);
120
+ yield (0, assetRules_1.addAssetRules)(applyOpts);
121
+ yield (0, svgRules_1.addSVGRules)(applyOpts);
122
+ // plugins
123
+ // mini-css-extract-plugin
124
+ yield (0, miniCSSExtractPlugin_1.addMiniCSSExtractPlugin)(applyOpts);
125
+ // ignoreMomentLocale
126
+ yield (0, ignorePlugin_1.addIgnorePlugin)(applyOpts);
127
+ // define
128
+ yield (0, definePlugin_1.addDefinePlugin)(applyOpts);
129
+ // fast refresh
130
+ yield (0, fastRefreshPlugin_1.addFastRefreshPlugin)(applyOpts);
131
+ // progress
132
+ yield (0, progressPlugin_1.addProgressPlugin)(applyOpts);
133
+ // copy
134
+ yield (0, copyPlugin_1.addCopyPlugin)(applyOpts);
135
+ // TODO: friendly-error
136
+ // TODO: manifest
137
+ // hmr
138
+ if (isDev && opts.hmr) {
139
+ config.plugin('hmr').use(webpack_1.default.HotModuleReplacementPlugin);
140
+ }
141
+ // compress
142
+ yield (0, compressPlugin_1.addCompressPlugin)(applyOpts);
143
+ // purgecss
144
+ // await applyPurgeCSSWebpackPlugin(applyOpts);
145
+ // analyzer
146
+ if (opts.analyze) {
147
+ yield (0, bundleAnalyzerPlugin_1.addBundleAnalyzerPlugin)(applyOpts);
148
+ }
149
+ // chain webpack
150
+ if (opts.chainWebpack) {
151
+ yield opts.chainWebpack(config, {
152
+ env: opts.env,
153
+ webpack: webpack_1.default,
154
+ });
155
+ }
156
+ if (userConfig.chainWebpack) {
157
+ yield userConfig.chainWebpack(config, {
158
+ env: opts.env,
159
+ webpack: webpack_1.default,
160
+ });
161
+ }
162
+ let webpackConfig = config.toConfig();
163
+ // speed measure
164
+ // TODO: mini-css-extract-plugin 报错
165
+ webpackConfig = yield (0, speedMeasureWebpackPlugin_1.addSpeedMeasureWebpackPlugin)({
166
+ webpackConfig,
167
+ });
168
+ return webpackConfig;
169
+ });
170
+ }
171
+ exports.getConfig = getConfig;
@@ -0,0 +1,10 @@
1
+ import Config from '@umijs/bundler-webpack/compiled/webpack-5-chain';
2
+ import { Env, IConfig } from '../types';
3
+ interface IOpts {
4
+ config: Config;
5
+ userConfig: IConfig;
6
+ cwd: string;
7
+ env: Env;
8
+ }
9
+ export declare function addCopyPlugin(opts: IOpts): Promise<void>;
10
+ export {};
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.addCopyPlugin = void 0;
13
+ const fs_1 = require("fs");
14
+ const path_1 = require("path");
15
+ function addCopyPlugin(opts) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ const { config, userConfig, cwd } = opts;
18
+ const copyPatterns = [
19
+ (0, fs_1.existsSync)((0, path_1.join)(cwd, 'public')) && {
20
+ from: (0, path_1.join)(cwd, 'public'),
21
+ },
22
+ ...(userConfig.copy
23
+ ? userConfig.copy.map((item) => {
24
+ if (typeof item === 'string') {
25
+ return {
26
+ from: (0, path_1.join)(cwd, item),
27
+ to: item,
28
+ };
29
+ }
30
+ return {
31
+ // 相对于 process.cwd,所以这里需要使用绝对路径
32
+ from: (0, path_1.join)(cwd, item.from),
33
+ to: item.to,
34
+ };
35
+ })
36
+ : []),
37
+ ].filter(Boolean);
38
+ if (copyPatterns.length) {
39
+ config
40
+ .plugin('copy')
41
+ .use(require('@umijs/bundler-webpack/compiled/copy-webpack-plugin'), [
42
+ {
43
+ patterns: copyPatterns,
44
+ },
45
+ ]);
46
+ }
47
+ });
48
+ }
49
+ exports.addCopyPlugin = addCopyPlugin;
@@ -0,0 +1,11 @@
1
+ import Config from '@umijs/bundler-webpack/compiled/webpack-5-chain';
2
+ import { Env, IConfig } from '../types';
3
+ interface IOpts {
4
+ config: Config;
5
+ userConfig: IConfig;
6
+ cwd: string;
7
+ env: Env;
8
+ browsers: any;
9
+ }
10
+ export declare function addCSSRules(opts: IOpts): Promise<void>;
11
+ export {};
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.addCSSRules = void 0;
13
+ function addCSSRules(opts) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ const { config, userConfig } = opts;
16
+ const rulesConfig = [
17
+ { name: 'css', test: /\.css(\?.*)?$/ },
18
+ {
19
+ name: 'less',
20
+ test: /\.less(\?.*)?$/,
21
+ loader: require.resolve('@umijs/bundler-webpack/compiled/less-loader'),
22
+ loaderOptions: {
23
+ implementation: require.resolve('@umijs/bundler-webpack/compiled/less'),
24
+ lessOptions: Object.assign({ modifyVars: userConfig.theme, javascriptEnabled: true }, userConfig.lessLoader),
25
+ },
26
+ },
27
+ {
28
+ name: 'sass',
29
+ test: /\.(sass|scss)(\?.*)?$/,
30
+ loader: require.resolve('@umijs/bundler-webpack/compiled/sass-loader'),
31
+ loaderOptions: userConfig.sassLoader || {},
32
+ },
33
+ ];
34
+ for (const { name, test, loader, loaderOptions } of rulesConfig) {
35
+ const rule = config.module.rule(name);
36
+ const nestRulesConfig = [
37
+ userConfig.autoCSSModules && {
38
+ rule: rule
39
+ .test(test)
40
+ .oneOf('css-modules')
41
+ .resourceQuery(/modules/),
42
+ isCSSModules: true,
43
+ },
44
+ {
45
+ rule: rule.test(test).oneOf('css').sideEffects(true),
46
+ isCSSModules: false,
47
+ },
48
+ ].filter(Boolean);
49
+ // @ts-ignore
50
+ for (const { rule, isCSSModules } of nestRulesConfig) {
51
+ if (userConfig.styleLoader) {
52
+ rule
53
+ .use('style-loader')
54
+ .loader(require.resolve('@umijs/bundler-webpack/compiled/style-loader'))
55
+ .options(Object.assign({ base: 0, esModule: true }, userConfig.styleLoader));
56
+ }
57
+ else {
58
+ rule
59
+ .use('mini-css-extract-plugin-loader')
60
+ .loader(require.resolve('@umijs/bundler-webpack/compiled/mini-css-extract-plugin/loader'))
61
+ .options({
62
+ publicPath: './',
63
+ emit: true,
64
+ esModule: true,
65
+ });
66
+ }
67
+ rule
68
+ .use('css-loader')
69
+ .loader(require.resolve('css-loader'))
70
+ .options(Object.assign(Object.assign({ importLoaders: 1, esModule: true, url: true, import: true }, (isCSSModules
71
+ ? {
72
+ modules: Object.assign({ localIdentName: '[local]___[hash:base64:5]' }, userConfig.cssLoaderModules),
73
+ }
74
+ : {})), userConfig.cssLoader));
75
+ rule
76
+ .use('postcss-loader')
77
+ .loader(require.resolve('@umijs/bundler-webpack/compiled/postcss-loader'))
78
+ .options({
79
+ postcssOptions: Object.assign({ ident: 'postcss', plugins: [
80
+ require('@umijs/bundler-webpack/compiled/postcss-flexbugs-fixes'),
81
+ require('postcss-preset-env')({
82
+ browsers: opts.browsers,
83
+ autoprefixer: Object.assign({ flexbox: 'no-2009' }, userConfig.autoprefixer),
84
+ stage: 3,
85
+ }),
86
+ ].concat(userConfig.extraPostCSSPlugins || []) }, userConfig.postcssLoader),
87
+ });
88
+ if (loader) {
89
+ rule
90
+ .use(loader)
91
+ .loader(typeof loader === 'string' ? require.resolve(loader) : loader)
92
+ .options(loaderOptions || {});
93
+ }
94
+ }
95
+ }
96
+ });
97
+ }
98
+ exports.addCSSRules = addCSSRules;
@@ -0,0 +1,15 @@
1
+ import Config from '@umijs/bundler-webpack/compiled/webpack-5-chain';
2
+ import { Env, IConfig } from '../types';
3
+ interface IOpts {
4
+ config: Config;
5
+ userConfig: IConfig;
6
+ cwd: string;
7
+ env: Env;
8
+ }
9
+ export declare function resolveDefine(opts: {
10
+ define: any;
11
+ }): {
12
+ 'process.env': Record<string, any>;
13
+ };
14
+ export declare function addDefinePlugin(opts: IOpts): Promise<void>;
15
+ export {};
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.addDefinePlugin = exports.resolveDefine = void 0;
13
+ const webpack_1 = require("@umijs/bundler-webpack/compiled/webpack");
14
+ const prefixRE = /^UMI_APP_/;
15
+ const ENV_SHOULD_PASS = ['NODE_ENV', 'HMR', 'SOCKET_SERVER', 'ERROR_OVERLAY'];
16
+ function resolveDefine(opts) {
17
+ const env = {};
18
+ Object.keys(process.env).forEach((key) => {
19
+ if (prefixRE.test(key) || ENV_SHOULD_PASS.includes(key)) {
20
+ env[key] = process.env[key];
21
+ }
22
+ });
23
+ for (const key in env) {
24
+ env[key] = JSON.stringify(env[key]);
25
+ }
26
+ const define = {};
27
+ if (opts.define) {
28
+ for (const key in opts.define) {
29
+ define[key] = JSON.stringify(opts.define[key]);
30
+ }
31
+ }
32
+ return Object.assign({ 'process.env': env }, define);
33
+ }
34
+ exports.resolveDefine = resolveDefine;
35
+ function addDefinePlugin(opts) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ const { config, userConfig } = opts;
38
+ config.plugin('define').use(webpack_1.DefinePlugin, [
39
+ resolveDefine({
40
+ define: userConfig.define || {},
41
+ }),
42
+ ]);
43
+ });
44
+ }
45
+ exports.addDefinePlugin = addDefinePlugin;
@@ -0,0 +1,12 @@
1
+ import Config from '@umijs/bundler-webpack/compiled/webpack-5-chain';
2
+ import { Env, IConfig } from '../types';
3
+ interface IOpts {
4
+ config: Config;
5
+ userConfig: IConfig;
6
+ cwd: string;
7
+ env: Env;
8
+ browsers: any;
9
+ name?: string;
10
+ }
11
+ export declare function addFastRefreshPlugin(opts: IOpts): Promise<void>;
12
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.addFastRefreshPlugin = void 0;
16
+ // @ts-ignore
17
+ const lib_1 = __importDefault(require("@pmmmwh/react-refresh-webpack-plugin/lib"));
18
+ const constants_1 = require("../constants");
19
+ const types_1 = require("../types");
20
+ function addFastRefreshPlugin(opts) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ const { config, userConfig, name } = opts;
23
+ const isDev = opts.env === types_1.Env.development;
24
+ const useFastRefresh = isDev && userConfig.fastRefresh !== false && name !== constants_1.MFSU_NAME;
25
+ // TODO: Should only run in react csr
26
+ if (useFastRefresh) {
27
+ config
28
+ .plugin('fastRefresh')
29
+ .after('hmr')
30
+ .use(lib_1.default, [{ overlay: false }]);
31
+ }
32
+ });
33
+ }
34
+ exports.addFastRefreshPlugin = addFastRefreshPlugin;
@@ -0,0 +1,10 @@
1
+ import Config from '@umijs/bundler-webpack/compiled/webpack-5-chain';
2
+ import { Env, IConfig } from '../types';
3
+ interface IOpts {
4
+ config: Config;
5
+ userConfig: IConfig;
6
+ cwd: string;
7
+ env: Env;
8
+ }
9
+ export declare function addIgnorePlugin(opts: IOpts): Promise<void>;
10
+ export {};
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.addIgnorePlugin = void 0;
13
+ const webpack_1 = require("@umijs/bundler-webpack/compiled/webpack");
14
+ function addIgnorePlugin(opts) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ const { config, userConfig } = opts;
17
+ if (userConfig.ignoreMomentLocale) {
18
+ config.plugin('ignore-moment-locale').use(webpack_1.IgnorePlugin, [
19
+ {
20
+ resourceRegExp: /^\.\/locale$/,
21
+ contextRegExp: /moment$/,
22
+ },
23
+ ]);
24
+ }
25
+ });
26
+ }
27
+ exports.addIgnorePlugin = addIgnorePlugin;
@@ -0,0 +1,14 @@
1
+ import Config from '../../compiled/webpack-5-chain';
2
+ import { Env, IConfig } from '../types';
3
+ interface IOpts {
4
+ config: Config;
5
+ userConfig: IConfig;
6
+ cwd: string;
7
+ env: Env;
8
+ extraBabelPlugins: any[];
9
+ extraBabelPresets: any[];
10
+ babelPreset: any;
11
+ name?: string;
12
+ }
13
+ export declare function addJavaScriptRules(opts: IOpts): Promise<void>;
14
+ export {};
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.addJavaScriptRules = void 0;
13
+ const utils_1 = require("@umijs/utils");
14
+ const constants_1 = require("../constants");
15
+ const types_1 = require("../types");
16
+ const depMatch_1 = require("../utils/depMatch");
17
+ function addJavaScriptRules(opts) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ const { config, userConfig, cwd, env, name } = opts;
20
+ const isDev = opts.env === types_1.Env.development;
21
+ const useFastRefresh = isDev && userConfig.fastRefresh !== false && name === constants_1.MFSU_NAME;
22
+ const depPkgs = Object.assign({}, (0, depMatch_1.es5ImcompatibleVersionsToPkg)());
23
+ const srcRules = [
24
+ config.module
25
+ .rule('src')
26
+ .test(/\.(js|mjs)$/)
27
+ .include.add([
28
+ cwd,
29
+ // import module out of cwd using APP_ROOT
30
+ // issue: https://github.com/umijs/umi/issues/5594
31
+ ...(process.env.APP_ROOT ? [process.cwd()] : []),
32
+ ])
33
+ .end()
34
+ .exclude.add(/node_modules/)
35
+ .end(),
36
+ config.module.rule('jsx-ts-tsx').test(/\.(jsx|ts|tsx)$/),
37
+ config.module
38
+ .rule('extra-src')
39
+ .test(/\.(js|mjs)$/)
40
+ .include.add((path) => {
41
+ try {
42
+ if (path.includes('client/client'))
43
+ return true;
44
+ return (0, depMatch_1.isMatch)({ path, pkgs: depPkgs });
45
+ }
46
+ catch (e) {
47
+ console.error(utils_1.chalk.red(e));
48
+ throw e;
49
+ }
50
+ })
51
+ .end(),
52
+ ];
53
+ const depRules = [
54
+ config.module
55
+ .rule('dep')
56
+ .test(/\.(js|mjs)$/)
57
+ .include.add(/node_modules/)
58
+ .end()
59
+ .exclude.add((path) => {
60
+ try {
61
+ return (0, depMatch_1.isMatch)({ path, pkgs: depPkgs });
62
+ }
63
+ catch (e) {
64
+ console.error(utils_1.chalk.red(e));
65
+ throw e;
66
+ }
67
+ })
68
+ .end(),
69
+ ];
70
+ // const prefix = existsSync(join(cwd, 'src')) ? join(cwd, 'src') : cwd;
71
+ const srcTranspiler = userConfig.srcTranspiler || types_1.Transpiler.babel;
72
+ srcRules.forEach((rule) => {
73
+ if (srcTranspiler === types_1.Transpiler.babel) {
74
+ rule
75
+ .use('babel-loader')
76
+ .loader(require.resolve('../../compiled/babel-loader'))
77
+ .options({
78
+ // Tell babel to guess the type, instead assuming all files are modules
79
+ // https://github.com/webpack/webpack/issues/4039#issuecomment-419284940
80
+ sourceType: 'unambiguous',
81
+ babelrc: false,
82
+ cacheDirectory: false,
83
+ // process.env.BABEL_CACHE !== 'none'
84
+ // ? join(cwd, `.umi/.cache/babel-loader`)
85
+ // : false,
86
+ targets: userConfig.targets,
87
+ presets: [
88
+ opts.babelPreset || [
89
+ require.resolve('@umijs/babel-preset-umi'),
90
+ {
91
+ presetEnv: {},
92
+ presetReact: {},
93
+ presetTypeScript: {},
94
+ pluginTransformRuntime: {},
95
+ pluginLockCoreJS: {},
96
+ pluginDynamicImportNode: false,
97
+ pluginAutoCSSModules: userConfig.autoCSSModules,
98
+ },
99
+ ],
100
+ ...opts.extraBabelPresets,
101
+ ...(userConfig.extraBabelPresets || []).filter(Boolean),
102
+ ],
103
+ plugins: [
104
+ useFastRefresh && require.resolve('react-refresh/babel'),
105
+ ...opts.extraBabelPlugins,
106
+ ...(userConfig.extraBabelPlugins || []),
107
+ ].filter(Boolean),
108
+ });
109
+ }
110
+ else if (srcTranspiler === types_1.Transpiler.swc) {
111
+ // TODO: support javascript
112
+ rule
113
+ .use('swc-loader')
114
+ .loader(require.resolve('../../compiled/swc-loader'))
115
+ .options({
116
+ jsc: {
117
+ parser: {
118
+ syntax: 'typescript',
119
+ dynamicImport: true,
120
+ tsx: true,
121
+ },
122
+ transform: {
123
+ react: {
124
+ runtime: 'automatic',
125
+ pragma: 'React.createElement',
126
+ pragmaFrag: 'React.Fragment',
127
+ throwIfNamespace: true,
128
+ development: env === types_1.Env.development,
129
+ useBuiltins: true,
130
+ },
131
+ },
132
+ },
133
+ });
134
+ }
135
+ else {
136
+ throw new Error(`Unsupported srcTranspiler ${srcTranspiler}.`);
137
+ }
138
+ });
139
+ const depTranspiler = userConfig.depTranspiler || types_1.Transpiler.none;
140
+ depRules.forEach((_rule) => {
141
+ if (depTranspiler === types_1.Transpiler.none) {
142
+ // noop
143
+ }
144
+ else {
145
+ throw new Error(`Unsupported depTranspiler ${depTranspiler}.`);
146
+ }
147
+ });
148
+ });
149
+ }
150
+ exports.addJavaScriptRules = addJavaScriptRules;
@@ -0,0 +1,10 @@
1
+ import Config from '@umijs/bundler-webpack/compiled/webpack-5-chain';
2
+ import { Env, IConfig } from '../types';
3
+ interface IOpts {
4
+ config: Config;
5
+ userConfig: IConfig;
6
+ cwd: string;
7
+ env: Env;
8
+ }
9
+ export declare function addMiniCSSExtractPlugin(opts: IOpts): Promise<void>;
10
+ export {};