@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
@@ -4,6 +4,243 @@ title: webpackChain
4
4
 
5
5
  # tools.webpackChain
6
6
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/tools/webpackChain.md';
7
+ - **Type:** `Function | undefined`
8
+ - **Default:** `undefined`
9
+ - **Bundler:** `only support webpack`
8
10
 
9
- <Main />
11
+ You can modify the webpack configuration by configuring `tools.webpackChain` which is type of `Function`. The function receives two parameters, the first is the original webpack chain object, and the second is an object containing some utils.
12
+
13
+ Compared with `tools.webpack`, **webpack-chain not only supports chained calls, but also can locate built-in Rule or Plugin based on aliases, so as to achieve precise config modification**. We recommend using `tools.webpackChain` instead of `tools.webpack`.
14
+
15
+ > `tools.webpackChain` is executed earlier than tools.webpack and thus will be overridden by changes in `tools.webpack`.
16
+
17
+ ### Utils
18
+
19
+ #### env
20
+
21
+ - **Type:** `'development' | 'production' | 'test'`
22
+
23
+ The `env` parameter can be used to determine whether the current environment is development, production or test. For example:
24
+
25
+ ```js
26
+ export default {
27
+ tools: {
28
+ webpackChain: (chain, { env }) => {
29
+ if (env === 'development') {
30
+ chain.devtool('cheap-module-eval-source-map');
31
+ }
32
+ },
33
+ },
34
+ };
35
+ ```
36
+
37
+ #### isProd
38
+
39
+ - **Type:** `boolean`
40
+
41
+ The `isProd` parameter can be used to determine whether the current environment is production. For example:
42
+
43
+ ```js
44
+ export default {
45
+ tools: {
46
+ webpackChain: (chain, { isProd }) => {
47
+ if (isProd) {
48
+ chain.devtool('source-map');
49
+ }
50
+ },
51
+ },
52
+ };
53
+ ```
54
+
55
+ #### target
56
+
57
+ - **Type:** `'web' | 'node' | 'modern-web' | 'web-worker'`
58
+
59
+ The `target` parameter can be used to determine the current environment. For example:
60
+
61
+ ```js
62
+ export default {
63
+ tools: {
64
+ webpackChain: (chain, { target }) => {
65
+ if (target === 'node') {
66
+ // ...
67
+ }
68
+ },
69
+ },
70
+ };
71
+ ```
72
+
73
+ #### isServer
74
+
75
+ - **Type:** `boolean`
76
+
77
+ Determines whether the target environment is `node`, equivalent to `target === 'node'`.
78
+
79
+ ```js
80
+ export default {
81
+ tools: {
82
+ webpackChain: (chain, { isServer }) => {
83
+ if (isServer) {
84
+ // ...
85
+ }
86
+ },
87
+ },
88
+ };
89
+ ```
90
+
91
+ #### isWebWorker
92
+
93
+ - **Type:** `boolean`
94
+
95
+ Determines whether the target environment is `web-worker`, equivalent to `target === 'web-worker'`.
96
+
97
+ ```js
98
+ export default {
99
+ tools: {
100
+ webpackChain: (chain, { isWebWorker }) => {
101
+ if (isWebWorker) {
102
+ // ...
103
+ }
104
+ },
105
+ },
106
+ };
107
+ ```
108
+
109
+ #### webpack
110
+
111
+ - **Type:** `typeof import('webpack')`
112
+
113
+ The webpack instance. For example:
114
+
115
+ ```js
116
+ export default {
117
+ tools: {
118
+ webpackChain: (chain, { webpack }) => {
119
+ chain.plugin('my-progress').use(webpack.ProgressPlugin);
120
+ },
121
+ },
122
+ };
123
+ ```
124
+
125
+ #### HtmlWebpackPlugin
126
+
127
+ - **Type:** `typeof import('html-webpack-plugin')`
128
+
129
+ The HtmlWebpackPlugin instance:
130
+
131
+ ```js
132
+ export default {
133
+ tools: {
134
+ webpackChain: (chain, { HtmlWebpackPlugin }) => {
135
+ console.log(HtmlWebpackPlugin);
136
+ },
137
+ },
138
+ };
139
+ ```
140
+
141
+ #### CHAIN_ID
142
+
143
+ Some common Chain IDs are predefined in the Modern.js, and you can use these IDs to locate the built-in Rule or Plugin.
144
+
145
+ :::tip
146
+ Please note that some of the rules or plugins listed below are not available by default. They will only be included in the webpack configuration when you enable specific options or register certain plugins.
147
+
148
+ For example, the `RULE.STYLUS` rule exists only when the Stylus plugin is registered.
149
+ :::
150
+
151
+ #### CHAIN_ID.RULE
152
+
153
+ | ID | Description |
154
+ | ------------- | ------------------------------------------------------------------------------------------- |
155
+ | `RULE.JS` | Rule for `js` |
156
+ | `RULE.TS` | Rule for `ts` |
157
+ | `RULE.CSS` | Rule for `css` |
158
+ | `RULE.LESS` | Rule for `less` |
159
+ | `RULE.SASS` | Rule for `sass` |
160
+ | `RULE.STYLUS` | Rule for `stylus`(requires [Stylus plugin](https://rsbuild.dev/plugins/list/plugin-stylus)) |
161
+ | `RULE.SVG` | Rule for `svg` |
162
+ | `RULE.PUG` | Rule for `pug` |
163
+ | `RULE.TOML` | Rule for `toml` |
164
+ | `RULE.YAML` | Rule for `yaml` |
165
+ | `RULE.WASM` | Rule for `WASM` |
166
+ | `RULE.NODE` | Rule for `node` |
167
+ | `RULE.FONT` | Rule for `font` |
168
+ | `RULE.IMAGE` | Rule for `image` |
169
+ | `RULE.MEDIA` | Rule for `media` |
170
+
171
+ #### CHAIN_ID.ONE_OF
172
+
173
+ `ONE_OF.XXX` can match a certain type of rule in the rule array.
174
+
175
+ | ID | Description |
176
+ | ------------------- | ------------------------------------------------------------------ |
177
+ | `ONE_OF.SVG` | Rules for SVG, automatic choice between data URI and separate file |
178
+ | `ONE_OF.SVG_URL` | Rules for SVG, output as a separate file |
179
+ | `ONE_OF.SVG_INLINE` | Rules for SVG, inlined into bundles as data URIs |
180
+ | `ONE_OF.SVG_ASSETS` | Rules for SVG, automatic choice between data URI and separate file |
181
+
182
+ #### CHAIN_ID.USE
183
+
184
+ `USE.XXX` can match a certain loader.
185
+
186
+ | ID | Description |
187
+ | --------------------------------- | ---------------------------------------------- |
188
+ | `USE.TS` | correspond to `ts-loader` |
189
+ | `USE.CSS` | correspond to `css-loader` |
190
+ | `USE.LESS` | correspond to `less-loader` |
191
+ | `USE.SASS` | correspond to `sass-loader` |
192
+ | `USE.STYLUS` | correspond to `stylus-loader` |
193
+ | `USE.PUG` | correspond to `pug-loader` |
194
+ | `USE.VUE` | correspond to `vue-loader` |
195
+ | `USE.TOML` | correspond to `toml-loader` |
196
+ | `USE.YAML` | correspond to `yaml-loader` |
197
+ | `USE.NODE` | correspond to `node-loader` |
198
+ | `USE.URL` | correspond to `url-loader` |
199
+ | `USE.SVGR` | correspond to `@svgr/webpack` |
200
+ | `USE.BABEL` | correspond to `babel-loader` |
201
+ | `USE.STYLE` | correspond to `style-loader` |
202
+ | `USE.POSTCSS` | correspond to `postcss-loader` |
203
+ | `USE.CSS_MODULES_TS` | correspond to `css-modules-typescript-loader` |
204
+ | `USE.MINI_CSS_EXTRACT` | correspond to `mini-css-extract-plugin.loader` |
205
+ | `USE.RESOLVE_URL_LOADER_FOR_SASS` | correspond to `resolve-url-loader` |
206
+
207
+ #### CHAIN_ID.PLUGIN
208
+
209
+ `PLUGIN.XXX` can match a certain webpack plugin.
210
+
211
+ | ID | Description |
212
+ | ------------------------------ | -------------------------------------------------------------------------------------------------------------- |
213
+ | `PLUGIN.HMR` | correspond to `HotModuleReplacementPlugin` |
214
+ | `PLUGIN.COPY` | correspond to `CopyWebpackPlugin` |
215
+ | `PLUGIN.HTML` | correspond to `HtmlWebpackPlugin`, you need to splice the entry name when using: `${PLUGIN.HTML}-${entryName}` |
216
+ | `PLUGIN.DEFINE` | correspond to `DefinePlugin` |
217
+ | `PLUGIN.IGNORE` | correspond to `IgnorePlugin` |
218
+ | `PLUGIN.BANNER` | correspond to `BannerPlugin` |
219
+ | `PLUGIN.PROGRESS` | correspond to `Webpackbar` |
220
+ | `PLUGIN.APP_ICON` | correspond to `AppIconPlugin` |
221
+ | `PLUGIN.MANIFEST` | correspond to `WebpackManifestPlugin` |
222
+ | `PLUGIN.TS_CHECKER` | correspond to `ForkTsCheckerWebpackPlugin` |
223
+ | `PLUGIN.INLINE_HTML` | correspond to `InlineChunkHtmlPlugin` |
224
+ | `PLUGIN.BUNDLE_ANALYZER` | correspond to `WebpackBundleAnalyzer` |
225
+ | `PLUGIN.MINI_CSS_EXTRACT` | correspond to `MiniCssExtractPlugin` |
226
+ | `PLUGIN.VUE_LOADER_PLUGIN` | correspond to `VueLoaderPlugin` |
227
+ | `PLUGIN.REACT_FAST_REFRESH` | correspond to `ReactFastRefreshPlugin` |
228
+ | `PLUGIN.NODE_POLYFILL_PROVIDE` | correspond to `ProvidePlugin` for node polyfills |
229
+ | `PLUGIN.SUBRESOURCE_INTEGRITY` | correspond to `webpack-subresource-integrity` |
230
+ | `PLUGIN.ASSETS_RETRY` | correspond to webpack static asset retry plugin |
231
+ | `PLUGIN.AUTO_SET_ROOT_SIZE` | correspond to automatically set root font size plugin |
232
+
233
+ #### CHAIN_ID.MINIMIZER
234
+
235
+ `MINIMIZER.XXX` can match a certain minimizer.
236
+
237
+ | ID | Description |
238
+ | ------------------- | ----------------------------------------- |
239
+ | `MINIMIZER.JS` | correspond to `TerserWebpackPlugin` |
240
+ | `MINIMIZER.CSS` | correspond to `CssMinimizerWebpackPlugin` |
241
+ | `MINIMIZER.ESBUILD` | correspond to `ESBuildPlugin` |
242
+ | `MINIMIZER.SWC` | correspond to `SwcWebpackPlugin` |
243
+
244
+ ### Examples
245
+
246
+ For usage examples, please refer to: [WebpackChain usage examples](https://modernjs.dev/builder/en/guide/advanced/custom-webpack-config.html#webpack-chain-basics).
@@ -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
+ ```
@@ -24,11 +24,6 @@
24
24
  "name": "topic-detail",
25
25
  "label": "topic"
26
26
  },
27
- {
28
- "type": "dir",
29
- "name": "rsbuild-plugins",
30
- "label": "Rsbuild Plugins"
31
- },
32
27
  {
33
28
  "type": "dir",
34
29
  "name": "troubleshooting",
@@ -6,13 +6,15 @@
6
6
  "label": "use-bff",
7
7
  "collapsed": true
8
8
  },
9
- "code-split",
9
+ {
10
+ "type": "dir",
11
+ "name": "page-performance",
12
+ "label": "page-performance",
13
+ "collapsed": true
14
+ },
15
+ "build-performance",
10
16
  "compatibility",
11
- "eslint",
12
17
  "low-level",
13
18
  "source-build",
14
- "build-performance",
15
- "inline-assets",
16
- "optimize-bundle",
17
19
  "web-server"
18
20
  ]
@@ -1 +1 @@
1
- ["function", "type", "frameworks", "sdk"]
1
+ ["function", "frameworks", "extend-server", "sdk"]