@modern-js/main-doc 2.59.0 → 2.60.1-alpha.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (414) hide show
  1. package/docs/en/_meta.json +10 -5
  2. package/docs/en/apis/app/hooks/api/lambda.mdx +4 -48
  3. package/docs/en/apis/app/hooks/api/middleware.mdx +11 -0
  4. package/docs/en/community/blog/v2-release-note.mdx +1 -1
  5. package/docs/en/community/contributing-guide.mdx +0 -1
  6. package/docs/en/components/builder.mdx +3 -0
  7. package/docs/en/components/bundler.mdx +3 -0
  8. package/docs/en/components/enable-bff.mdx +19 -2
  9. package/docs/en/components/enableSwc.mdx +17 -0
  10. package/docs/en/components/esbuild.mdx +3 -0
  11. package/docs/en/components/extend-bff-function.mdx +5 -0
  12. package/docs/en/components/micro-frontend.mdx +6 -0
  13. package/docs/en/components/module-federation.mdx +7 -0
  14. package/docs/en/components/nodeVersion.mdx +26 -0
  15. package/docs/en/components/other-plugins.mdx +0 -0
  16. package/docs/en/components/output-asset-prefix-extend.mdx +0 -0
  17. package/docs/en/components/output-polyfill-extend.mdx +0 -0
  18. package/docs/en/components/prerequisites.mdx +1 -1
  19. package/docs/en/components/rsbuild-config-tooltip.mdx +5 -0
  20. package/docs/en/components/rsbuild.mdx +3 -0
  21. package/docs/en/components/rspack.mdx +3 -0
  22. package/docs/en/components/rspackPrecautions.mdx +6 -0
  23. package/docs/en/components/rspackTip.mdx +7 -0
  24. package/docs/en/components/swc.mdx +3 -0
  25. package/docs/en/configure/app/auto-load-plugin.mdx +4 -0
  26. package/docs/en/configure/app/dev/asset-prefix.mdx +12 -2
  27. package/docs/en/configure/app/dev/before-start-url.mdx +14 -2
  28. package/docs/en/configure/app/dev/client.mdx +20 -16
  29. package/docs/en/configure/app/dev/hmr.mdx +8 -2
  30. package/docs/en/configure/app/dev/host.mdx +15 -2
  31. package/docs/en/configure/app/dev/https.mdx +71 -2
  32. package/docs/en/configure/app/dev/live-reload.mdx +3 -15
  33. package/docs/en/configure/app/dev/port.mdx +18 -2
  34. package/docs/en/configure/app/dev/progress-bar.mdx +17 -2
  35. package/docs/en/configure/app/dev/setup-middlewares.mdx +25 -39
  36. package/docs/en/configure/app/dev/start-url.mdx +46 -2
  37. package/docs/en/configure/app/dev/watch-files.mdx +5 -39
  38. package/docs/en/configure/app/dev/write-to-disk.mdx +4 -27
  39. package/docs/en/configure/app/experiments/lazy-compilation.mdx +84 -2
  40. package/docs/en/configure/app/experiments/source-build.mdx +28 -3
  41. package/docs/en/configure/app/html/app-icon.mdx +48 -2
  42. package/docs/en/configure/app/html/crossorigin.mdx +8 -2
  43. package/docs/en/configure/app/html/disable-html-folder.mdx +35 -2
  44. package/docs/en/configure/app/html/favicon-by-entries.mdx +29 -2
  45. package/docs/en/configure/app/html/favicon.mdx +14 -2
  46. package/docs/en/configure/app/html/inject-by-entries.mdx +29 -2
  47. package/docs/en/configure/app/html/inject.mdx +8 -2
  48. package/docs/en/configure/app/html/meta-by-entries.mdx +41 -2
  49. package/docs/en/configure/app/html/meta.mdx +22 -2
  50. package/docs/en/configure/app/html/mount-id.mdx +8 -2
  51. package/docs/en/configure/app/html/script-loading.mdx +8 -2
  52. package/docs/en/configure/app/html/tags-by-entries.mdx +37 -2
  53. package/docs/en/configure/app/html/tags.mdx +13 -2
  54. package/docs/en/configure/app/html/template-by-entries.mdx +26 -2
  55. package/docs/en/configure/app/html/template-parameters-by-entries.mdx +28 -2
  56. package/docs/en/configure/app/html/template-parameters.mdx +31 -2
  57. package/docs/en/configure/app/html/template.mdx +8 -2
  58. package/docs/en/configure/app/html/title-by-entries.mdx +30 -2
  59. package/docs/en/configure/app/html/title.mdx +16 -2
  60. package/docs/en/configure/app/output/asset-prefix.mdx +12 -2
  61. package/docs/en/configure/app/output/assets-retry.mdx +72 -2
  62. package/docs/en/configure/app/output/charset.mdx +8 -2
  63. package/docs/en/configure/app/output/clean-dist-path.mdx +13 -2
  64. package/docs/en/configure/app/output/convert-to-rem.mdx +76 -2
  65. package/docs/en/configure/app/output/copy.mdx +5 -2
  66. package/docs/en/configure/app/output/css-module-local-ident-name.mdx +14 -2
  67. package/docs/en/configure/app/output/css-modules.mdx +46 -2
  68. package/docs/en/configure/app/output/data-uri-limit.mdx +24 -2
  69. package/docs/en/configure/app/output/disable-css-extract.mdx +9 -2
  70. package/docs/en/configure/app/output/disable-css-module-extension.mdx +52 -2
  71. package/docs/en/configure/app/output/disable-filename-hash.mdx +9 -2
  72. package/docs/en/configure/app/output/disable-inline-runtime-chunk.mdx +38 -2
  73. package/docs/en/configure/app/output/disable-minimize.mdx +7 -2
  74. package/docs/en/configure/app/output/disable-source-map.mdx +24 -2
  75. package/docs/en/configure/app/output/disable-svgr.mdx +13 -2
  76. package/docs/en/configure/app/output/disable-ts-checker.mdx +46 -2
  77. package/docs/en/configure/app/output/dist-path.mdx +39 -2
  78. package/docs/en/configure/app/output/enable-asset-fallback.mdx +29 -2
  79. package/docs/en/configure/app/output/enable-asset-manifest.mdx +33 -2
  80. package/docs/en/configure/app/output/enable-css-module-tsdeclaration.mdx +25 -2
  81. package/docs/en/configure/app/output/enable-inline-scripts.mdx +15 -2
  82. package/docs/en/configure/app/output/enable-inline-styles.mdx +15 -2
  83. package/docs/en/configure/app/output/enable-latest-decorators.mdx +7 -2
  84. package/docs/en/configure/app/output/externals.mdx +18 -2
  85. package/docs/en/configure/app/output/filename-hash.mdx +3 -27
  86. package/docs/en/configure/app/output/filename.mdx +47 -2
  87. package/docs/en/configure/app/output/inject-styles.mdx +15 -0
  88. package/docs/en/configure/app/output/inline-scripts.mdx +34 -0
  89. package/docs/en/configure/app/output/inline-styles.mdx +34 -0
  90. package/docs/en/configure/app/output/legal-comments.mdx +16 -2
  91. package/docs/en/configure/app/output/minify.mdx +27 -0
  92. package/docs/en/configure/app/output/override-browserslist.mdx +18 -2
  93. package/docs/en/configure/app/output/polyfill.mdx +12 -2
  94. package/docs/en/configure/app/output/source-map.mdx +30 -0
  95. package/docs/en/configure/app/output/ssg.mdx +20 -17
  96. package/docs/en/configure/app/output/svg-default-export.mdx +27 -2
  97. package/docs/en/configure/app/performance/build-cache.mdx +78 -2
  98. package/docs/en/configure/app/performance/bundle-analyze.mdx +18 -2
  99. package/docs/en/configure/app/performance/chunk-split.mdx +38 -2
  100. package/docs/en/configure/app/performance/dns-prefetch.mdx +13 -2
  101. package/docs/en/configure/app/performance/preconnect.mdx +14 -2
  102. package/docs/en/configure/app/performance/prefetch.mdx +19 -2
  103. package/docs/en/configure/app/performance/preload.mdx +21 -2
  104. package/docs/en/configure/app/performance/print-file-size.mdx +38 -2
  105. package/docs/en/configure/app/performance/profile.mdx +8 -2
  106. package/docs/en/configure/app/performance/remove-console.mdx +8 -2
  107. package/docs/en/configure/app/performance/remove-moment-locale.mdx +8 -2
  108. package/docs/en/configure/app/performance/transform-lodash.mdx +42 -2
  109. package/docs/en/configure/app/plugins.mdx +3 -3
  110. package/docs/en/configure/app/security/check-syntax.mdx +66 -2
  111. package/docs/en/configure/app/security/nonce.mdx +13 -2
  112. package/docs/en/configure/app/security/sri.mdx +19 -2
  113. package/docs/en/configure/app/server/port.mdx +5 -0
  114. package/docs/en/configure/app/server/ssr.mdx +10 -9
  115. package/docs/en/configure/app/source/alias-strategy.mdx +8 -2
  116. package/docs/en/configure/app/source/alias.mdx +17 -2
  117. package/docs/en/configure/app/source/config-dir.mdx +1 -1
  118. package/docs/en/configure/app/source/decorators.mdx +8 -21
  119. package/docs/en/configure/app/source/define.mdx +14 -2
  120. package/docs/en/configure/app/source/enable-async-entry.mdx +1 -1
  121. package/docs/en/configure/app/source/entries-dir.mdx +1 -1
  122. package/docs/en/configure/app/source/exclude.mdx +8 -2
  123. package/docs/en/configure/app/source/global-vars.mdx +103 -2
  124. package/docs/en/configure/app/source/include.mdx +19 -2
  125. package/docs/en/configure/app/source/mainEntryName.mdx +1 -1
  126. package/docs/en/configure/app/source/module-scopes.mdx +62 -2
  127. package/docs/en/configure/app/source/pre-entry.mdx +8 -2
  128. package/docs/en/configure/app/source/resolve-extension-prefix.mdx +48 -2
  129. package/docs/en/configure/app/source/resolve-main-fields.mdx +39 -2
  130. package/docs/en/configure/app/source/transform-import.mdx +56 -2
  131. package/docs/en/configure/app/tools/autoprefixer.mdx +41 -2
  132. package/docs/en/configure/app/tools/babel.mdx +218 -2
  133. package/docs/en/configure/app/tools/bundler-chain.mdx +23 -2
  134. package/docs/en/configure/app/tools/css-extract.mdx +31 -2
  135. package/docs/en/configure/app/tools/css-loader.mdx +14 -2
  136. package/docs/en/configure/app/tools/dev-server.mdx +435 -2
  137. package/docs/en/configure/app/tools/esbuild.mdx +2 -2
  138. package/docs/en/configure/app/tools/html-plugin.mdx +21 -2
  139. package/docs/en/configure/app/tools/less.mdx +78 -2
  140. package/docs/en/configure/app/tools/minify-css.mdx +50 -2
  141. package/docs/en/configure/app/tools/postcss.mdx +30 -2
  142. package/docs/en/configure/app/tools/pug.mdx +47 -2
  143. package/docs/en/configure/app/tools/rspack.mdx +8 -2
  144. package/docs/en/configure/app/tools/sass.mdx +75 -2
  145. package/docs/en/configure/app/tools/style-loader.mdx +8 -2
  146. package/docs/en/configure/app/tools/styled-components.mdx +48 -2
  147. package/docs/en/configure/app/tools/swc.mdx +34 -3
  148. package/docs/en/configure/app/tools/terser.mdx +49 -2
  149. package/docs/en/configure/app/tools/ts-checker.mdx +49 -2
  150. package/docs/en/configure/app/tools/ts-loader.mdx +63 -2
  151. package/docs/en/configure/app/tools/webpack-chain.mdx +239 -2
  152. package/docs/en/configure/app/tools/webpack.mdx +295 -2
  153. package/docs/en/guides/_meta.json +0 -5
  154. package/docs/en/guides/advanced-features/_meta.json +7 -5
  155. package/docs/en/guides/advanced-features/bff/_meta.json +1 -1
  156. package/docs/en/guides/advanced-features/bff/extend-server.mdx +154 -0
  157. package/docs/en/guides/advanced-features/bff/frameworks.mdx +52 -123
  158. package/docs/en/guides/advanced-features/bff/function.mdx +108 -80
  159. package/docs/en/guides/advanced-features/bff/sdk.mdx +40 -51
  160. package/docs/en/guides/advanced-features/build-performance.mdx +6 -21
  161. package/docs/en/guides/advanced-features/page-performance/_meta.json +1 -0
  162. package/docs/en/guides/advanced-features/rspack-start.mdx +2 -2
  163. package/docs/en/guides/basic-features/css/css-modules.mdx +2 -2
  164. package/docs/en/guides/basic-features/output-files.mdx +1 -1
  165. package/docs/en/guides/basic-features/render/ssg.mdx +1 -1
  166. package/docs/en/guides/basic-features/render/streaming-ssr.mdx +1 -1
  167. package/docs/en/guides/basic-features/routes.mdx +2 -3
  168. package/docs/en/guides/basic-features/static-assets.mdx +1 -1
  169. package/docs/en/guides/concept/builder.mdx +1 -1
  170. package/docs/en/guides/deprecated.md +2 -0
  171. package/docs/en/guides/get-started/glossary.mdx +7 -7
  172. package/docs/en/guides/get-started/quick-start.mdx +1 -1
  173. package/docs/en/guides/topic-detail/_meta.json +0 -6
  174. package/docs/en/guides/topic-detail/micro-frontend/c01-introduction.mdx +1 -1
  175. package/docs/en/guides/troubleshooting/builder.mdx +2 -2
  176. package/docs/en/plugin/_meta.json +19 -0
  177. package/docs/en/plugin/cli-plugins/_meta.json +1 -0
  178. package/docs/en/plugin/cli-plugins/plugin-bff.mdx +5 -0
  179. package/docs/en/plugin/cli-plugins/plugin-ssg.mdx +5 -0
  180. package/docs/en/{guides/rsbuild-plugins → plugin/cli-plugins}/plugin-swc.mdx +11 -4
  181. package/docs/en/plugin/cli-plugins/plugin-tailwind.mdx +5 -0
  182. package/docs/en/plugin/cli-plugins.mdx +6 -0
  183. package/docs/en/{guides/advanced-features/rsbuild-plugin.mdx → plugin/introduction.mdx} +34 -9
  184. package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/extend.mdx +1 -1
  185. package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/implement.mdx +3 -3
  186. package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/plugin-api.mdx +2 -2
  187. package/docs/en/plugin/rsbuild-plugins/_meta.json +1 -0
  188. package/docs/en/{guides → plugin}/rsbuild-plugins/plugin-esbuild.mdx +4 -4
  189. package/docs/en/plugin/rsbuild-plugins.mdx +3 -0
  190. package/docs/zh/_meta.json +10 -5
  191. package/docs/zh/apis/app/hooks/api/lambda.mdx +5 -48
  192. package/docs/zh/apis/app/hooks/api/middleware.mdx +11 -0
  193. package/docs/zh/community/blog/v2-release-note.mdx +1 -1
  194. package/docs/zh/community/contributing-guide.mdx +0 -1
  195. package/docs/zh/components/builder.mdx +3 -0
  196. package/docs/zh/components/bundler.mdx +4 -0
  197. package/docs/zh/components/enable-bff.mdx +19 -2
  198. package/docs/zh/components/enableSwc.mdx +17 -0
  199. package/docs/zh/components/esbuild.mdx +3 -0
  200. package/docs/zh/components/extend-bff-function.mdx +5 -0
  201. package/docs/zh/components/micro-frontend.mdx +6 -0
  202. package/docs/zh/components/module-federation.mdx +7 -0
  203. package/docs/zh/components/nodeVersion.mdx +28 -0
  204. package/docs/zh/components/other-plugins.mdx +0 -0
  205. package/docs/zh/components/output-asset-prefix-extend.mdx +0 -0
  206. package/docs/zh/components/output-polyfill-extend.mdx +0 -0
  207. package/docs/zh/components/prerequisites.mdx +1 -1
  208. package/docs/zh/components/rsbuild-config-tooltip.mdx +5 -0
  209. package/docs/zh/components/rsbuild.mdx +3 -0
  210. package/docs/zh/components/rspack.mdx +3 -0
  211. package/docs/zh/components/rspackPrecautions.mdx +6 -0
  212. package/docs/zh/components/rspackTip.mdx +7 -0
  213. package/docs/zh/components/swc.mdx +3 -0
  214. package/docs/zh/configure/app/auto-load-plugin.mdx +4 -0
  215. package/docs/zh/configure/app/dev/asset-prefix.mdx +12 -2
  216. package/docs/zh/configure/app/dev/before-start-url.mdx +14 -2
  217. package/docs/zh/configure/app/dev/client.mdx +20 -16
  218. package/docs/zh/configure/app/dev/hmr.mdx +8 -2
  219. package/docs/zh/configure/app/dev/host.mdx +15 -2
  220. package/docs/zh/configure/app/dev/https.mdx +72 -2
  221. package/docs/zh/configure/app/dev/live-reload.mdx +3 -15
  222. package/docs/zh/configure/app/dev/port.mdx +18 -2
  223. package/docs/zh/configure/app/dev/progress-bar.mdx +17 -2
  224. package/docs/zh/configure/app/dev/setup-middlewares.mdx +26 -39
  225. package/docs/zh/configure/app/dev/start-url.mdx +47 -2
  226. package/docs/zh/configure/app/dev/watch-files.mdx +5 -39
  227. package/docs/zh/configure/app/dev/write-to-disk.mdx +3 -26
  228. package/docs/zh/configure/app/experiments/lazy-compilation.mdx +84 -2
  229. package/docs/zh/configure/app/experiments/source-build.mdx +29 -2
  230. package/docs/zh/configure/app/html/app-icon.mdx +48 -2
  231. package/docs/zh/configure/app/html/crossorigin.mdx +9 -2
  232. package/docs/zh/configure/app/html/disable-html-folder.mdx +34 -2
  233. package/docs/zh/configure/app/html/favicon-by-entries.mdx +30 -2
  234. package/docs/zh/configure/app/html/favicon.mdx +15 -2
  235. package/docs/zh/configure/app/html/inject-by-entries.mdx +30 -2
  236. package/docs/zh/configure/app/html/inject.mdx +8 -2
  237. package/docs/zh/configure/app/html/meta-by-entries.mdx +41 -2
  238. package/docs/zh/configure/app/html/meta.mdx +22 -2
  239. package/docs/zh/configure/app/html/mount-id.mdx +8 -2
  240. package/docs/zh/configure/app/html/script-loading.mdx +8 -2
  241. package/docs/zh/configure/app/html/tags-by-entries.mdx +37 -2
  242. package/docs/zh/configure/app/html/tags.mdx +13 -2
  243. package/docs/zh/configure/app/html/template-by-entries.mdx +26 -2
  244. package/docs/zh/configure/app/html/template-parameters-by-entries.mdx +29 -2
  245. package/docs/zh/configure/app/html/template-parameters.mdx +31 -2
  246. package/docs/zh/configure/app/html/template.mdx +8 -2
  247. package/docs/zh/configure/app/html/title-by-entries.mdx +30 -2
  248. package/docs/zh/configure/app/html/title.mdx +16 -2
  249. package/docs/zh/configure/app/output/asset-prefix.mdx +12 -2
  250. package/docs/zh/configure/app/output/assets-retry.mdx +72 -2
  251. package/docs/zh/configure/app/output/charset.mdx +8 -2
  252. package/docs/zh/configure/app/output/clean-dist-path.mdx +13 -2
  253. package/docs/zh/configure/app/output/convert-to-rem.mdx +77 -2
  254. package/docs/zh/configure/app/output/copy.mdx +6 -2
  255. package/docs/zh/configure/app/output/css-module-local-ident-name.mdx +14 -2
  256. package/docs/zh/configure/app/output/css-modules.mdx +46 -2
  257. package/docs/zh/configure/app/output/data-uri-limit.mdx +24 -2
  258. package/docs/zh/configure/app/output/disable-css-extract.mdx +9 -2
  259. package/docs/zh/configure/app/output/disable-css-module-extension.mdx +52 -2
  260. package/docs/zh/configure/app/output/disable-filename-hash.mdx +9 -2
  261. package/docs/zh/configure/app/output/disable-inline-runtime-chunk.mdx +38 -2
  262. package/docs/zh/configure/app/output/disable-minimize.mdx +7 -2
  263. package/docs/zh/configure/app/output/disable-source-map.mdx +24 -2
  264. package/docs/zh/configure/app/output/disable-svgr.mdx +14 -2
  265. package/docs/zh/configure/app/output/disable-ts-checker.mdx +46 -2
  266. package/docs/zh/configure/app/output/dist-path.mdx +39 -2
  267. package/docs/zh/configure/app/output/enable-asset-fallback.mdx +29 -2
  268. package/docs/zh/configure/app/output/enable-asset-manifest.mdx +33 -2
  269. package/docs/zh/configure/app/output/enable-css-module-tsdeclaration.mdx +25 -2
  270. package/docs/zh/configure/app/output/enable-inline-scripts.mdx +15 -2
  271. package/docs/zh/configure/app/output/enable-inline-styles.mdx +15 -2
  272. package/docs/zh/configure/app/output/enable-latest-decorators.mdx +7 -2
  273. package/docs/zh/configure/app/output/externals.mdx +18 -2
  274. package/docs/zh/configure/app/output/filename-hash.mdx +4 -27
  275. package/docs/zh/configure/app/output/filename.mdx +47 -2
  276. package/docs/zh/configure/app/output/inject-styles.mdx +15 -0
  277. package/docs/zh/configure/app/output/inline-scripts.mdx +34 -0
  278. package/docs/zh/configure/app/output/inline-styles.mdx +34 -0
  279. package/docs/zh/configure/app/output/legal-comments.mdx +16 -2
  280. package/docs/zh/configure/app/output/minify.mdx +27 -0
  281. package/docs/zh/configure/app/output/override-browserslist.mdx +20 -2
  282. package/docs/zh/configure/app/output/polyfill.mdx +12 -2
  283. package/docs/zh/configure/app/output/source-map.mdx +30 -0
  284. package/docs/zh/configure/app/output/ssg.mdx +19 -15
  285. package/docs/zh/configure/app/output/svg-default-export.mdx +27 -2
  286. package/docs/zh/configure/app/performance/build-cache.mdx +77 -2
  287. package/docs/zh/configure/app/performance/bundle-analyze.mdx +18 -2
  288. package/docs/zh/configure/app/performance/chunk-split.mdx +38 -2
  289. package/docs/zh/configure/app/performance/dns-prefetch.mdx +13 -2
  290. package/docs/zh/configure/app/performance/preconnect.mdx +14 -2
  291. package/docs/zh/configure/app/performance/prefetch.mdx +19 -2
  292. package/docs/zh/configure/app/performance/preload.mdx +21 -2
  293. package/docs/zh/configure/app/performance/print-file-size.mdx +38 -2
  294. package/docs/zh/configure/app/performance/profile.mdx +8 -2
  295. package/docs/zh/configure/app/performance/remove-console.mdx +8 -2
  296. package/docs/zh/configure/app/performance/remove-moment-locale.mdx +8 -2
  297. package/docs/zh/configure/app/performance/transform-lodash.mdx +42 -2
  298. package/docs/zh/configure/app/plugins.mdx +3 -3
  299. package/docs/zh/configure/app/security/check-syntax.mdx +66 -2
  300. package/docs/zh/configure/app/security/nonce.mdx +13 -2
  301. package/docs/zh/configure/app/security/sri.mdx +19 -2
  302. package/docs/zh/configure/app/server/port.mdx +5 -0
  303. package/docs/zh/configure/app/server/ssr.mdx +10 -9
  304. package/docs/zh/configure/app/source/alias-strategy.mdx +8 -2
  305. package/docs/zh/configure/app/source/alias.mdx +17 -2
  306. package/docs/zh/configure/app/source/config-dir.mdx +1 -1
  307. package/docs/zh/configure/app/source/decorators.mdx +8 -20
  308. package/docs/zh/configure/app/source/define.mdx +14 -2
  309. package/docs/zh/configure/app/source/enable-async-entry.mdx +1 -1
  310. package/docs/zh/configure/app/source/entries-dir.mdx +1 -1
  311. package/docs/zh/configure/app/source/exclude.mdx +8 -2
  312. package/docs/zh/configure/app/source/global-vars.mdx +102 -2
  313. package/docs/zh/configure/app/source/include.mdx +19 -2
  314. package/docs/zh/configure/app/source/mainEntryName.mdx +1 -1
  315. package/docs/zh/configure/app/source/module-scopes.mdx +62 -2
  316. package/docs/zh/configure/app/source/pre-entry.mdx +8 -2
  317. package/docs/zh/configure/app/source/resolve-extension-prefix.mdx +50 -2
  318. package/docs/zh/configure/app/source/resolve-main-fields.mdx +39 -2
  319. package/docs/zh/configure/app/source/transform-import.mdx +56 -2
  320. package/docs/zh/configure/app/tools/autoprefixer.mdx +41 -2
  321. package/docs/zh/configure/app/tools/babel.mdx +218 -2
  322. package/docs/zh/configure/app/tools/bundler-chain.mdx +26 -2
  323. package/docs/zh/configure/app/tools/css-extract.mdx +28 -2
  324. package/docs/zh/configure/app/tools/css-loader.mdx +15 -2
  325. package/docs/zh/configure/app/tools/dev-server.mdx +435 -2
  326. package/docs/zh/configure/app/tools/esbuild.mdx +2 -2
  327. package/docs/zh/configure/app/tools/html-plugin.mdx +21 -2
  328. package/docs/zh/configure/app/tools/less.mdx +79 -2
  329. package/docs/zh/configure/app/tools/minify-css.mdx +50 -2
  330. package/docs/zh/configure/app/tools/postcss.mdx +31 -2
  331. package/docs/zh/configure/app/tools/pug.mdx +47 -2
  332. package/docs/zh/configure/app/tools/rspack.mdx +8 -2
  333. package/docs/zh/configure/app/tools/sass.mdx +73 -2
  334. package/docs/zh/configure/app/tools/style-loader.mdx +8 -2
  335. package/docs/zh/configure/app/tools/styled-components.mdx +47 -2
  336. package/docs/zh/configure/app/tools/swc.mdx +34 -3
  337. package/docs/zh/configure/app/tools/terser.mdx +49 -2
  338. package/docs/zh/configure/app/tools/ts-checker.mdx +49 -2
  339. package/docs/zh/configure/app/tools/ts-loader.mdx +63 -2
  340. package/docs/zh/configure/app/tools/webpack-chain.mdx +243 -2
  341. package/docs/zh/configure/app/tools/webpack.mdx +295 -2
  342. package/docs/zh/guides/_meta.json +0 -5
  343. package/docs/zh/guides/advanced-features/_meta.json +7 -5
  344. package/docs/zh/guides/advanced-features/bff/_meta.json +1 -1
  345. package/docs/zh/guides/advanced-features/bff/extend-server.mdx +156 -0
  346. package/docs/zh/guides/advanced-features/bff/frameworks.mdx +51 -117
  347. package/docs/zh/guides/advanced-features/bff/function.mdx +69 -59
  348. package/docs/zh/guides/advanced-features/bff/sdk.mdx +27 -36
  349. package/docs/zh/guides/advanced-features/build-performance.mdx +6 -21
  350. package/docs/zh/guides/advanced-features/page-performance/_meta.json +1 -0
  351. package/docs/zh/guides/advanced-features/rspack-start.mdx +4 -4
  352. package/docs/zh/guides/basic-features/alias.mdx +5 -11
  353. package/docs/zh/guides/basic-features/css/css-modules.mdx +1 -1
  354. package/docs/zh/guides/basic-features/env-vars.mdx +1 -1
  355. package/docs/zh/guides/basic-features/output-files.mdx +2 -2
  356. package/docs/zh/guides/basic-features/routes.mdx +1 -2
  357. package/docs/zh/guides/basic-features/static-assets.mdx +1 -1
  358. package/docs/zh/guides/concept/builder.mdx +1 -1
  359. package/docs/zh/guides/deprecated.md +4 -0
  360. package/docs/zh/guides/get-started/glossary.mdx +7 -7
  361. package/docs/zh/guides/get-started/quick-start.mdx +1 -1
  362. package/docs/zh/guides/topic-detail/_meta.json +0 -6
  363. package/docs/zh/guides/topic-detail/micro-frontend/c01-introduction.mdx +1 -1
  364. package/docs/zh/guides/troubleshooting/builder.mdx +2 -2
  365. package/docs/zh/plugin/_meta.json +19 -0
  366. package/docs/zh/plugin/cli-plugins/_meta.json +1 -0
  367. package/docs/zh/plugin/cli-plugins/plugin-bff.mdx +5 -0
  368. package/docs/zh/plugin/cli-plugins/plugin-ssg.mdx +5 -0
  369. package/docs/zh/{guides/rsbuild-plugins → plugin/cli-plugins}/plugin-swc.mdx +11 -4
  370. package/docs/zh/plugin/cli-plugins/plugin-tailwind.mdx +5 -0
  371. package/docs/zh/plugin/cli-plugins.mdx +6 -0
  372. package/docs/zh/{guides/advanced-features/rsbuild-plugin.mdx → plugin/introduction.mdx} +36 -11
  373. package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/extend.mdx +1 -1
  374. package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/implement.mdx +3 -3
  375. package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/plugin-api.mdx +2 -2
  376. package/docs/zh/plugin/rsbuild-plugins/_meta.json +1 -0
  377. package/docs/zh/{guides → plugin}/rsbuild-plugins/plugin-esbuild.mdx +6 -6
  378. package/docs/zh/plugin/rsbuild-plugins.mdx +4 -0
  379. package/i18n.json +27 -3
  380. package/package.json +8 -13
  381. package/rspress.config.ts +1 -58
  382. package/src/components/Footer/index.tsx +1 -1
  383. package/src/components/RsbuildLink/index.tsx +19 -0
  384. package/src/pages/index.tsx +0 -1
  385. package/docs/en/apis/app/hooks/api/api.mdx +0 -80
  386. package/docs/en/apis/app/hooks/api/app.mdx +0 -12
  387. package/docs/en/guides/advanced-features/bff/type.mdx +0 -46
  388. package/docs/en/guides/advanced-features/eslint.mdx +0 -148
  389. package/docs/zh/apis/app/hooks/api/api.mdx +0 -81
  390. package/docs/zh/apis/app/hooks/api/app.mdx +0 -12
  391. package/docs/zh/guides/advanced-features/bff/type.mdx +0 -46
  392. package/docs/zh/guides/advanced-features/eslint.mdx +0 -152
  393. /package/docs/en/configure/app/output/{splitRouteChunks.mdx → split-route-chunks.mdx} +0 -0
  394. /package/docs/en/guides/advanced-features/{bff/index.mdx → bff.mdx} +0 -0
  395. /package/docs/en/guides/advanced-features/{code-split.mdx → page-performance/code-split.mdx} +0 -0
  396. /package/docs/en/guides/advanced-features/{inline-assets.mdx → page-performance/inline-assets.mdx} +0 -0
  397. /package/docs/en/guides/advanced-features/{optimize-bundle.mdx → page-performance/optimize-bundle.mdx} +0 -0
  398. /package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/_meta.json +0 -0
  399. /package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/hook-list.mdx +0 -0
  400. /package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/hook.mdx +0 -0
  401. /package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/introduction.mdx +0 -0
  402. /package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/lifecycle.mdx +0 -0
  403. /package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/relationship.mdx +0 -0
  404. /package/docs/zh/configure/app/output/{splitRouteChunks.mdx → split-route-chunks.mdx} +0 -0
  405. /package/docs/zh/guides/advanced-features/{bff/index.mdx → bff.mdx} +0 -0
  406. /package/docs/zh/guides/advanced-features/{code-split.mdx → page-performance/code-split.mdx} +0 -0
  407. /package/docs/zh/guides/advanced-features/{inline-assets.mdx → page-performance/inline-assets.mdx} +0 -0
  408. /package/docs/zh/guides/advanced-features/{optimize-bundle.mdx → page-performance/optimize-bundle.mdx} +0 -0
  409. /package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/_meta.json +0 -0
  410. /package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/hook-list.mdx +0 -0
  411. /package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/hook.mdx +0 -0
  412. /package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/introduction.mdx +0 -0
  413. /package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/lifecycle.mdx +0 -0
  414. /package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/relationship.mdx +0 -0
