@modern-js/main-doc 2.60.0 → 2.60.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (321) hide show
  1. package/docs/en/apis/app/commands.mdx +0 -16
  2. package/docs/en/community/contributing-guide.mdx +0 -1
  3. package/docs/en/components/builder.mdx +3 -0
  4. package/docs/en/components/bundler.mdx +3 -0
  5. package/docs/en/components/enableSwc.mdx +17 -0
  6. package/docs/en/components/esbuild.mdx +3 -0
  7. package/docs/en/components/micro-frontend.mdx +6 -0
  8. package/docs/en/components/module-federation.mdx +7 -0
  9. package/docs/en/components/nodeVersion.mdx +26 -0
  10. package/docs/en/components/output-asset-prefix-extend.mdx +0 -0
  11. package/docs/en/components/output-polyfill-extend.mdx +1 -0
  12. package/docs/en/components/prerequisites.mdx +1 -1
  13. package/docs/en/components/rsbuild-config-tooltip.mdx +5 -0
  14. package/docs/en/components/rsbuild.mdx +3 -0
  15. package/docs/en/components/rspack.mdx +3 -0
  16. package/docs/en/components/rspackPrecautions.mdx +6 -0
  17. package/docs/en/components/rspackTip.mdx +7 -0
  18. package/docs/en/components/swc.mdx +3 -0
  19. package/docs/en/configure/app/dev/asset-prefix.mdx +12 -2
  20. package/docs/en/configure/app/dev/before-start-url.mdx +14 -2
  21. package/docs/en/configure/app/dev/client.mdx +20 -16
  22. package/docs/en/configure/app/dev/hmr.mdx +8 -2
  23. package/docs/en/configure/app/dev/host.mdx +15 -2
  24. package/docs/en/configure/app/dev/https.mdx +71 -2
  25. package/docs/en/configure/app/dev/live-reload.mdx +3 -15
  26. package/docs/en/configure/app/dev/port.mdx +18 -2
  27. package/docs/en/configure/app/dev/progress-bar.mdx +17 -2
  28. package/docs/en/configure/app/dev/setup-middlewares.mdx +25 -39
  29. package/docs/en/configure/app/dev/start-url.mdx +46 -2
  30. package/docs/en/configure/app/dev/watch-files.mdx +5 -39
  31. package/docs/en/configure/app/dev/write-to-disk.mdx +4 -27
  32. package/docs/en/configure/app/experiments/lazy-compilation.mdx +84 -2
  33. package/docs/en/configure/app/experiments/source-build.mdx +28 -3
  34. package/docs/en/configure/app/html/app-icon.mdx +48 -2
  35. package/docs/en/configure/app/html/crossorigin.mdx +8 -2
  36. package/docs/en/configure/app/html/disable-html-folder.mdx +35 -2
  37. package/docs/en/configure/app/html/favicon-by-entries.mdx +29 -2
  38. package/docs/en/configure/app/html/favicon.mdx +14 -2
  39. package/docs/en/configure/app/html/inject-by-entries.mdx +29 -2
  40. package/docs/en/configure/app/html/inject.mdx +8 -2
  41. package/docs/en/configure/app/html/meta-by-entries.mdx +41 -2
  42. package/docs/en/configure/app/html/meta.mdx +22 -2
  43. package/docs/en/configure/app/html/mount-id.mdx +8 -2
  44. package/docs/en/configure/app/html/script-loading.mdx +8 -2
  45. package/docs/en/configure/app/html/tags-by-entries.mdx +37 -2
  46. package/docs/en/configure/app/html/tags.mdx +13 -2
  47. package/docs/en/configure/app/html/template-by-entries.mdx +26 -2
  48. package/docs/en/configure/app/html/template-parameters-by-entries.mdx +28 -2
  49. package/docs/en/configure/app/html/template-parameters.mdx +31 -2
  50. package/docs/en/configure/app/html/template.mdx +8 -2
  51. package/docs/en/configure/app/html/title-by-entries.mdx +30 -2
  52. package/docs/en/configure/app/html/title.mdx +16 -2
  53. package/docs/en/configure/app/output/asset-prefix.mdx +12 -2
  54. package/docs/en/configure/app/output/assets-retry.mdx +72 -2
  55. package/docs/en/configure/app/output/charset.mdx +8 -2
  56. package/docs/en/configure/app/output/clean-dist-path.mdx +13 -2
  57. package/docs/en/configure/app/output/convert-to-rem.mdx +76 -2
  58. package/docs/en/configure/app/output/copy.mdx +5 -2
  59. package/docs/en/configure/app/output/css-module-local-ident-name.mdx +14 -2
  60. package/docs/en/configure/app/output/css-modules.mdx +46 -2
  61. package/docs/en/configure/app/output/data-uri-limit.mdx +24 -2
  62. package/docs/en/configure/app/output/disable-css-extract.mdx +9 -2
  63. package/docs/en/configure/app/output/disable-css-module-extension.mdx +52 -2
  64. package/docs/en/configure/app/output/disable-filename-hash.mdx +9 -2
  65. package/docs/en/configure/app/output/disable-inline-runtime-chunk.mdx +38 -2
  66. package/docs/en/configure/app/output/disable-minimize.mdx +7 -2
  67. package/docs/en/configure/app/output/disable-source-map.mdx +24 -2
  68. package/docs/en/configure/app/output/disable-svgr.mdx +13 -2
  69. package/docs/en/configure/app/output/disable-ts-checker.mdx +46 -2
  70. package/docs/en/configure/app/output/dist-path.mdx +39 -2
  71. package/docs/en/configure/app/output/enable-asset-fallback.mdx +29 -2
  72. package/docs/en/configure/app/output/enable-asset-manifest.mdx +33 -2
  73. package/docs/en/configure/app/output/enable-css-module-tsdeclaration.mdx +25 -2
  74. package/docs/en/configure/app/output/enable-inline-scripts.mdx +15 -2
  75. package/docs/en/configure/app/output/enable-inline-styles.mdx +15 -2
  76. package/docs/en/configure/app/output/enable-latest-decorators.mdx +7 -2
  77. package/docs/en/configure/app/output/externals.mdx +18 -2
  78. package/docs/en/configure/app/output/filename-hash.mdx +3 -27
  79. package/docs/en/configure/app/output/filename.mdx +47 -2
  80. package/docs/en/configure/app/output/inject-styles.mdx +15 -0
  81. package/docs/en/configure/app/output/inline-scripts.mdx +34 -0
  82. package/docs/en/configure/app/output/inline-styles.mdx +34 -0
  83. package/docs/en/configure/app/output/legal-comments.mdx +16 -2
  84. package/docs/en/configure/app/output/minify.mdx +27 -0
  85. package/docs/en/configure/app/output/override-browserslist.mdx +18 -2
  86. package/docs/en/configure/app/output/polyfill.mdx +12 -2
  87. package/docs/en/configure/app/output/source-map.mdx +30 -0
  88. package/docs/en/configure/app/output/ssg.mdx +20 -17
  89. package/docs/en/configure/app/output/svg-default-export.mdx +27 -2
  90. package/docs/en/configure/app/performance/build-cache.mdx +78 -2
  91. package/docs/en/configure/app/performance/bundle-analyze.mdx +18 -2
  92. package/docs/en/configure/app/performance/chunk-split.mdx +38 -2
  93. package/docs/en/configure/app/performance/dns-prefetch.mdx +13 -2
  94. package/docs/en/configure/app/performance/preconnect.mdx +14 -2
  95. package/docs/en/configure/app/performance/prefetch.mdx +19 -2
  96. package/docs/en/configure/app/performance/preload.mdx +21 -2
  97. package/docs/en/configure/app/performance/print-file-size.mdx +38 -2
  98. package/docs/en/configure/app/performance/profile.mdx +8 -2
  99. package/docs/en/configure/app/performance/remove-console.mdx +8 -2
  100. package/docs/en/configure/app/performance/remove-moment-locale.mdx +8 -2
  101. package/docs/en/configure/app/performance/transform-lodash.mdx +42 -2
  102. package/docs/en/configure/app/plugins.mdx +1 -1
  103. package/docs/en/configure/app/security/check-syntax.mdx +66 -2
  104. package/docs/en/configure/app/security/nonce.mdx +13 -2
  105. package/docs/en/configure/app/security/sri.mdx +19 -2
  106. package/docs/en/configure/app/server/port.mdx +5 -0
  107. package/docs/en/configure/app/server/ssr.mdx +10 -9
  108. package/docs/en/configure/app/source/alias-strategy.mdx +8 -2
  109. package/docs/en/configure/app/source/alias.mdx +17 -2
  110. package/docs/en/configure/app/source/config-dir.mdx +1 -1
  111. package/docs/en/configure/app/source/decorators.mdx +8 -21
  112. package/docs/en/configure/app/source/define.mdx +14 -2
  113. package/docs/en/configure/app/source/enable-async-entry.mdx +1 -1
  114. package/docs/en/configure/app/source/entries-dir.mdx +1 -1
  115. package/docs/en/configure/app/source/exclude.mdx +8 -2
  116. package/docs/en/configure/app/source/global-vars.mdx +103 -2
  117. package/docs/en/configure/app/source/include.mdx +19 -2
  118. package/docs/en/configure/app/source/mainEntryName.mdx +1 -1
  119. package/docs/en/configure/app/source/module-scopes.mdx +62 -2
  120. package/docs/en/configure/app/source/pre-entry.mdx +8 -2
  121. package/docs/en/configure/app/source/resolve-extension-prefix.mdx +48 -2
  122. package/docs/en/configure/app/source/resolve-main-fields.mdx +39 -2
  123. package/docs/en/configure/app/source/transform-import.mdx +56 -2
  124. package/docs/en/configure/app/tools/autoprefixer.mdx +41 -2
  125. package/docs/en/configure/app/tools/babel.mdx +218 -2
  126. package/docs/en/configure/app/tools/bundler-chain.mdx +23 -2
  127. package/docs/en/configure/app/tools/css-extract.mdx +31 -2
  128. package/docs/en/configure/app/tools/css-loader.mdx +14 -2
  129. package/docs/en/configure/app/tools/dev-server.mdx +435 -2
  130. package/docs/en/configure/app/tools/esbuild.mdx +1 -1
  131. package/docs/en/configure/app/tools/html-plugin.mdx +21 -2
  132. package/docs/en/configure/app/tools/less.mdx +78 -2
  133. package/docs/en/configure/app/tools/minify-css.mdx +50 -2
  134. package/docs/en/configure/app/tools/postcss.mdx +30 -2
  135. package/docs/en/configure/app/tools/pug.mdx +47 -2
  136. package/docs/en/configure/app/tools/rspack.mdx +8 -2
  137. package/docs/en/configure/app/tools/sass.mdx +75 -2
  138. package/docs/en/configure/app/tools/style-loader.mdx +8 -2
  139. package/docs/en/configure/app/tools/styled-components.mdx +48 -2
  140. package/docs/en/configure/app/tools/swc.mdx +33 -2
  141. package/docs/en/configure/app/tools/terser.mdx +49 -2
  142. package/docs/en/configure/app/tools/ts-checker.mdx +49 -2
  143. package/docs/en/configure/app/tools/ts-loader.mdx +63 -2
  144. package/docs/en/configure/app/tools/webpack-chain.mdx +239 -2
  145. package/docs/en/configure/app/tools/webpack.mdx +295 -2
  146. package/docs/en/guides/advanced-features/_meta.json +0 -1
  147. package/docs/en/guides/advanced-features/rspack-start.mdx +2 -2
  148. package/docs/en/guides/basic-features/css/css-modules.mdx +2 -2
  149. package/docs/en/guides/basic-features/output-files.mdx +1 -1
  150. package/docs/en/guides/basic-features/render/ssg.mdx +1 -1
  151. package/docs/en/guides/concept/builder.mdx +1 -1
  152. package/docs/en/guides/get-started/glossary.mdx +7 -7
  153. package/docs/en/guides/get-started/quick-start.mdx +1 -1
  154. package/docs/en/guides/topic-detail/_meta.json +0 -6
  155. package/docs/en/guides/topic-detail/micro-frontend/c01-introduction.mdx +1 -1
  156. package/docs/en/guides/topic-detail/model/quick-start.mdx +5 -0
  157. package/docs/en/guides/troubleshooting/builder.mdx +2 -2
  158. package/docs/en/plugin/cli-plugins/plugin-swc.mdx +4 -4
  159. package/docs/en/plugin/rsbuild-plugins/plugin-esbuild.mdx +4 -4
  160. package/docs/zh/apis/app/commands.mdx +0 -18
  161. package/docs/zh/community/contributing-guide.mdx +0 -1
  162. package/docs/zh/components/builder.mdx +3 -0
  163. package/docs/zh/components/bundler.mdx +4 -0
  164. package/docs/zh/components/enableSwc.mdx +17 -0
  165. package/docs/zh/components/esbuild.mdx +3 -0
  166. package/docs/zh/components/micro-frontend.mdx +6 -0
  167. package/docs/zh/components/module-federation.mdx +7 -0
  168. package/docs/zh/components/nodeVersion.mdx +28 -0
  169. package/docs/zh/components/output-asset-prefix-extend.mdx +0 -0
  170. package/docs/zh/components/output-polyfill-extend.mdx +1 -0
  171. package/docs/zh/components/prerequisites.mdx +1 -1
  172. package/docs/zh/components/rsbuild-config-tooltip.mdx +5 -0
  173. package/docs/zh/components/rsbuild.mdx +3 -0
  174. package/docs/zh/components/rspack.mdx +3 -0
  175. package/docs/zh/components/rspackPrecautions.mdx +6 -0
  176. package/docs/zh/components/rspackTip.mdx +7 -0
  177. package/docs/zh/components/swc.mdx +3 -0
  178. package/docs/zh/configure/app/dev/asset-prefix.mdx +12 -2
  179. package/docs/zh/configure/app/dev/before-start-url.mdx +14 -2
  180. package/docs/zh/configure/app/dev/client.mdx +20 -16
  181. package/docs/zh/configure/app/dev/hmr.mdx +8 -2
  182. package/docs/zh/configure/app/dev/host.mdx +15 -2
  183. package/docs/zh/configure/app/dev/https.mdx +72 -2
  184. package/docs/zh/configure/app/dev/live-reload.mdx +3 -15
  185. package/docs/zh/configure/app/dev/port.mdx +18 -2
  186. package/docs/zh/configure/app/dev/progress-bar.mdx +17 -2
  187. package/docs/zh/configure/app/dev/setup-middlewares.mdx +26 -39
  188. package/docs/zh/configure/app/dev/start-url.mdx +47 -2
  189. package/docs/zh/configure/app/dev/watch-files.mdx +5 -39
  190. package/docs/zh/configure/app/dev/write-to-disk.mdx +3 -26
  191. package/docs/zh/configure/app/experiments/lazy-compilation.mdx +84 -2
  192. package/docs/zh/configure/app/experiments/source-build.mdx +29 -2
  193. package/docs/zh/configure/app/html/app-icon.mdx +48 -2
  194. package/docs/zh/configure/app/html/crossorigin.mdx +9 -2
  195. package/docs/zh/configure/app/html/disable-html-folder.mdx +34 -2
  196. package/docs/zh/configure/app/html/favicon-by-entries.mdx +30 -2
  197. package/docs/zh/configure/app/html/favicon.mdx +15 -2
  198. package/docs/zh/configure/app/html/inject-by-entries.mdx +30 -2
  199. package/docs/zh/configure/app/html/inject.mdx +8 -2
  200. package/docs/zh/configure/app/html/meta-by-entries.mdx +41 -2
  201. package/docs/zh/configure/app/html/meta.mdx +22 -2
  202. package/docs/zh/configure/app/html/mount-id.mdx +8 -2
  203. package/docs/zh/configure/app/html/script-loading.mdx +8 -2
  204. package/docs/zh/configure/app/html/tags-by-entries.mdx +37 -2
  205. package/docs/zh/configure/app/html/tags.mdx +13 -2
  206. package/docs/zh/configure/app/html/template-by-entries.mdx +26 -2
  207. package/docs/zh/configure/app/html/template-parameters-by-entries.mdx +29 -2
  208. package/docs/zh/configure/app/html/template-parameters.mdx +31 -2
  209. package/docs/zh/configure/app/html/template.mdx +8 -2
  210. package/docs/zh/configure/app/html/title-by-entries.mdx +30 -2
  211. package/docs/zh/configure/app/html/title.mdx +16 -2
  212. package/docs/zh/configure/app/output/asset-prefix.mdx +12 -2
  213. package/docs/zh/configure/app/output/assets-retry.mdx +72 -2
  214. package/docs/zh/configure/app/output/charset.mdx +8 -2
  215. package/docs/zh/configure/app/output/clean-dist-path.mdx +13 -2
  216. package/docs/zh/configure/app/output/convert-to-rem.mdx +77 -2
  217. package/docs/zh/configure/app/output/copy.mdx +6 -2
  218. package/docs/zh/configure/app/output/css-module-local-ident-name.mdx +14 -2
  219. package/docs/zh/configure/app/output/css-modules.mdx +46 -2
  220. package/docs/zh/configure/app/output/data-uri-limit.mdx +24 -2
  221. package/docs/zh/configure/app/output/disable-css-extract.mdx +9 -2
  222. package/docs/zh/configure/app/output/disable-css-module-extension.mdx +52 -2
  223. package/docs/zh/configure/app/output/disable-filename-hash.mdx +9 -2
  224. package/docs/zh/configure/app/output/disable-inline-runtime-chunk.mdx +38 -2
  225. package/docs/zh/configure/app/output/disable-minimize.mdx +7 -2
  226. package/docs/zh/configure/app/output/disable-source-map.mdx +24 -2
  227. package/docs/zh/configure/app/output/disable-svgr.mdx +14 -2
  228. package/docs/zh/configure/app/output/disable-ts-checker.mdx +46 -2
  229. package/docs/zh/configure/app/output/dist-path.mdx +39 -2
  230. package/docs/zh/configure/app/output/enable-asset-fallback.mdx +29 -2
  231. package/docs/zh/configure/app/output/enable-asset-manifest.mdx +33 -2
  232. package/docs/zh/configure/app/output/enable-css-module-tsdeclaration.mdx +25 -2
  233. package/docs/zh/configure/app/output/enable-inline-scripts.mdx +15 -2
  234. package/docs/zh/configure/app/output/enable-inline-styles.mdx +15 -2
  235. package/docs/zh/configure/app/output/enable-latest-decorators.mdx +7 -2
  236. package/docs/zh/configure/app/output/externals.mdx +18 -2
  237. package/docs/zh/configure/app/output/filename-hash.mdx +4 -27
  238. package/docs/zh/configure/app/output/filename.mdx +47 -2
  239. package/docs/zh/configure/app/output/inject-styles.mdx +15 -0
  240. package/docs/zh/configure/app/output/inline-scripts.mdx +34 -0
  241. package/docs/zh/configure/app/output/inline-styles.mdx +34 -0
  242. package/docs/zh/configure/app/output/legal-comments.mdx +16 -2
  243. package/docs/zh/configure/app/output/minify.mdx +27 -0
  244. package/docs/zh/configure/app/output/override-browserslist.mdx +20 -2
  245. package/docs/zh/configure/app/output/polyfill.mdx +12 -2
  246. package/docs/zh/configure/app/output/source-map.mdx +30 -0
  247. package/docs/zh/configure/app/output/ssg.mdx +19 -15
  248. package/docs/zh/configure/app/output/svg-default-export.mdx +27 -2
  249. package/docs/zh/configure/app/performance/build-cache.mdx +77 -2
  250. package/docs/zh/configure/app/performance/bundle-analyze.mdx +18 -2
  251. package/docs/zh/configure/app/performance/chunk-split.mdx +38 -2
  252. package/docs/zh/configure/app/performance/dns-prefetch.mdx +13 -2
  253. package/docs/zh/configure/app/performance/preconnect.mdx +14 -2
  254. package/docs/zh/configure/app/performance/prefetch.mdx +19 -2
  255. package/docs/zh/configure/app/performance/preload.mdx +21 -2
  256. package/docs/zh/configure/app/performance/print-file-size.mdx +38 -2
  257. package/docs/zh/configure/app/performance/profile.mdx +8 -2
  258. package/docs/zh/configure/app/performance/remove-console.mdx +8 -2
  259. package/docs/zh/configure/app/performance/remove-moment-locale.mdx +8 -2
  260. package/docs/zh/configure/app/performance/transform-lodash.mdx +42 -2
  261. package/docs/zh/configure/app/plugins.mdx +1 -1
  262. package/docs/zh/configure/app/security/check-syntax.mdx +66 -2
  263. package/docs/zh/configure/app/security/nonce.mdx +13 -2
  264. package/docs/zh/configure/app/security/sri.mdx +19 -2
  265. package/docs/zh/configure/app/server/port.mdx +5 -0
  266. package/docs/zh/configure/app/server/ssr.mdx +10 -9
  267. package/docs/zh/configure/app/source/alias-strategy.mdx +8 -2
  268. package/docs/zh/configure/app/source/alias.mdx +17 -2
  269. package/docs/zh/configure/app/source/config-dir.mdx +1 -1
  270. package/docs/zh/configure/app/source/decorators.mdx +8 -20
  271. package/docs/zh/configure/app/source/define.mdx +14 -2
  272. package/docs/zh/configure/app/source/enable-async-entry.mdx +1 -1
  273. package/docs/zh/configure/app/source/entries-dir.mdx +1 -1
  274. package/docs/zh/configure/app/source/exclude.mdx +8 -2
  275. package/docs/zh/configure/app/source/global-vars.mdx +102 -2
  276. package/docs/zh/configure/app/source/include.mdx +19 -2
  277. package/docs/zh/configure/app/source/mainEntryName.mdx +1 -1
  278. package/docs/zh/configure/app/source/module-scopes.mdx +62 -2
  279. package/docs/zh/configure/app/source/pre-entry.mdx +8 -2
  280. package/docs/zh/configure/app/source/resolve-extension-prefix.mdx +50 -2
  281. package/docs/zh/configure/app/source/resolve-main-fields.mdx +39 -2
  282. package/docs/zh/configure/app/source/transform-import.mdx +56 -2
  283. package/docs/zh/configure/app/tools/autoprefixer.mdx +41 -2
  284. package/docs/zh/configure/app/tools/babel.mdx +218 -2
  285. package/docs/zh/configure/app/tools/bundler-chain.mdx +26 -2
  286. package/docs/zh/configure/app/tools/css-extract.mdx +28 -2
  287. package/docs/zh/configure/app/tools/css-loader.mdx +15 -2
  288. package/docs/zh/configure/app/tools/dev-server.mdx +435 -2
  289. package/docs/zh/configure/app/tools/esbuild.mdx +1 -1
  290. package/docs/zh/configure/app/tools/html-plugin.mdx +21 -2
  291. package/docs/zh/configure/app/tools/less.mdx +79 -2
  292. package/docs/zh/configure/app/tools/minify-css.mdx +50 -2
  293. package/docs/zh/configure/app/tools/postcss.mdx +31 -2
  294. package/docs/zh/configure/app/tools/pug.mdx +47 -2
  295. package/docs/zh/configure/app/tools/rspack.mdx +8 -2
  296. package/docs/zh/configure/app/tools/sass.mdx +73 -2
  297. package/docs/zh/configure/app/tools/style-loader.mdx +8 -2
  298. package/docs/zh/configure/app/tools/styled-components.mdx +47 -2
  299. package/docs/zh/configure/app/tools/swc.mdx +33 -2
  300. package/docs/zh/configure/app/tools/terser.mdx +49 -2
  301. package/docs/zh/configure/app/tools/ts-checker.mdx +49 -2
  302. package/docs/zh/configure/app/tools/ts-loader.mdx +63 -2
  303. package/docs/zh/configure/app/tools/webpack-chain.mdx +243 -2
  304. package/docs/zh/configure/app/tools/webpack.mdx +295 -2
  305. package/docs/zh/guides/advanced-features/_meta.json +0 -1
  306. package/docs/zh/guides/advanced-features/rspack-start.mdx +2 -2
  307. package/docs/zh/guides/basic-features/css/css-modules.mdx +1 -1
  308. package/docs/zh/guides/basic-features/output-files.mdx +2 -2
  309. package/docs/zh/guides/concept/builder.mdx +1 -1
  310. package/docs/zh/guides/get-started/glossary.mdx +7 -7
  311. package/docs/zh/guides/get-started/quick-start.mdx +1 -1
  312. package/docs/zh/guides/topic-detail/_meta.json +0 -6
  313. package/docs/zh/guides/topic-detail/micro-frontend/c01-introduction.mdx +1 -1
  314. package/docs/zh/guides/topic-detail/model/quick-start.mdx +5 -0
  315. package/docs/zh/guides/troubleshooting/builder.mdx +2 -2
  316. package/docs/zh/plugin/cli-plugins/plugin-swc.mdx +4 -4
  317. package/docs/zh/plugin/rsbuild-plugins/plugin-esbuild.mdx +6 -6
  318. package/package.json +6 -11
  319. package/src/components/RsbuildLink/index.tsx +19 -0
  320. /package/docs/en/configure/app/output/{splitRouteChunks.mdx → split-route-chunks.mdx} +0 -0
  321. /package/docs/zh/configure/app/output/{splitRouteChunks.mdx → split-route-chunks.mdx} +0 -0
