@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
package/dist/schema.js ADDED
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSchemas = void 0;
4
+ const types_1 = require("./types");
5
+ const options = [
6
+ 'cheap-source-map',
7
+ 'cheap-eval-source-map',
8
+ 'cheap-hidden-source-map',
9
+ 'cheap-inline-source-map',
10
+ 'cheap-module-source-map',
11
+ 'cheap-module-eval-source-map',
12
+ 'cheap-module-hidden-source-map',
13
+ 'cheap-module-inline-source-map',
14
+ 'eval',
15
+ 'eval-source-map',
16
+ 'source-map',
17
+ 'hidden-source-map',
18
+ 'inline-source-map',
19
+ ];
20
+ const DEVTOOL_REGEX = new RegExp('^' + // start of string
21
+ '(#@|@|#)?' + // maybe one of the pragmas
22
+ `(${options.join('$|')})`);
23
+ function getSchemas() {
24
+ return {
25
+ alias: (Joi) => Joi.object(),
26
+ autoCSSModules: (Joi) => Joi.boolean(),
27
+ chainWebpack: (Joi) => Joi.function(),
28
+ copy: (Joi) => Joi.array().items(Joi.alternatives().try(Joi.object({
29
+ from: Joi.string(),
30
+ to: Joi.string(),
31
+ }), Joi.string())),
32
+ cssLoader: (Joi) => Joi.object(),
33
+ cssLoaderModules: (Joi) => Joi.object(),
34
+ cssMinifier: (Joi) => Joi.string().valid(types_1.CSSMinifier.cssnano, types_1.CSSMinifier.esbuild, types_1.CSSMinifier.none),
35
+ cssMinifierOptions: (Joi) => Joi.object(),
36
+ define: (Joi) => Joi.object(),
37
+ depTranspiler: (Joi) => Joi.string().valid(types_1.Transpiler.babel, types_1.Transpiler.esbuild, types_1.Transpiler.swc, types_1.Transpiler.none),
38
+ devtool: (Joi) => Joi.alternatives().try(Joi.string().regex(DEVTOOL_REGEX), Joi.boolean()),
39
+ externals: (Joi) => Joi.alternatives().try(Joi.object().pattern(/.+/, [
40
+ Joi.string(),
41
+ Joi.boolean(),
42
+ Joi.object().pattern(/.+/, [Joi.string(), Joi.boolean()]),
43
+ ]), Joi.string(), Joi.func().arity(3), Joi.object().regex()),
44
+ extraBabelPlugins: (Joi) => Joi.alternatives().try(Joi.string(), Joi.array().items(Joi.alternatives().try(Joi.string(), Joi.object()))),
45
+ extraBabelPresets: (Joi) => Joi.alternatives().try(Joi.string(), Joi.array().items(Joi.alternatives().try(Joi.string(), Joi.object()))),
46
+ extraPostCSSPlugins: (Joi) => Joi.array(),
47
+ fastRefresh: (Joi) => Joi.boolean(),
48
+ hash: (Joi) => Joi.boolean(),
49
+ ignoreMomentLocale: (Joi) => Joi.boolean(),
50
+ jsMinifier: (Joi) => Joi.string().valid(types_1.JSMinifier.esbuild, types_1.JSMinifier.swc, types_1.JSMinifier.terser, types_1.JSMinifier.uglifyJs, types_1.JSMinifier.none),
51
+ jsMinifierOptions: (Joi) => Joi.object(),
52
+ lessLoader: (Joi) => Joi.object(),
53
+ mfsu: (Joi) => Joi.alternatives(Joi.object(), Joi.boolean()),
54
+ outputPath: (Joi) => Joi.string(),
55
+ postcssLoader: (Joi) => Joi.object(),
56
+ proxy: (Joi) => Joi.object(),
57
+ publicPath: (Joi) => Joi.string(),
58
+ purgeCSS: (Joi) => Joi.object(),
59
+ sassLoader: (Joi) => Joi.object(),
60
+ srcTranspiler: (Joi) => Joi.string().valid(types_1.Transpiler.babel, types_1.Transpiler.esbuild, types_1.Transpiler.swc, types_1.Transpiler.none),
61
+ styleLoader: (Joi) => Joi.object(),
62
+ svgr: (Joi) => Joi.object(),
63
+ svgo: (Joi) => Joi.alternatives().try(Joi.object(), Joi.boolean()),
64
+ targets: (Joi) => Joi.object(),
65
+ writeToDisk: (Joi) => Joi.boolean(),
66
+ };
67
+ }
68
+ exports.getSchemas = getSchemas;
@@ -0,0 +1,16 @@
1
+ /// <reference types="node" />
2
+ import { Configuration } from '@umijs/bundler-webpack/compiled/webpack';
3
+ import http from 'http';
4
+ import { IConfig } from '../types';
5
+ interface IOpts {
6
+ cwd: string;
7
+ port?: number;
8
+ host?: string;
9
+ webpackConfig: Configuration;
10
+ userConfig: IConfig;
11
+ beforeMiddlewares?: any[];
12
+ afterMiddlewares?: any[];
13
+ onDevCompileDone?: Function;
14
+ }
15
+ export declare function createServer(opts: IOpts): Promise<http.Server>;
16
+ export {};
@@ -0,0 +1,157 @@
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.createServer = void 0;
16
+ const express_1 = __importDefault(require("@umijs/bundler-webpack/compiled/express"));
17
+ const http_proxy_middleware_1 = require("@umijs/bundler-webpack/compiled/http-proxy-middleware");
18
+ const webpack_1 = __importDefault(require("@umijs/bundler-webpack/compiled/webpack"));
19
+ const utils_1 = require("@umijs/utils");
20
+ const fs_1 = require("fs");
21
+ const http_1 = __importDefault(require("http"));
22
+ const path_1 = require("path");
23
+ const constants_1 = require("../constants");
24
+ const ws_1 = require("./ws");
25
+ function createServer(opts) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ const { webpackConfig, userConfig } = opts;
28
+ const { proxy } = userConfig;
29
+ const app = (0, express_1.default)();
30
+ // compression
31
+ app.use(require('@umijs/bundler-webpack/compiled/compression')());
32
+ // TODO: headers
33
+ // before middlewares
34
+ (opts.beforeMiddlewares || []).forEach((m) => app.use(m));
35
+ // webpack dev middleware
36
+ const compiler = (0, webpack_1.default)(Array.isArray(webpackConfig) ? webpackConfig : [webpackConfig]);
37
+ const webpackDevMiddleware = require('@umijs/bundler-webpack/compiled/webpack-dev-middleware');
38
+ const compilerMiddleware = webpackDevMiddleware(compiler, {
39
+ publicPath: '/',
40
+ writeToDisk: userConfig.writeToDisk,
41
+ stats: 'none',
42
+ // watchOptions: { ignored }
43
+ });
44
+ app.use(compilerMiddleware);
45
+ // hmr hooks
46
+ let stats;
47
+ let isFirstCompile = true;
48
+ compiler.compilers.forEach(addHooks);
49
+ function addHooks(compiler) {
50
+ compiler.hooks.invalid.tap('server', () => {
51
+ sendMessage(constants_1.MESSAGE_TYPE.invalid);
52
+ });
53
+ compiler.hooks.done.tap('server', (_stats) => {
54
+ var _a;
55
+ stats = _stats;
56
+ sendStats(getStats(stats));
57
+ (_a = opts.onDevCompileDone) === null || _a === void 0 ? void 0 : _a.call(opts, {
58
+ stats,
59
+ isFirstCompile,
60
+ time: stats.endTime - stats.startTime,
61
+ });
62
+ isFirstCompile = false;
63
+ });
64
+ }
65
+ function sendStats(stats, force, sender) {
66
+ const shouldEmit = !force &&
67
+ stats &&
68
+ (!stats.errors || stats.errors.length === 0) &&
69
+ (!stats.warnings || stats.warnings.length === 0) &&
70
+ stats.assets &&
71
+ stats.assets.every((asset) => !asset.emitted);
72
+ if (shouldEmit) {
73
+ sendMessage(constants_1.MESSAGE_TYPE.stillOk, null, sender);
74
+ return;
75
+ }
76
+ sendMessage(constants_1.MESSAGE_TYPE.hash, stats.hash, sender);
77
+ if ((stats.errors && stats.errors.length > 0) ||
78
+ (stats.warnings && stats.warnings.length > 0)) {
79
+ if (stats.warnings && stats.warnings.length > 0) {
80
+ sendMessage(constants_1.MESSAGE_TYPE.warnings, stats.warnings, sender);
81
+ }
82
+ if (stats.errors && stats.errors.length > 0) {
83
+ sendMessage(constants_1.MESSAGE_TYPE.errors, stats.errors, sender);
84
+ }
85
+ }
86
+ else {
87
+ sendMessage(constants_1.MESSAGE_TYPE.ok, null, sender);
88
+ }
89
+ }
90
+ function getStats(stats) {
91
+ return stats.toJson({
92
+ all: false,
93
+ hash: true,
94
+ assets: true,
95
+ warnings: true,
96
+ errors: true,
97
+ errorDetails: false,
98
+ });
99
+ }
100
+ function sendMessage(type, data, sender) {
101
+ (sender || ws).send(JSON.stringify({ type, data }));
102
+ }
103
+ // mock
104
+ // proxy
105
+ if (proxy) {
106
+ Object.keys(proxy).forEach((key) => {
107
+ app.use(key, (0, http_proxy_middleware_1.createProxyMiddleware)(proxy[key]));
108
+ });
109
+ }
110
+ // after middlewares
111
+ (opts.afterMiddlewares || []).forEach((m) => app.use(m));
112
+ // history fallback
113
+ app.use(require('@umijs/bundler-webpack/compiled/connect-history-api-fallback')({
114
+ index: '/',
115
+ }));
116
+ // hmr reconnect ping
117
+ app.use('/__umi_ping', (_, res) => {
118
+ res.end('pong');
119
+ });
120
+ // TODO: remove me
121
+ app.use((req, res, next) => {
122
+ if (req.path === '/umi.js' && (0, fs_1.existsSync)((0, path_1.join)(opts.cwd, 'umi.js'))) {
123
+ res.send((0, fs_1.readFileSync)((0, path_1.join)(opts.cwd, 'umi.js'), 'utf-8'));
124
+ }
125
+ else {
126
+ next();
127
+ }
128
+ });
129
+ // index.html
130
+ // TODO: remove me
131
+ app.get('/', (_req, res, next) => {
132
+ res.set('Content-Type', 'text/html');
133
+ const htmlPath = (0, path_1.join)(opts.cwd, 'index.html');
134
+ if ((0, fs_1.existsSync)(htmlPath)) {
135
+ const html = (0, fs_1.readFileSync)(htmlPath, 'utf-8');
136
+ res.send(html);
137
+ }
138
+ else {
139
+ next();
140
+ }
141
+ });
142
+ const server = http_1.default.createServer(app);
143
+ const ws = (0, ws_1.createWebSocketServer)(server);
144
+ ws.wss.on('connection', (socket) => {
145
+ if (stats) {
146
+ sendStats(getStats(stats), false, socket);
147
+ }
148
+ });
149
+ const port = opts.port || 8000;
150
+ server.listen(port, () => {
151
+ const host = opts.host && opts.host !== '0.0.0.0' ? opts.host : '127.0.0.1';
152
+ utils_1.logger.ready(`App listening at http://${host}:${port}`);
153
+ });
154
+ return server;
155
+ });
156
+ }
157
+ exports.createServer = createServer;
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
2
+ import { Server } from 'http';
3
+ import WebSocket from 'ws';
4
+ export declare function createWebSocketServer(server: Server): {
5
+ send(message: string): void;
6
+ wss: WebSocket.Server;
7
+ close(): void;
8
+ };
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createWebSocketServer = void 0;
7
+ const utils_1 = require("@umijs/utils");
8
+ const ws_1 = __importDefault(require("ws"));
9
+ function createWebSocketServer(server) {
10
+ const wss = new ws_1.default.Server({
11
+ noServer: true,
12
+ });
13
+ server.on('upgrade', (req, socket, head) => {
14
+ if (req.headers['sec-websocket-protocol'] === 'webpack-hmr') {
15
+ wss.handleUpgrade(req, socket, head, (ws) => {
16
+ wss.emit('connection', ws, req);
17
+ });
18
+ }
19
+ });
20
+ wss.on('connection', (socket) => {
21
+ socket.send(JSON.stringify({ type: 'connected' }));
22
+ });
23
+ wss.on('error', (e) => {
24
+ if (e.code !== 'EADDRINUSE') {
25
+ console.error(utils_1.chalk.red(`WebSocket server error:\n${e.stack || e.message}`));
26
+ }
27
+ });
28
+ return {
29
+ send(message) {
30
+ wss.clients.forEach((client) => {
31
+ if (client.readyState === ws_1.default.OPEN) {
32
+ client.send(message);
33
+ }
34
+ });
35
+ },
36
+ wss,
37
+ close() {
38
+ wss.close();
39
+ },
40
+ };
41
+ }
42
+ exports.createWebSocketServer = createWebSocketServer;
@@ -0,0 +1,97 @@
1
+ import type { Options as ProxyOptions } from '../compiled/http-proxy-middleware';
2
+ import { Configuration } from '../compiled/webpack';
3
+ import Config from '../compiled/webpack-5-chain';
4
+ export declare enum Env {
5
+ development = "development",
6
+ production = "production"
7
+ }
8
+ export declare enum Transpiler {
9
+ babel = "babel",
10
+ swc = "swc",
11
+ esbuild = "esbuild",
12
+ none = "none"
13
+ }
14
+ export declare enum JSMinifier {
15
+ terser = "terser",
16
+ swc = "swc",
17
+ esbuild = "esbuild",
18
+ uglifyJs = "uglifyJs",
19
+ none = "none"
20
+ }
21
+ export declare enum CSSMinifier {
22
+ esbuild = "esbuild",
23
+ cssnano = "cssnano",
24
+ none = "none"
25
+ }
26
+ export interface ICopy {
27
+ from: string;
28
+ to: string;
29
+ }
30
+ declare type WebpackConfig = Required<Configuration>;
31
+ declare type IBabelPlugin = Function | string | [string, {
32
+ [key: string]: any;
33
+ }];
34
+ export interface IConfig {
35
+ alias?: Record<string, string>;
36
+ autoCSSModules?: boolean;
37
+ chainWebpack?: Function;
38
+ copy?: ICopy[] | string[];
39
+ cssLoader?: {
40
+ [key: string]: any;
41
+ };
42
+ cssLoaderModules?: {
43
+ [key: string]: any;
44
+ };
45
+ cssMinifier?: CSSMinifier;
46
+ cssMinifierOptions?: {
47
+ [key: string]: any;
48
+ };
49
+ define?: {
50
+ [key: string]: any;
51
+ };
52
+ depTranspiler?: Transpiler;
53
+ devtool?: Config.DevTool;
54
+ externals?: WebpackConfig['externals'];
55
+ extraBabelPlugins?: IBabelPlugin[];
56
+ extraBabelPresets?: IBabelPlugin[];
57
+ extraPostCSSPlugins?: any[];
58
+ hash?: boolean;
59
+ ignoreMomentLocale?: boolean;
60
+ jsMinifier?: JSMinifier;
61
+ jsMinifierOptions?: {
62
+ [key: string]: any;
63
+ };
64
+ lessLoader?: {
65
+ [key: string]: any;
66
+ };
67
+ outputPath?: string;
68
+ postcssLoader?: {
69
+ [key: string]: any;
70
+ };
71
+ proxy?: {
72
+ [key: string]: ProxyOptions;
73
+ };
74
+ publicPath?: string;
75
+ purgeCSS?: {
76
+ [key: string]: any;
77
+ };
78
+ sassLoader?: {
79
+ [key: string]: any;
80
+ };
81
+ srcTranspiler?: Transpiler;
82
+ styleLoader?: {
83
+ [key: string]: any;
84
+ };
85
+ svgr?: {
86
+ [key: string]: any;
87
+ };
88
+ svgo?: {
89
+ [key: string]: any;
90
+ } | false;
91
+ targets?: {
92
+ [key: string]: any;
93
+ };
94
+ writeToDisk?: boolean;
95
+ [key: string]: any;
96
+ }
97
+ export {};
package/dist/types.js ADDED
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CSSMinifier = exports.JSMinifier = exports.Transpiler = exports.Env = void 0;
4
+ var Env;
5
+ (function (Env) {
6
+ Env["development"] = "development";
7
+ Env["production"] = "production";
8
+ })(Env = exports.Env || (exports.Env = {}));
9
+ var Transpiler;
10
+ (function (Transpiler) {
11
+ Transpiler["babel"] = "babel";
12
+ Transpiler["swc"] = "swc";
13
+ Transpiler["esbuild"] = "esbuild";
14
+ Transpiler["none"] = "none";
15
+ })(Transpiler = exports.Transpiler || (exports.Transpiler = {}));
16
+ var JSMinifier;
17
+ (function (JSMinifier) {
18
+ JSMinifier["terser"] = "terser";
19
+ JSMinifier["swc"] = "swc";
20
+ JSMinifier["esbuild"] = "esbuild";
21
+ JSMinifier["uglifyJs"] = "uglifyJs";
22
+ JSMinifier["none"] = "none";
23
+ })(JSMinifier = exports.JSMinifier || (exports.JSMinifier = {}));
24
+ var CSSMinifier;
25
+ (function (CSSMinifier) {
26
+ CSSMinifier["esbuild"] = "esbuild";
27
+ CSSMinifier["cssnano"] = "cssnano";
28
+ CSSMinifier["none"] = "none";
29
+ })(CSSMinifier = exports.CSSMinifier || (exports.CSSMinifier = {}));
@@ -0,0 +1,5 @@
1
+ interface IOpts {
2
+ targets: Record<string, any>;
3
+ }
4
+ export declare function getBrowsersList({ targets }: IOpts): any;
5
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBrowsersList = void 0;
4
+ function getBrowsersList({ targets }) {
5
+ return (targets.browsers ||
6
+ Object.keys(targets).map((key) => {
7
+ return `${key} >= ${targets[key] === true ? '0' : targets[key]}`;
8
+ }));
9
+ }
10
+ exports.getBrowsersList = getBrowsersList;
@@ -0,0 +1,6 @@
1
+ export declare function cleanCache(): void;
2
+ export declare function isMatch(opts: {
3
+ path: string;
4
+ pkgs: Record</*name*/ string, /*version*/ string[]>;
5
+ }): boolean;
6
+ export declare function es5ImcompatibleVersionsToPkg(): Record<string, string[]>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.es5ImcompatibleVersionsToPkg = exports.isMatch = exports.cleanCache = void 0;
4
+ const utils_1 = require("@umijs/utils");
5
+ const path_1 = require("path");
6
+ const cache = new Map();
7
+ function cleanCache() {
8
+ cache.clear();
9
+ }
10
+ exports.cleanCache = cleanCache;
11
+ function isMatch(opts) {
12
+ // cache by dir, 命中率会更高
13
+ const dir = (0, utils_1.winPath)((0, path_1.dirname)(opts.path));
14
+ if (cache.has(dir)) {
15
+ return !!cache.get(dir);
16
+ }
17
+ else {
18
+ const pkgPath = utils_1.pkgUp.sync({ cwd: opts.path });
19
+ let ret;
20
+ if (!pkgPath) {
21
+ ret = false;
22
+ }
23
+ else {
24
+ const { name, version } = require(pkgPath);
25
+ if (opts.pkgs[name]) {
26
+ ret = opts.pkgs[name].some((v) => {
27
+ return utils_1.semver.satisfies(version, v);
28
+ });
29
+ }
30
+ else {
31
+ ret = false;
32
+ }
33
+ }
34
+ cache.set(dir, ret);
35
+ return ret;
36
+ }
37
+ }
38
+ exports.isMatch = isMatch;
39
+ function es5ImcompatibleVersionsToPkg() {
40
+ const { config: { 'es5-imcompatible-versions': config }, } = require('es5-imcompatible-versions/package.json');
41
+ return Object.keys(config).reduce((memo, key) => {
42
+ memo[key] = /* versions */ Object.keys(config[key]);
43
+ return memo;
44
+ }, {});
45
+ }
46
+ exports.es5ImcompatibleVersionsToPkg = es5ImcompatibleVersionsToPkg;
@@ -0,0 +1,12 @@
1
+ export declare function formatMessage(message: string | {
2
+ message: string;
3
+ } | {
4
+ message: string;
5
+ }[]): string;
6
+ export declare function formatWebpackMessages(json: {
7
+ errors: string[];
8
+ warnings: string[];
9
+ }): {
10
+ errors: string[];
11
+ warnings: string[];
12
+ };
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.formatWebpackMessages = exports.formatMessage = void 0;
7
+ const strip_ansi_1 = __importDefault(require("@umijs/utils/compiled/strip-ansi"));
8
+ const friendlySyntaxErrorLabel = 'Syntax error:';
9
+ function isLikelyASyntaxError(message) {
10
+ return (0, strip_ansi_1.default)(message).indexOf(friendlySyntaxErrorLabel) !== -1;
11
+ }
12
+ function formatMessage(message) {
13
+ let lines = [];
14
+ if (typeof message === 'string') {
15
+ lines = message.split('\n');
16
+ }
17
+ else if ('message' in message) {
18
+ lines = message['message'].split('\n');
19
+ }
20
+ else if (Array.isArray(message)) {
21
+ message.forEach((message) => {
22
+ if ('message' in message) {
23
+ lines = message['message'].split('\n');
24
+ }
25
+ });
26
+ }
27
+ // Strip webpack-added headers off errors/warnings
28
+ // https://github.com/webpack/webpack/blob/master/lib/ModuleError.js
29
+ lines = lines.filter((line) => !/Module [A-z ]+\(from/.test(line));
30
+ // Transform parsing error into syntax error
31
+ // TODO: move this to our ESLint formatter?
32
+ lines = lines.map((line) => {
33
+ const parsingError = /Line (\d+):(?:(\d+):)?\s*Parsing error: (.+)$/.exec(line);
34
+ if (!parsingError) {
35
+ return line;
36
+ }
37
+ const [, errorLine, errorColumn, errorMessage] = parsingError;
38
+ return `${friendlySyntaxErrorLabel} ${errorMessage} (${errorLine}:${errorColumn})`;
39
+ });
40
+ message = lines.join('\n');
41
+ // Smoosh syntax errors (commonly found in CSS)
42
+ message = message.replace(/SyntaxError\s+\((\d+):(\d+)\)\s*(.+?)\n/g, `${friendlySyntaxErrorLabel} $3 ($1:$2)\n`);
43
+ // Clean up export errors
44
+ message = message.replace(/^.*export '(.+?)' was not found in '(.+?)'.*$/gm, `Attempted import error: '$1' is not exported from '$2'.`);
45
+ message = message.replace(/^.*export 'default' \(imported as '(.+?)'\) was not found in '(.+?)'.*$/gm, `Attempted import error: '$2' does not contain a default export (imported as '$1').`);
46
+ message = message.replace(/^.*export '(.+?)' \(imported as '(.+?)'\) was not found in '(.+?)'.*$/gm, `Attempted import error: '$1' is not exported from '$3' (imported as '$2').`);
47
+ lines = message.split('\n');
48
+ // Remove leading newline
49
+ if (lines.length > 2 && lines[1].trim() === '') {
50
+ lines.splice(1, 1);
51
+ }
52
+ // Clean up file name
53
+ lines[0] = lines[0].replace(/^(.*) \d+:\d+-\d+$/, '$1');
54
+ // Cleans up verbose "module not found" messages for files and packages.
55
+ if (lines[1] && lines[1].indexOf('Module not found: ') === 0) {
56
+ lines = [
57
+ lines[0],
58
+ lines[1]
59
+ .replace('Error: ', '')
60
+ .replace('Module not found: Cannot find file:', 'Cannot find file:'),
61
+ ];
62
+ }
63
+ // Add helpful message for users trying to use Sass for the first time
64
+ if (lines[1] && lines[1].match(/Cannot find module.+sass/)) {
65
+ lines[1] = 'To import Sass files, you first need to install sass.\n';
66
+ lines[1] +=
67
+ 'Run `npm install sass` or `yarn add sass` inside your workspace.';
68
+ }
69
+ message = lines.join('\n');
70
+ // Internal stacks are generally useless so we strip them... with the
71
+ // exception of stacks containing `webpack:` because they're normally
72
+ // from user code generated by webpack. For more information see
73
+ // https://github.com/facebook/create-react-app/pull/1050
74
+ message = message.replace(/^\s*at\s((?!webpack:).)*:\d+:\d+[\s)]*(\n|$)/gm, ''); // at ... ...:x:y
75
+ message = message.replace(/^\s*at\s<anonymous>(\n|$)/gm, ''); // at <anonymous>
76
+ lines = message.split('\n');
77
+ // Remove duplicated newlines
78
+ lines = lines.filter((line, index, arr) => index === 0 ||
79
+ line.trim() !== '' ||
80
+ line.trim() !== arr[index - 1].trim());
81
+ // Reassemble the message
82
+ message = lines.join('\n');
83
+ return message.trim();
84
+ }
85
+ exports.formatMessage = formatMessage;
86
+ function formatWebpackMessages(json) {
87
+ const formattedErrors = json.errors.map(function (message) {
88
+ return formatMessage(message);
89
+ });
90
+ const formattedWarnings = json.warnings.map(function (message) {
91
+ return formatMessage(message);
92
+ });
93
+ const result = { errors: formattedErrors, warnings: formattedWarnings };
94
+ if (result.errors.some(isLikelyASyntaxError)) {
95
+ // If there are any syntax errors, show just them.
96
+ result.errors = result.errors.filter(isLikelyASyntaxError);
97
+ }
98
+ return result;
99
+ }
100
+ exports.formatWebpackMessages = formatWebpackMessages;