@@ -9,13 +9,13 @@ sidebar_position: 9
9
9
 
10
10
  Used to configure custom Modern.js framework plugins.
11
11
 
12
- Refer to [How to Develop Plugins](/guides/topic-detail/framework-plugin/implement) for how to write custom plugins.
12
+ Refer to [How to Develop Plugins](/plugin/plugin-system/implement) for how to write custom plugins.
13
13
 
14
14
  ## Note
15
15
 
16
16
  This option is used to configure framework plugins. If you need to configure other types of plugins, please choose the corresponding configuration method:
17
17
 
18
- - Use [builderPlugins](/configure/app/builder-plugins) to configure Modern.js Builder plugins.
18
+ - Use [builderPlugins](/configure/app/builder-plugins) to configure Rsbuild plugins.
19
19
  - Use [tools.bundlerChain](/configure/app/tools/bundler-chain) to configure Rspack or webpack plugins.
20
20
  - Use [tools.babel](/configure/app/tools/babel) to configure Babel plugins.
21
21
 
@@ -33,7 +33,7 @@ Currently, Modern.js has opened up the ability to customize CLI plugins, and Ser
33
33
 
34
34
  By default, custom plugins are executed in the order of the `plugins` array, and the execution time of built-in Modern.js plugins is earlier than that of custom plugins.