@@ -4,6 +4,299 @@ title: webpack
4
4
 
5
5
  # tools.webpack
6
6
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/tools/webpack.md';
7
+ - **Type:** `Object | Function | undefined`
8
+ - **Default:** `undefined`
9
+ - **Bundler:** `only support webpack`
8
10
 
9
- <Main />
11
+ `tools.webpack` is used to configure [webpack](https://webpack.js.org/).
12
+
13
+ > `tools.bundlerChain` is also used to modify the webpack configuration, and the function is more powerful. It is recommended to use `tools.bundlerChain` first.
14
+
15
+ ### Object Type
16
+
17
+ `tools.webpack` can be configured as an object to be deep merged with the built-in webpack configuration through [webpack-merge](https://github.com/survivejs/webpack-merge).
18
+
19
+ For example, add `resolve.alias` configuration:
20
+
21
+ ```js
22
+ export default {
23
+ tools: {
24
+ webpack: {
25
+ resolve: {
26
+ alias: {
27
+ '@util': 'src/util',
28
+ },
29
+ },
30
+ },
31
+ },
32
+ };
33
+ ```
34
+
35
+ ### Function Type
36
+
37
+ `tools.webpack` can be configured as a function. The first parameter of this function is the built-in webpack configuration object, you can modify this object, and then return it. For example:
38
+
39
+ ```js
40
+ export default {
41
+ tools: {
42
+ webpack: config => {
43
+ config.resolve.alias['@util'] = 'src/util';
44
+ return config;
45
+ },
46
+ },
47
+ };
48
+ ```
49
+
50
+ :::tip
51
+ The object returned by the `tools.webpack` function is used directly as the final webpack configuration and is not merged with the built-in webpack configuration.
52
+ :::
53
+
54
+ ### Utils
55
+
56
+ The second parameter of this function is an object, which contains some utility functions and properties, as follows:
57
+
58
+ #### env
59
+
60
+ - **Type:** `'development' | 'production' | 'test'`
61
+
62
+ The `env` parameter can be used to determine whether the current environment is development, production or test. For example:
63
+
64
+ ```js
65
+ export default {
66
+ tools: {
67
+ webpack: (config, { env }) => {
68
+ if (env === 'development') {
69
+ config.devtool = 'cheap-module-eval-source-map';
70
+ }
71
+ return config;
72
+ },
73
+ },
74
+ };
75
+ ```
76
+
77
+ #### isProd
78
+
79
+ - **Type:** `boolean`
80
+
81
+ The `isProd` parameter can be used to determine whether the current environment is production. For example:
82
+
83
+ ```js
84
+ export default {
85
+ tools: {
86
+ webpack: (config, { isProd }) => {
87
+ if (isProd) {
88
+ config.devtool = 'source-map';
89
+ }
90
+ return config;
91
+ },
92
+ },
93
+ };
94
+ ```
95
+
96
+ #### target
97
+
98
+ - **Type:** `'web' | 'node' | 'modern-web' | 'web-worker'`
99
+
100
+ The `target` parameter can be used to determine the current target. For example:
101
+
102
+ ```js
103
+ export default {
104
+ tools: {
105
+ webpack: (config, { target }) => {
106
+ if (target === 'node') {
107
+ // ...
108
+ }
109
+ return config;
110
+ },
111
+ },
112
+ };
113
+ ```
114
+
115
+ #### isServer
116
+
117
+ - **Type:** `boolean`
118
+
119
+ Determines whether the target environment is `node`, equivalent to `target === 'node'`.
120
+
121
+ ```js
122
+ export default {
123
+ tools: {
124
+ webpack: (config, { isServer }) => {
125
+ if (isServer) {
126
+ // ...
127
+ }
128
+ return config;
129
+ },
130
+ },
131
+ };
132
+ ```
133
+
134
+ #### isWebWorker
135
+
136
+ - **Type:** `boolean`
137
+
138
+ Determines whether the target environment is `web-worker`, equivalent to `target === 'web-worker'`.
139
+
140
+ ```js
141
+ export default {
142
+ tools: {
143
+ webpack: (config, { isWebWorker }) => {
144
+ if (isWebWorker) {
145
+ // ...
146
+ }
147
+ return config;
148
+ },
149
+ },
150
+ };
151
+ ```
152
+
153
+ #### webpack
154
+
155
+ - **Type:** `typeof import('webpack')`
156
+
157
+ The webpack instance. For example:
158
+
159
+ ```js
160
+ export default {
161
+ tools: {
162
+ webpack: (config, { webpack }) => {
163
+ config.plugins.push(new webpack.ProgressPlugin());
164
+ return config;
165
+ },
166
+ },
167
+ };
168
+ ```
169
+
170
+ #### HtmlWebpackPlugin
171
+
172
+ - **Type:** `typeof import('html-webpack-plugin')`
173
+
174
+ The HtmlWebpackPlugin instance:
175
+
176
+ ```js
177
+ export default {
178
+ tools: {
179
+ webpack: (chain, { HtmlWebpackPlugin }) => {
180
+ console.log(HtmlWebpackPlugin);
181
+ },
182
+ },
183
+ };
184
+ ```
185
+
186
+ #### addRules
187
+
188
+ - **Type:** `(rules: RuleSetRule | RuleSetRule[]) => void`
189
+
190
+ Add additional [webpack rules](https://webpack.js.org/configuration/module/#modulerules).
191
+
192
+ For example:
193
+
194
+ ```ts
195
+ export default {
196
+ tools: {
197
+ webpack: (config, { addRules }) => {
198
+ // add a single rule
199
+ addRules({
200
+ test: /\.foo/,
201
+ loader: require.resolve('foo-loader'),
202
+ });
203
+
204
+ // Add multiple rules as an array
205
+ addRules([
206
+ {
207
+ test: /\.foo/,
208
+ loader: require.resolve('foo-loader'),
209
+ },
210
+ {
211
+ test: /\.bar/,
212
+ loader: require.resolve('bar-loader'),
213
+ },
214
+ ]);
215
+ },
216
+ },
217
+ };
218
+ ```
219
+
220
+ #### prependPlugins
221
+
222
+ - **Type:** `(plugins: WebpackPluginInstance | WebpackPluginInstance[]) => void`
223
+
224
+ Add additional plugins to the head of the internal webpack plugins array, and the plugin will be executed first.
225
+
226
+ ```ts
227
+ export default {
228
+ tools: {
229
+ webpack: (config, { prependPlugins, webpack }) => {
230
+ // add a single plugin
231
+ prependPlugins(
232
+ new webpack.BannerPlugin({
233
+ banner: 'hello world!',
234
+ }),
235
+ );
236
+
237
+ // Add multiple plugins
238
+ prependPlugins([new PluginA(), new PluginB()]);
239
+ },
240
+ },
241
+ };
242
+ ```
243
+
244
+ #### appendPlugins
245
+
246
+ - **Type:** `(plugins: WebpackPluginInstance | WebpackPluginInstance[]) => void`
247
+
248
+ Add additional plugins at the end of the internal webpack plugins array, the plugin will be executed last.
249
+
250
+ ```ts
251
+ export default {
252
+ tools: {
253
+ webpack: (config, { appendPlugins, webpack }) => {
254
+ // add a single plugin
255
+ appendPlugins([
256
+ new webpack.BannerPlugin({
257
+ banner: 'hello world!',
258
+ }),
259
+ ]);
260
+
261
+ // Add multiple plugins
262
+ appendPlugins([new PluginA(), new PluginB()]);
263
+ },
264
+ },
265
+ };
266
+ ```
267
+
268
+ #### removePlugin
269
+
270
+ - **Type:** `(name: string) => void`
271
+
272
+ Remove the internal webpack plugin, the parameter is the `constructor.name` of the plugin.
273
+
274
+ For example, remove the internal [fork-ts-checker-webpack-plugin](https://github.com/TypeStrong/fork-ts-checker-webpack-plugin):
275
+
276
+ ```ts
277
+ export default {
278
+ tools: {
279
+ webpack: (config, { removePlugin }) => {
280
+ removePlugin('ForkTsCheckerWebpackPlugin');
281
+ },
282
+ },
283
+ };
284
+ ```
285
+
286
+ #### mergeConfig
287
+
288
+ - **Type:** `(...configs: WebpackConfig[]) => WebpackConfig`
289
+
290
+ Used to merge multiple webpack configs, same as [webpack-merge](https://github.com/survivejs/webpack-merge).
291
+
292
+ ```ts
293
+ export default {
294
+ tools: {
295
+ webpack: (config, { mergeConfig }) => {
296
+ return mergeConfig(config, {
297
+ devtool: 'eval',
298
+ });
299
+ },
300
+ },
301
+ };
302
+ ```
@@ -14,7 +14,6 @@
14
14
  },
15
15
  "build-performance",
16
16
  "compatibility",
17
- "eslint",
18
17
  "low-level",
19
18
  "source-build",
20
19
  "web-server"
@@ -4,7 +4,7 @@ sidebar_position: 1
4
4
 
5
5
  # Using Rspack
6
6
 
7
- import Rspack from '@modern-js/builder-doc/docs/en/shared/rspackTip.mdx';
7
+ import Rspack from '@site-docs-en/components/rspackTip.mdx';
8
8
 
9
9
  <Rspack />
10
10
 
@@ -42,7 +42,7 @@ export default defineConfig({
42
42
  If your current version is lower than MAJOR_VERSION.59.0, you can upgrade by executing `npx modern upgrade`.
43
43
  :::
44
44
 
45
- import RspackPrecautions from '@modern-js/builder-doc/docs/en/shared/rspackPrecautions.md';
45
+ import RspackPrecautions from '@site-docs-en/components/rspackPrecautions.mdx';
46
46
 
47
47
  <RspackPrecautions />
48
48
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  [CSS Modules](https://github.com/css-modules/css-modules) allows us to write CSS code in a modular way, and these styles can be imported and used in JavaScript files. Using CSS Modules can automatically generate unique class names, isolate styles between different modules, and avoid class name conflicts.
4
4
 
5
- Builder supports CSS Modules by default, you don't need to add additional configuration. Our convention is to use the `[name].module.css` filename to enable CSS Modules.
5
+ Modern.js supports CSS Modules by default, you don't need to add additional configuration. Our convention is to use the `[name].module.css` filename to enable CSS Modules.
6
6
 
7
7
  The following style files are considered CSS Modules:
8
8
 
@@ -163,7 +163,7 @@ After adding the type declaration, if the type error still exists, you can try t
163
163
 
164
164
  Although the above method can provide the type of CSS Modules, it cannot accurately prompt which classNames are exported by a certain CSS file.
165
165
 
166
- Builder supports generating accurate type declarations for CSS Modules, you only need to enable the [output.enableCssModuleTSDeclaration](/configure/app/output/enable-css-module-tsdeclaration) config, and then execute the build, Modern.js will generate type declaration files for all CSS Modules.
166
+ Modern.js supports generating accurate type declarations for CSS Modules, you only need to enable the [output.enableCssModuleTSDeclaration](/configure/app/output/enable-css-module-tsdeclaration) config, and then execute the build, Modern.js will generate type declaration files for all CSS Modules.
167
167
 
168
168
  ```ts
169
169
  export default {
@@ -42,7 +42,7 @@ In the filename, `[name]` represents the entry name corresponding to this file,
42
42
 
43
43
  ## Modify the Directory
44
44
 
45
- Builder provides some configs to modify the directory or filename, you can:
45
+ Modern.js provides some configs to modify the directory or filename, you can:
46
46
 
47
47
  - Modify the filename through [output.filename](/configure/app/output/filename).
48
48
  - Modify the output path of through [output.distPath](/configure/app/output/dist-path).
@@ -205,4 +205,4 @@ In the above configuration, the `x-tt-env` request header is set for all routes,
205
205
 
206
206
  :::tip
207
207
  Headers set in routes will override headers set for entries.
208
- :::
208
+ :::
@@ -4,7 +4,7 @@ sidebar_position: 2
4
4
 
5
5
  # Build Engine
6
6
 
7
- Modern.js internally encapsulates its own build tool (Modern.js Builder) based on [Rsbuild](https://rsbuild.dev/), and supports seamless switching between Webpack and Rspack bundlers.
7
+ Modern.js internally encapsulates [Rsbuild](https://rsbuild.dev/), and supports seamless switching between Webpack and Rspack bundlers.
8
8
 
9
9
  ::: tip What is Rsbuild?
10
10
  Rsbuild is a build tool based on Rspack. It is an enhanced Rspack CLI, easy-to-use, and ready-to-use out of the box.
@@ -12,13 +12,13 @@ The BFF service acts as an intermediary between the frontend application and the
12
12
 
13
13
  ## Bundler
14
14
 
15
- import Bundler from '@modern-js/builder-doc/docs/en/shared/bundler.md';
15
+ import Bundler from '@site-docs-en/components/bundler.mdx';
16
16
 
17
17
  <Bundler />
18
18
 
19
19
  ## Builder
20
20
 
21
- import Builder from '@modern-js/builder-doc/docs/en/shared/builder.md';
21
+ import Builder from '@site-docs-en/components/builder.mdx';
22
22
 
23
23
  <Builder />
24
24
 
@@ -36,25 +36,25 @@ Starting from the architecture level, it combines multiple independently deliver
36
36
 
37
37
  ## Micro-frontend
38
38
 
39
- import MicroFrontend from '@modern-js/builder-doc/docs/en/shared/micro-frontend.md';
39
+ import MicroFrontend from '@site-docs-en/components/micro-frontend.mdx';
40
40
 
41
41
  <MicroFrontend />
42
42
 
43
43
  ## Module Federation
44
44
 
45
- import ModuleFederation from '@modern-js/builder-doc/docs/en/shared/module-federation.md';
45
+ import ModuleFederation from '@site-docs-en/components/module-federation.mdx';
46
46
 
47
47
  <ModuleFederation />
48
48
 
49
49
  ## Rsbuild
50
50
 
51
- import Rsbuild from '@modern-js/builder-doc/docs/en/shared/rsbuild.md';
51
+ import Rsbuild from '@site-docs-en/components/rsbuild.mdx';
52
52
 
53
53
  <Rsbuild />
54
54
 
55
55
  ## Rspack
56
56
 
57
- import Rspack from '@modern-js/builder-doc/docs/en/shared/rspack.md';
57
+ import Rspack from '@site-docs-en/components/rspack.mdx';
58
58
 
59
59
  <Rspack />
60
60
 
@@ -76,6 +76,6 @@ Compared to traditional SSR, SSG can provide faster loading speeds and less serv
76
76
 
77
77
  ## SWC
78
78
 
79
- import SWC from '@modern-js/builder-doc/docs/en/shared/swc.md';
79
+ import SWC from '@site-docs-en/components/swc.mdx';
80
80
 
81
81
  <SWC />
@@ -70,7 +70,7 @@ In a newly created project, the `@modern-js/app-tools` npm package is installed
70
70
 
71
71
  - It offers commonly used CLI commands such as `modern dev`, `modern build`, and more.
72
72
  - It integrates Modern.js Core, providing capabilities for configuration parsing, plugin loading, and more.
73
- - It integrates Modern.js Builder, providing build capabilities.
73
+ - It integrates Rsbuild, providing build capabilities.
74
74
  - It integrates Modern.js Server, providing capabilities for development and production servers.
75
75
 
76
76
  `@modern-js/app-tools` is implemented based on the plugin system of Modern.js. Essentially, it is a plugin. Therefore, you need to register `appTools` in the `plugins` field of the configuration file:
@@ -10,11 +10,5 @@
10
10
  "name": "model",
11
11
  "label": "reduck",
12
12
  "collapsed": true
13
- },
14
- {
15
- "type": "dir",
16
- "name": "generator",
17
- "label": "generator",
18
- "collapsed": true
19
13
  }
20
14
  ]
@@ -5,7 +5,7 @@ title: Introduction
5
5
 
6
6
  # Introduction
7
7
 
8
- import MicroFrontend from '@modern-js/builder-doc/docs/en/shared/micro-frontend.md';
8
+ import MicroFrontend from '@site-docs-en/components/micro-frontend.mdx';
9
9
 
10
10
  <MicroFrontend />
11
11
 
@@ -2,6 +2,11 @@
2
2
  sidebar_position: 1
3
3
  title: Quick Start
4
4
  ---
5
+
6
+ :::caution
7
+ New projects are no longer recommended to use Reduck. You can use state management tools from the community, such as [Jotai](https://jotai.org/), [zustand](https://zustand.docs.pmnd.rs/getting-started/introduction), [valtio](https://valtio.dev/docs/introduction/getting-started), etc.
8
+ :::
9
+
5
10
  # Quick Start
6
11
 
7
12
  import ReduckMigration from "@site-docs-en/components/reduck-migration"
@@ -40,8 +40,8 @@ Modern.js provides [inspect command](https://modernjs.dev/en/apis/app/commands.h
40
40
 
41
41
  Inspect config succeed, open following files to view the content:
42
42
 
43
- - Builder Config: /root/my-project/dist/builder.config.js
44
- - Rspack Config (web): /root/my-project/dist/rspack.config.web.js
43
+ - Builder Config: /root/my-project/dist/rsbuild.config.mjs
44
+ - Rspack Config (web): /root/my-project/dist/rspack.config.web.mjs
45
45
  ```
46
46
 
47
47
  ---
@@ -11,7 +11,7 @@ Please refer to [「Use Rspack」](guides/advanced-features/rspack-start) for mo
11
11
 
12
12
  :::
13
13
 
14
- import SWC from '@modern-js/builder-doc/docs/en/shared/swc.md';
14
+ import SWC from '@site-docs-en/components/swc.mdx';
15
15
 
16
16
  <SWC />
17
17
 
@@ -51,9 +51,9 @@ For a detailed comparison between minifiers, see [minification-benchmarks](https
51
51
 
52
52
  ### Used in Modern.js framework
53
53
 
54
- The Modern.js framework integrates the Builder's SWC plugin, and you can use it in the following ways:
54
+ The Modern.js framework integrates the SWC plugin, and you can use it in the following ways:
55
55
 
56
- import EnableSWC from '@modern-js/builder-doc/docs/en/shared/enableSwc.md';
56
+ import EnableSWC from '@site-docs-en/components/enableSwc.mdx';
57
57
 
58
58
  <EnableSWC />
59
59
 
@@ -297,7 +297,7 @@ This is ported by Next.js team from [@emotion/babel-plugin](https://www.npmjs.co
297
297
  #### extensions.pluginImport
298
298
 
299
299
  :::tip
300
- Builder provides the [source.transformImport](/configure/app/source/transform-import) config, so you don't need to configure `extensions.pluginImport` manually.
300
+ Modern.js provides the [source.transformImport](/configure/app/source/transform-import) config, so you don't need to configure `extensions.pluginImport` manually.
301
301
  :::
302
302
 
303
303
  Ported from [babel-plugin-import](https://github.com/umijs/babel-plugin-import), configurations are the same.
@@ -11,7 +11,7 @@ Please refer to [「Use Rspack」](guides/advanced-features/rspack-start) for mo
11
11
 
12
12
  :::
13
13
 
14
- import Esbuild from '@modern-js/builder-doc/docs/en/shared/esbuild.md';
14
+ import Esbuild from '@site-docs-en/components/esbuild.mdx';
15
15
 
16
16
  <Esbuild />
17
17
 
@@ -19,7 +19,7 @@ import Esbuild from '@modern-js/builder-doc/docs/en/shared/esbuild.md';
19
19
 
20
20
  ### Used in Modern.js framework
21
21
 
22
- The Modern.js framework integrates the Builder's esbuild plugin by default, so you don't need to manually install and register the plugin, just use the [tools.esbuild](https://modernjs.dev/en/configure/app/tools/esbuild.html) configuration:
22
+ The Modern.js framework integrates the esbuild plugin by default, so you don't need to manually install and register the plugin, just use the [tools.esbuild](https://modernjs.dev/en/configure/app/tools/esbuild.html) configuration:
23
23
 
24
24
  ```js
25
25
  export default defineConfig({
@@ -102,7 +102,7 @@ builderPluginEsbuild({
102
102
 
103
103
  #### Disable transformation
104
104
 
105
- Set `loader` to `false` to disable esbuild transformation, and Builder will continue to use Babel to transform the code.
105
+ Set `loader` to `false` to disable esbuild transformation, and Modern.js will continue to use Babel to transform the code.
106
106
 
107
107
  ```ts
108
108
  builderPluginEsbuild({
@@ -146,7 +146,7 @@ builderPluginEsbuild({
146
146
 
147
147
  #### Disable minification
148
148
 
149
- Set `minimize` to `false` to disable esbuild minification, and Builder will continue to use Terser to minify the code.
149
+ Set `minimize` to `false` to disable esbuild minification, and Modern.js will continue to use Terser to minify the code.
150
150
 
151
151
  ```ts
152
152
  builderPluginEsbuild({
@@ -249,21 +249,3 @@ Inspect config succeed, open following files to view the content:
249
249
  - Webpack Config (web): /root/my-project/dist/webpack.config.web.mjs
250
250
  - Webpack Config (node): /root/my-project/dist/webpack.config.node.mjs
251
251
  ```
252
-
253
- ## modern lint
254
-
255
- 运行 `ESLint` 进行代码语法检查。
256
-
257
- ```bash
258
- Usage: modern lint [options] [...files]
259
-
260
- lint and fix source files
261
-
262
- Options:
263
- --no-fix disable auto fix source file
264
- -h, --help display help for command
265
- ```
266
-
267
- 通常情况下,我们只需要在 `git commit` 阶段通过 `lint-staged` 检查本次提交修改的部分代码。
268
-
269
- - 设置 `--no-fix` 参数后可以关闭自动修复 lint 错误代码的能力。
@@ -185,7 +185,6 @@ pnpm run lint
185
185
  root
186
186
  └─ packages
187
187
  └─ document
188
- ├─ builder-doc # Modern.js Builder 文档
189
188
  ├─ main-doc # Modern.js Framework 文档
190
189
  └─ module-doc # Modern.js Module 文档
191
190
  ```
@@ -0,0 +1,3 @@
1
+ Builder 指的是 Modern.js 的构建层,它的目标是为 Modern.js 用户提供开箱即用的构建能力,并支持在 webpack 和 Rspack 间无缝切换。
2
+
3
+ Modern.js `MAJOR_VERSION.46.0` 之前版本使用的是 `@modern-js/builder`, 从 `MAJOR_VERSION.46.0` 开始升级为 [Rsbuild](https://rsbuild.dev/)。
@@ -0,0 +1,4 @@
1
+
2
+ 指 [webpack](https://webpack.js.org/)、[Rspack](https://www.rspack.dev/) 等模块打包工具。
3
+
4
+ 打包工具的主要目标是将 JavaScript、CSS 等文件打包在一起,打包后的文件可以在浏览器、Node.js 等环境中使用。当 Bundler 处理 Web 应用时,它会构建一个依赖关系图,其中包含应用需要的各个模块,然后将所有模块打包成一个或多个 bundle。
@@ -0,0 +1,17 @@
1
+ 首先,你需要执行 `pnpm run new` 启用 SWC 编译:
2
+
3
+ ```bash
4
+ ? 请选择你想要的操作 启用可选功能
5
+ ? 请选择功能名称 启用「SWC 编译」
6
+ ```
7
+
8
+ 执行完成后,你只需在 `modern.config.ts` 文件中注册 Modern.js 的 SWC 插件,即可启用 SWC 编译和压缩能力。
9
+
10
+ ```ts title="modern.config.ts"
11
+ import { appTools, defineConfig } from '@modern-js/app-tools';
12
+ import { swcPlugin } from '@modern-js/plugin-swc';
13
+
14
+ export default defineConfig({
15
+ plugins: [appTools(), swcPlugin()],
16
+ });
17
+ ```
@@ -0,0 +1,3 @@
1
+ [esbuild](https://esbuild.github.io/) 是一款基于 Golang 开发的前端构建工具,具有打包、编译和压缩 JavaScript 代码的功能,相比传统的打包编译工具,esbuild 在性能上有显著提升。在代码压缩方面,相比 webpack 内置的 terser 压缩器,esbuild 在性能上有数十倍的提升。
2
+
3
+ Modern.js 提供了 esbuild 插件,让你能使用 esbuild 代替 babel-loader、ts-loader 和 terser 等库进行代码编译和压缩。在大型工程中启用 esbuild 后,**可以大幅度减少代码编译和压缩所需的时间,同时有效避免 OOM (heap out of memory) 问题**。
@@ -0,0 +1,6 @@
1
+ 微前端(Micro-frontend,简称 MFE)是一种类似于微服务的架构,是一种由独立交付的多个前端应用组成整体的架构风格,它将前端应用分解成一些更小、更简单的能够独立开发、测试、部署的应用,而在用户看来仍然是内聚的单个产品。
2
+
3
+ 它主要解决了两个问题:
4
+
5
+ - 随着项目迭代应用越来越庞大,难以维护。
6
+ - 跨团队或跨部门协作开发项目导致效率低下的问题。
@@ -0,0 +1,7 @@
1
+ 模块联邦(Module Federation,简称 MF)是 Webpack 的一个特性。它允许 JavaScript 应用从另一个应用动态加载代码,并在此过程中共享依赖关系。如果使用联邦模块的应用缺少联邦代码所需的依赖项,Webpack 将从该联邦的构建源下载缺失的依赖项。
2
+
3
+ 这使得可以创建微前端风格的应用程序,多个系统可以共享代码,并在不需要重新构建整个应用程序的情况下进行动态更新。
4
+
5
+ Modern.js 提供了一个 Module Federation 的示例项目,请参考 [module-federation-examples - modernjs](https://github.com/module-federation/module-federation-examples/tree/db5bdbeee56f779999a2c591fc553eb94eb20b36/modernjs)。
6
+
7
+ 你也可以阅读 [webpack Module Federation 文档](https://webpack.docschina.org/concepts/module-federation/) 来了解更多概念。
@@ -0,0 +1,28 @@
1
+ 在开始使用前,你需要安装 [Node.js](https://nodejs.org/),并保证 Node.js 版本不低于 16.2.0,**我们推荐使用 Node.js 18 的 LTS 版本**。
2
+
3
+ 你可以通过以下命令检查当前使用的 Node.js 版本:
4
+
5
+ ```bash
6
+ node -v
7
+ ```
8
+
9
+ 如果你当前的环境中尚未安装 Node.js,或是安装的版本低于 16,可以通过 [nvm](https://github.com/nvm-sh/nvm) 或 [fnm](https://github.com/Schniz/fnm) 安装需要的版本。
10
+
11
+ 下面是通过 nvm 安装 Node.js 18 LTS 版本的例子:
12
+
13
+ ```bash
14
+ # 安装 Node.js 18 的长期支持版本
15
+ nvm install 18 --lts
16
+
17
+ # 将刚安装的 Node.js 18 设置为默认版本
18
+ nvm alias default 18
19
+
20
+ # 切换到刚安装的 Node.js 18
21
+ nvm use 18
22
+ ```
23
+
24
+ :::tip nvm 和 fnm
25
+ nvm 和 fnm 都是 Node.js 版本管理工具。相对来说,nvm 较为成熟和稳定,而 fnm 是使用 Rust 实现的,比 nvm 提供了更好的性能。
26
+ :::
27
+
28
+ 此外,在安装 nvm 或 fnm 后,然后只要仓库根目录下有内容为 `lts/hydrogen` 的 `.nvmrc` 文件,进入这个仓库时就会自动安装或切换到正确的 Node.js 版本。
@@ -0,0 +1 @@
1
+ Modern.js 还支持了基于浏览器 [UA](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/User-Agent) 信息的运行时按需 Polyfill 方案,具体使用姿势可查看 [运行时按需 Polyfill](/guides/advanced-features/compatibility.html#运行时按需-polyfill)