35
35
 
36
- When the plugin sets options that control the order, such as `pre` and `post`, the execution order will be adjusted based on the declared fields. Refer to [Relationship between plugins](/guides/topic-detail/framework-plugin/relationship) for more information.
36
+ When the plugin sets options that control the order, such as `pre` and `post`, the execution order will be adjusted based on the declared fields. Refer to [Relationship between plugins](/plugin/plugin-system/relationship) for more information.
37
37
 
38
38
  ## Example
39
39
 
@@ -4,6 +4,70 @@ title: checkSyntax
4
4
 
5
5
  # security.checkSyntax
6
6
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/security/checkSyntax.md';
7
+ - **Type:**
8
8
 
9
- <Main />
9
+ ```ts
10
+ type CheckSyntax =
11
+ | boolean
12
+ | {
13
+ targets?: string[];
14
+ exclude?: RegExp | RegExp[];
15
+ ecmaVersion?: EcmaVersion;
16
+ };
17
+ ```
18
+
19
+ - **Default:** `false`
20
+
21
+ Used to analyze whether there is incompatible advanced syntax in the build artifacts under the current browser scope. If any incompatible syntax is found, detailed information will be printed to the terminal.
22
+
23
+ ### Enable Detection
24
+
25
+ You can set `checkSyntax` to `true` to enable syntax checking.
26
+
27
+ ```ts
28
+ export default {
29
+ security: {
30
+ checkSyntax: true,
31
+ },
32
+ };
33
+ ```
34
+
35
+ When you enable `checkSyntax`, Modern.js will perform the detection during production builds. If any incompatible advanced syntax is detected in the build artifacts, error logs will be printed to the terminal, and the current build process will be terminated.
36
+
37
+ ### Error Logs
38
+
39
+ The format of the error logs is as follows, including the source file, artifact location, error reason, and source code:
40
+
41
+ ```bash
42
+ error [Syntax Checker] Find some syntax errors after production build:
43
+
44
+ Error 1
45
+ source: /node_modules/foo/index.js:1:0
46
+ output: /dist/static/js/main.3f7a4d7e.js:2:39400
47
+ reason: Unexpected token (1:178)
48
+ code:
49
+ 9 |
50
+ 10 | var b = 2;
51
+ 11 |
52
+ > 12 | console.log(() => {
53
+ 13 | return a + b;
54
+ 14 | });
55
+ 15 |
56
+ ```
57
+
58
+ :::tip
59
+ Currently, syntax checking is implemented based on AST parser. Each time it performs a check, it can only identify the first incompatible syntax found in the file. If there are multiple incompatible syntaxes in the file, you need to fix the detected syntax and re-run the check.
60
+ If the corresponding source location is not shown in the log, try setting **output.disableMinimize** to true and rebuild again.
61
+ :::
62
+
63
+ ### Solutions
64
+
65
+ If a syntax error is detected, you can handle it in the following ways:
66
+
67
+ - If you want to downgrade this syntax to ensure good code compatibility, you can compile the corresponding module through the `source.include` config.
68
+ - If you don't want to downgrade the syntax, you can adjust the project's browserslist to match the syntax.
69
+ - If you do not want to check the syntax of certain products, you can use the `checkSyntax.exclude` configuration to exclude the files to be checked.
70
+
71
+ ### Options
72
+
73
+ `security.checkSyntax` is implemented based on `@rsbuild/plugin-check-syntax`. For specific options, please refer to [@rsbuild/plugin-check-syntax](https://github.com/rspack-contrib/rsbuild-plugin-check-syntax).
@@ -1,9 +1,20 @@
1
1
  ---
2
2
  title: nonce
3
+ configName: security.nonce
3
4
  ---
4
5
 
5
6
  # security.nonce
6
7
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/security/nonce.md';
8
+ - **Type:**
8
9
 
9
- <Main />
10
+ ```ts
11
+ type Nonce = string;
12
+ ```
13
+
14
+ - **Default:** `undefined`
15
+
16
+ Adding a `nonce` attribute to the scripts resources introduced for HTML. This allows the browser to determine whether the script can be executed when it parses inline scripts with matching nonce values.
17
+
18
+ import RsbuildConig from '@site-docs-en/components/rsbuild-config-tooltip';
19
+
20
+ <RsbuildConig />
@@ -1,9 +1,26 @@
1
1
  ---
2
2
  title: sri
3
+ configName: security.sri
3
4
  ---
4
5
 
5
6
  # security.sri
6
7
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/security/sri.md';
8
+ - **Type**
8
9
 
9
- <Main />
10
+ ```ts
11
+ type SriOptions = {
12
+ hashFuncNames?: [string, ...string[]];
13
+ enabled?: 'auto' | true | false;
14
+ hashLoading?: 'eager' | 'lazy'; // only support webpack
15
+ };
16
+ ```
17
+
18
+ - **Default:** `undefined`
19
+
20
+ Adding an `integrity` attribute to `<script>` and `<link rel="stylesheet">` tags introduced by HTML allows the browser to verify the integrity of the introduced resource, thus preventing tampering with the downloaded resource.
21
+
22
+ :::info
23
+ For a specific introduction to SRI, you can refer to [Rsbuild security.sri](https://rsbuild.dev/zh/config/security/sri).
24
+
25
+ This configuration type is not completely consistent with Rsbuild and will be automatically converted during the build process.
26
+ :::
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  title: port
3
+ configName: server.port
3
4
  ---
4
5
 
5
6
  # server.port
@@ -36,3 +37,7 @@ export default defineConfig({
36
37
  },
37
38
  });
38
39
  ```
40
+
41
+ import RsbuildConig from '@site-docs-en/components/rsbuild-config-tooltip';
42
+
43
+ <RsbuildConig />
@@ -25,15 +25,16 @@ export default defineConfig({
25
25
 
26
26
  When the value type is `Object`, the following properties can be configured:
27
27
 
28
- - `mode`: `string = 'string'`, which defaults to using `renderToString` for rendering. Configure `stream` to enable streaming rendering.
29
- - `forceCSR`: `boolean = false`, which is off by default for forcing CSR rendering. Configure `true` to force CSR by adding `?csr=true` or adding `x-modern-ssr-fallback` header when accessing the page.
30
- - `inlineScript`: `boolean = true`, by default, SSR data is injected into HTML as inline scripts and assigned directly to global variables. Configure `false` to distribute JSON instead of assigning to global variables, this configuration doesn't work in Streaming SSR.
31
- - `disablePrerender`: `boolean = fasle`, To ensure compatibility with the old data request method (`useLoader`), by default, Modern.js performs pre-rendering of components.
32
- However, if developers want to reduce one rendering when there is no use of the useLoader API in your project, you can set the configuration `disablePrerender=true`.
33
- - `unsafeHeaders`: `string[] = []`, For safety reasons, Modern.js does not add excessive content to SSR_DATA. Developers can use this configuration to specify the headers that need to be injected.
34
- - `scriptLoading`: `'defer' | 'blocking' | 'module' | 'async'`, The configuration is the same as [html.scriptLoading](/configure/app/html/script-loading), supporting SSR injected script set to `async` loading. The priority is `ssr.scriptLoading` > `html.scriptLoading`.
35
- - `loaderFailureMode`: `'clientRender' | 'errorBoundary'`, The default configuration is `'errorBoundary'`, when an error occurs in [data loader](/en/guides/basic-features/data/data-fetch.html#data-loader-recommended),
36
- it will default to rendering the [`Error`](/en/guides/basic-features/routes.html#errorboundary) component of the route. When configured as `'clientRender'`, if a loader throws an error, it switch to client-side rendering,you can use it with [Client Loader](/en/guides/basic-features/data/data-fetch.html#client-loader).
28
+ | Name | Type | Default | Description |
29
+ | ---------------- | ------------------------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------- |
30
+ | mode | `string` | `string` | which defaults to using `renderToString` for rendering. Configure `stream` to enable streaming rendering |
31
+ | forceCSR | `boolean` | `false` | which is off by default for forcing CSR rendering. Configure `true` to force CSR by adding `?csr=true` or adding `x-modern-ssr-fallback` header when accessing the page |
32
+ | inlineScript | `boolean` | `true` | By default, SSR data is injected into HTML as inline scripts and assigned directly to global variables. Configure `false` to distribute JSON instead of assigning to global variables, this configuration doesn't work in Streaming SSR |
33
+ | disablePrerender | `boolean` | `fasle` | To ensure compatibility with the old data request method (`useLoader`), by default, Modern.js performs pre-rendering of components.However, if developers want to reduce one rendering when there is no use of the useLoader API in your project, you can set the configuration `disablePrerender=true` |
34
+ | unsafeHeaders | `string[]` | `[]` | For safety reasons, Modern.js does not add excessive content to SSR_DATA. Developers can use this configuration to specify the headers that need to be injected |
35
+ | scriptLoading | `defer \| blocking \| module \| async` | `defer` | The configuration is the same as [html.scriptLoading](/configure/app/html/script-loading), supporting SSR injected script set to `async` loading. The priority is `ssr.scriptLoading` > `html.scriptLoading` |
36
+ | loaderFailureMode| `clientRender \| errorBoundary` | `errorBoundary` | The default configuration is `'errorBoundary'`, when an error occurs in [data loader](/en/guides/basic-features/data/data-fetch.html#data-loader-recommended), it will default to rendering the [`Error`](/en/guides/basic-features/routes.html#errorboundary) component of the route. When configured as `'clientRender'`, if a loader throws an error, it switch to client-side rendering,you can use it with [Client Loader](/en/guides/basic-features/data/data-fetch.html#client-loader) |
37
+
37
38
 
38
39
  ```ts title="modern.config.ts"
39
40
  export default defineConfig({
@@ -1,9 +1,15 @@
1
1
  ---
2
2
  title: aliasStrategy
3
+ configName: source.aliasStrategy
3
4
  ---
4
5
 
5
6
  # source.aliasStrategy
6
7
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/source/aliasStrategy.md';
8
+ - **Type:** `'prefer-tsconfig' | 'prefer-alias'`
9
+ - **Default:** `'prefer-tsconfig'`
8
10
 
9
- <Main />
11
+ `source.aliasStrategy` is used to control the priority between the `paths` option in `tsconfig.json` and the `alias` option in the bundler.
12
+
13
+ import RsbuildConig from '@site-docs-en/components/rsbuild-config-tooltip';
14
+
15
+ <RsbuildConig />
@@ -1,9 +1,24 @@
1
1
  ---
2
2
  title: alias
3
+ configName: source.alias
3
4
  ---
4
5
 
5
6
  # source.alias
6
7
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/source/alias.md';
8
+ - **Type:**
8
9
 
9
- <Main />
10
+ ```ts
11
+ type Alias = Record<string, string | false | (string | false)[]> | Function;
12
+ ```
13
+
14
+ - **Default:** `undefined`
15
+
16
+ Create aliases to import or require certain modules, same as the [resolve.alias](https://webpack.js.org/configuration/resolve/#resolvealias) config of Rspack.
17
+
18
+ :::tip
19
+ For TypeScript projects, you only need to configure [compilerOptions.paths](https://www.typescriptlang.org/tsconfig#paths) in the `tsconfig.json` file. The Rsbuild will automatically recognize it, so there is no need to configure the `source.alias` option separately. For more details, please refer to [Path Aliases](https://modernjs.dev/en/guides/basic-features/alias.html).
20
+ :::
21
+
22
+ import RsbuildConig from '@site-docs-en/components/rsbuild-config-tooltip';
23
+
24
+ <RsbuildConig />
@@ -5,7 +5,7 @@ title: configDir
5
5
  # source.configDir
6
6
 
7
7
  - **Type:** `string`
8
- - **Default:** `./config`
8
+ - **Default:** `'./config'`
9
9
 
10
10
  Modern.js supports placing some files in the `./config` folder to customize HTML templates, icons, static assets, etc. For details, please refer to [File Convention](/apis/app/hooks/config/html).
11
11
 
@@ -1,11 +1,13 @@
1
1
  ---
2
2
  title: decorators
3
+ configName: source.decorators
3
4
  ---
4
5
 
5
6
  # source.decorators
6
7
 
7
8
  - **Type:**
8
- ```
9
+
10
+ ```ts
9
11
  type Decorators = {
10
12
  version?: 'legacy' | '2022-03';
11
13
  };
@@ -13,29 +15,14 @@ type Decorators = {
13
15
 
14
16
  - **Default:**
15
17
 
16
- ```
17
- type Decorators = {
18
- version: 'legacy',
18
+ ```ts
19
+ const defaultDecorators = {
20
+ version: 'legacy';
19
21
  };
20
22
  ```
21
23
 
22
24
  Used to configure the decorators syntax.
23
25
 
24
- ### Example
25
-
26
- Modern.js uses `legacy` syntax by default (Stage 1 proposal), equivalent to TypeScript's `experimentalDecorators: true`.
27
-
28
- You can adjust the decorator syntax to the Stage 3 decorator proposal by setting `decorators.version` to `2022-03`.
29
-
30
- ```js
31
- export default {
32
- source: {
33
- decorators: {
34
- version: '2022-03',
35
- },
36
- },
37
- };
38
- ```
39
-
40
- For detailed usage, please refer to [Rsbuild - source.decorators](https://rsbuild.dev/config/source/decorators).
26
+ import RsbuildConig from '@site-docs-en/components/rsbuild-config-tooltip';
41
27
 
28
+ <RsbuildConig />
@@ -1,9 +1,21 @@
1
1
  ---
2
2
  title: define
3
+ configName: source.define
3
4
  ---
4
5
 
5
6
  # source.define
6
7
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/source/define.md';
8
+ - **Type:** `Record<string, unknown>`
9
+ - **Default:**
8
10
 
9
- <Main />
11
+ ```ts
12
+ const defaultDefine = {
13
+ 'process.env.MODERN_TARGET': '"browser"',
14
+ };
15
+ ```
16
+
17
+ Replaces variables in your code with other values or expressions at compile time. This can be useful for allowing different behavior between development builds and production builds.
18
+
19
+ import RsbuildConig from '@site-docs-en/components/rsbuild-config-tooltip';
20
+
21
+ <RsbuildConig />
@@ -13,7 +13,7 @@ When this option is enabled, Modern.js will wrap the automatically generated ent
13
13
 
14
14
  ## Background
15
15
 
16
- import ModuleFederation from '@modern-js/builder-doc/docs/en/shared/module-federation.md';
16
+ import ModuleFederation from '@site-docs-en/components/module-federation.mdx';
17
17
 
18
18
  <ModuleFederation />
19
19
 
@@ -5,7 +5,7 @@ title: entriesDir
5
5
  # source.entriesDir
6
6
 
7
7
  - **Type:** `string`
8
- - **Default:** `./src`
8
+ - **Default:** `'./src'`
9
9
 
10
10
  By default, Modern.js scans the `src` directory to identify page entries. You can customize the directory used for identifying page entries with this option.
11
11
 
@@ -1,9 +1,15 @@
1
1
  ---
2
2
  title: exclude
3
+ configName: source.exclude
3
4
  ---
4
5
 
5
6
  # source.exclude
6
7
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/source/exclude.md';
8
+ - **Type:** [RuleSetCondition[]](https://rspack.dev/config/module#condition)
9
+ - **Default:** `[]`
8
10
 
9
- <Main />
11
+ Specifies JavaScript/TypeScript files that do not need to be compiled. The usage is consistent with [Rule.exclude](https://rspack.dev/config/module#ruleexclude) in Rspack, which supports passing in strings or regular expressions to match the module path.
12
+
13
+ import RsbuildConig from '@site-docs-en/components/rsbuild-config-tooltip';
14
+
15
+ <RsbuildConig />
@@ -4,6 +4,107 @@ title: globalVars
4
4
 
5
5
  # source.globalVars
6
6
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/source/globalVars.md';
7
+ - **Type:** `Record<string, JSONValue> | Function`
8
+ - **Default:**
8
9
 
9
- <Main />
10
+ ```ts
11
+ const defaultGlobalVars = {
12
+ // The environment variable `process.env.NODE_ENV` will be added by default,
13
+ // so you don't need to set it in manually.
14
+ 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
15
+ };
16
+ ```
17
+
18
+ Used to define global variables. It can replace expressions like `process.env.FOO` in your code after compile. Such as:
19
+
20
+ ```js
21
+ console.log(process.env.NODE_ENV);
22
+
23
+ // ⬇️ Turn into being...
24
+ console.log('development');
25
+ ```
26
+
27
+ ### Example
28
+
29
+ In the following example, the `ENABLE_VCONSOLE` and `APP_CONTEXT` are injected into the code:
30
+
31
+ ```js
32
+ export default {
33
+ source: {
34
+ globalVars: {
35
+ ENABLE_VCONSOLE: true,
36
+ APP_CONTEXT: { answer: 42 },
37
+ },
38
+ },
39
+ };
40
+ ```
41
+
42
+ You can use them directly in your code:
43
+
44
+ ```js
45
+ if (ENABLE_VCONSOLE) {
46
+ // do something
47
+ }
48
+
49
+ console.log(APP_CONTEXT);
50
+ ```
51
+
52
+ ### Function Usage
53
+
54
+ - **Type:**
55
+
56
+ ```ts
57
+ type GlobalVarsFn = (
58
+ obj: Record<string, JSONValue>,
59
+ utils: { env: NodeEnv; target: BuilderTarget },
60
+ ) => Record<string, JSONValue> | void;
61
+ ```
62
+
63
+ You can set `source.globalVars` to a function to dynamically setting some environment variables.
64
+
65
+ For example, dynamically set according to the build target:
66
+
67
+ ```js
68
+ export default {
69
+ source: {
70
+ globalVars(obj, { target }) {
71
+ obj['MY_TARGET'] = target === 'node' ? 'server' : 'client';
72
+ },
73
+ },
74
+ };
75
+ ```
76
+
77
+ ### Difference with define
78
+
79
+ You can take `source.globalVars` as the syntax sugar of `source.define`, the only difference is that `source.globalVars` will automatically stringify the value, which makes it easier to set the value of global variables. The values of `globalVars` should be JSON-safe to ensure it can be serialized.
80
+
81
+ ```js
82
+ export default {
83
+ source: {
84
+ globalVars: {
85
+ 'process.env.BUILD_VERSION': '0.0.1',
86
+ 'import.meta.foo': { bar: 42 },
87
+ 'import.meta.baz': false,
88
+ },
89
+ define: {
90
+ 'process.env.BUILD_VERSION': JSON.stringify('0.0.1'),
91
+ 'import.meta': {
92
+ foo: JSON.stringify({ bar: 42 }),
93
+ baz: JSON.stringify(false),
94
+ },
95
+ },
96
+ },
97
+ };
98
+ ```
99
+
100
+ ### Precautions
101
+
102
+ `source.globalVars` injects environment variables through string replacement, so it cannot take effect on dynamic syntaxes such as destructuring.
103
+
104
+ When using destructuring assignment, Modern.js will not be able to determine whether the variable `NODE_ENV` is associated with the expression `process.env.NODE_ENV` to be replaced, so the following usage is invalid:
105
+
106
+ ```js
107
+ const { NODE_ENV } = process.env;
108
+ console.log(NODE_ENV);
109
+ // ❌ Won't get a string.
110
+ ```
@@ -1,9 +1,26 @@
1
1
  ---
2
2
  title: include
3
+ configName: source.include
3
4
  ---
4
5
 
5
6
  # source.include
6
7
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/source/include.md';
8
+ - **Type:** [RuleSetCondition[]](https://rspack.dev/config/module#condition)
9
+ - **Default:**
8
10
 
9
- <Main />
11
+ ```ts
12
+ const defaultInclude = [
13
+ [
14
+ /node_modules\/react-router/,
15
+ /node_modules\/react-router-dom/,
16
+ /node_modules\/@remix-run\/router/,
17
+ '/node_modules/.modern-js',
18
+ ],
19
+ ];
20
+ ```
21
+
22
+ The `source.include` is used to specify additional JavaScript files that need to be compiled.
23
+
24
+ import RsbuildConig from '@site-docs-en/components/rsbuild-config-tooltip';
25
+
26
+ <RsbuildConig />
@@ -5,7 +5,7 @@ title: mainEntryName
5
5
  # source.mainEntryName
6
6
 
7
7
  - **Type:** `string`
8
- - **Default:** `main`
8
+ - **Default:** `'main'`
9
9
 
10
10
  This option is used to configure the main entry name of Modern.js.
11
11
 
@@ -4,6 +4,66 @@ title: moduleScopes
4
4
 
5
5
  # source.moduleScopes
6
6
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/source/moduleScopes.md';
7
+ - **Type:** `Array<string | Regexp> | Function`
8
+ - **Default:** `undefined`
9
+ - **Bundler:** `only support webpack`
8
10
 
9
- <Main />
11
+ Restrict importing paths. After configuring this option, all source files can only import code from the specific paths, and import code from other paths is not allowed.
12
+
13
+ ### Example
14
+
15
+ First, we configure `moduleScopes` to only include the `src` directory:
16
+
17
+ ```js
18
+ export default {
19
+ source: {
20
+ moduleScopes: ['./src'],
21
+ },
22
+ };
23
+ ```
24
+
25
+ Then we import the `utils/a` module outside the `src` directory in `src/App.tsx`:
26
+
27
+ ```js
28
+ import a from '../utils/a';
29
+ ```
30
+
31
+ After compiling, there will be a reference path error:
32
+
33
+ ![scopes-error](https://lf3-static.bytednsdoc.com/obj/eden-cn/aphqeh7uhohpquloj/modern-js/docs/module-scopes-error.png)
34
+
35
+ If we configure the `utils` directory in `moduleScopes`, the error will disappear.
36
+
37
+ ```js
38
+ export default {
39
+ source: {
40
+ moduleScopes: ['./src', './utils'],
41
+ },
42
+ };
43
+ ```
44
+
45
+ ### Array Type
46
+
47
+ You can directly set several paths like this:
48
+
49
+ ```js
50
+ export default {
51
+ source: {
52
+ moduleScopes: ['./src', './shared', './utils'],
53
+ },
54
+ };
55
+ ```
56
+
57
+ ### Function Type
58
+
59
+ `moduleScopes` also supports setting as a function, which can be modified instead of overriding the default value:
60
+
61
+ ```js
62
+ export default {
63
+ source: {
64
+ moduleScopes: scopes => {
65
+ scopes.push('./shared');
66
+ },
67
+ },
68
+ };
69
+ ```
@@ -1,9 +1,15 @@
1
1
  ---
2
2
  title: preEntry
3
+ configName: source.preEntry
3
4
  ---
4
5
 
5
6
  # source.preEntry
6
7
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/source/preEntry.md';
8
+ - **Type:** `string | string[]`
9
+ - **Default:** `[]`
8
10
 
9
- <Main />
11
+ Add a script before the entry file of each page. This script will be executed before the page code. It can be used to execute global logics, such as injecting polyfills, setting global styles, etc.
12
+
13
+ import RsbuildConig from '@site-docs-en/components/rsbuild-config-tooltip';
14
+
15
+ <RsbuildConig />
@@ -4,6 +4,52 @@ title: resolveExtensionPrefix
4
4
 
5
5
  # source.resolveExtensionPrefix
6
6
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/source/resolveExtensionPrefix.md';
7
+ - **Type:** `string | Record<BuilderTarget, string>`
8
+ - **Default:** `undefined`
8
9
 
9
- <Main />
10
+ Add a prefix to [resolve.extensions](https://webpack.js.org/configuration/resolve/#resolveextensions).
11
+
12
+ If multiple files share the same name but have different extensions, Modern.js will resolve the one with the extension listed first in the array and skip the rest.
13
+
14
+ ### Example
15
+
16
+ ```js
17
+ export default {
18
+ source: {
19
+ resolveExtensionPrefix: '.web',
20
+ },
21
+ };
22
+ ```
23
+
24
+ With the configuration above, the extensions array will become:
25
+
26
+ ```js
27
+ // before
28
+ const extensions = ['.js', '.ts', ...];
29
+
30
+ // after
31
+ const extensions = ['.web.js', '.js', '.web.ts' , '.ts', ...];
32
+ ```
33
+
34
+ When `import './foo'` in the code, the `foo.web.js` file will be resolved first, then the `foo.js` file.
35
+
36
+ #### Set according to Targets
37
+
38
+ When you build multiple targets at the same time, you can set different extension prefix for different targets. At this point, you need to set `resolveExtensionPrefix` to an object whose key is the corresponding build target.
39
+
40
+ For example to set different extension prefix for `web` and `node`:
41
+
42
+ ```js
43
+ export default {
44
+ output: {
45
+ source: {
46
+ resolveExtensionPrefix: {
47
+ web: '.web',
48
+ node: '.node',
49
+ },
50
+ },
51
+ },
52
+ };
53
+ ```
54
+
55
+ When `import './foo'` in the code, the `foo.node.js` file will be resolved for node target, and the `foo.web.js` file will be resolved for web target.