@modern-js/main-doc 2.60.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 (315) hide show
  1. package/docs/en/community/contributing-guide.mdx +0 -1
  2. package/docs/en/components/builder.mdx +3 -0
  3. package/docs/en/components/bundler.mdx +3 -0
  4. package/docs/en/components/enableSwc.mdx +17 -0
  5. package/docs/en/components/esbuild.mdx +3 -0
  6. package/docs/en/components/micro-frontend.mdx +6 -0
  7. package/docs/en/components/module-federation.mdx +7 -0
  8. package/docs/en/components/nodeVersion.mdx +26 -0
  9. package/docs/en/components/output-asset-prefix-extend.mdx +0 -0
  10. package/docs/en/components/output-polyfill-extend.mdx +0 -0
  11. package/docs/en/components/prerequisites.mdx +1 -1
  12. package/docs/en/components/rsbuild-config-tooltip.mdx +5 -0
  13. package/docs/en/components/rsbuild.mdx +3 -0
  14. package/docs/en/components/rspack.mdx +3 -0
  15. package/docs/en/components/rspackPrecautions.mdx +6 -0
  16. package/docs/en/components/rspackTip.mdx +7 -0
  17. package/docs/en/components/swc.mdx +3 -0
  18. package/docs/en/configure/app/dev/asset-prefix.mdx +12 -2
  19. package/docs/en/configure/app/dev/before-start-url.mdx +14 -2
  20. package/docs/en/configure/app/dev/client.mdx +20 -16
  21. package/docs/en/configure/app/dev/hmr.mdx +8 -2
  22. package/docs/en/configure/app/dev/host.mdx +15 -2
  23. package/docs/en/configure/app/dev/https.mdx +71 -2
  24. package/docs/en/configure/app/dev/live-reload.mdx +3 -15
  25. package/docs/en/configure/app/dev/port.mdx +18 -2
  26. package/docs/en/configure/app/dev/progress-bar.mdx +17 -2
  27. package/docs/en/configure/app/dev/setup-middlewares.mdx +25 -39
  28. package/docs/en/configure/app/dev/start-url.mdx +46 -2
  29. package/docs/en/configure/app/dev/watch-files.mdx +5 -39
  30. package/docs/en/configure/app/dev/write-to-disk.mdx +4 -27
  31. package/docs/en/configure/app/experiments/lazy-compilation.mdx +84 -2
  32. package/docs/en/configure/app/experiments/source-build.mdx +28 -3
  33. package/docs/en/configure/app/html/app-icon.mdx +48 -2
  34. package/docs/en/configure/app/html/crossorigin.mdx +8 -2
  35. package/docs/en/configure/app/html/disable-html-folder.mdx +35 -2
  36. package/docs/en/configure/app/html/favicon-by-entries.mdx +29 -2
  37. package/docs/en/configure/app/html/favicon.mdx +14 -2
  38. package/docs/en/configure/app/html/inject-by-entries.mdx +29 -2
  39. package/docs/en/configure/app/html/inject.mdx +8 -2
  40. package/docs/en/configure/app/html/meta-by-entries.mdx +41 -2
  41. package/docs/en/configure/app/html/meta.mdx +22 -2
  42. package/docs/en/configure/app/html/mount-id.mdx +8 -2
  43. package/docs/en/configure/app/html/script-loading.mdx +8 -2
  44. package/docs/en/configure/app/html/tags-by-entries.mdx +37 -2
  45. package/docs/en/configure/app/html/tags.mdx +13 -2
  46. package/docs/en/configure/app/html/template-by-entries.mdx +26 -2
  47. package/docs/en/configure/app/html/template-parameters-by-entries.mdx +28 -2
  48. package/docs/en/configure/app/html/template-parameters.mdx +31 -2
  49. package/docs/en/configure/app/html/template.mdx +8 -2
  50. package/docs/en/configure/app/html/title-by-entries.mdx +30 -2
  51. package/docs/en/configure/app/html/title.mdx +16 -2
  52. package/docs/en/configure/app/output/asset-prefix.mdx +12 -2
  53. package/docs/en/configure/app/output/assets-retry.mdx +72 -2
  54. package/docs/en/configure/app/output/charset.mdx +8 -2
  55. package/docs/en/configure/app/output/clean-dist-path.mdx +13 -2
  56. package/docs/en/configure/app/output/convert-to-rem.mdx +76 -2
  57. package/docs/en/configure/app/output/copy.mdx +5 -2
  58. package/docs/en/configure/app/output/css-module-local-ident-name.mdx +14 -2
  59. package/docs/en/configure/app/output/css-modules.mdx +46 -2
  60. package/docs/en/configure/app/output/data-uri-limit.mdx +24 -2
  61. package/docs/en/configure/app/output/disable-css-extract.mdx +9 -2
  62. package/docs/en/configure/app/output/disable-css-module-extension.mdx +52 -2
  63. package/docs/en/configure/app/output/disable-filename-hash.mdx +9 -2
  64. package/docs/en/configure/app/output/disable-inline-runtime-chunk.mdx +38 -2
  65. package/docs/en/configure/app/output/disable-minimize.mdx +7 -2
  66. package/docs/en/configure/app/output/disable-source-map.mdx +24 -2
  67. package/docs/en/configure/app/output/disable-svgr.mdx +13 -2
  68. package/docs/en/configure/app/output/disable-ts-checker.mdx +46 -2
  69. package/docs/en/configure/app/output/dist-path.mdx +39 -2
  70. package/docs/en/configure/app/output/enable-asset-fallback.mdx +29 -2
  71. package/docs/en/configure/app/output/enable-asset-manifest.mdx +33 -2
  72. package/docs/en/configure/app/output/enable-css-module-tsdeclaration.mdx +25 -2
  73. package/docs/en/configure/app/output/enable-inline-scripts.mdx +15 -2
  74. package/docs/en/configure/app/output/enable-inline-styles.mdx +15 -2
  75. package/docs/en/configure/app/output/enable-latest-decorators.mdx +7 -2
  76. package/docs/en/configure/app/output/externals.mdx +18 -2
  77. package/docs/en/configure/app/output/filename-hash.mdx +3 -27
  78. package/docs/en/configure/app/output/filename.mdx +47 -2
  79. package/docs/en/configure/app/output/inject-styles.mdx +15 -0
  80. package/docs/en/configure/app/output/inline-scripts.mdx +34 -0
  81. package/docs/en/configure/app/output/inline-styles.mdx +34 -0
  82. package/docs/en/configure/app/output/legal-comments.mdx +16 -2
  83. package/docs/en/configure/app/output/minify.mdx +27 -0
  84. package/docs/en/configure/app/output/override-browserslist.mdx +18 -2
  85. package/docs/en/configure/app/output/polyfill.mdx +12 -2
  86. package/docs/en/configure/app/output/source-map.mdx +30 -0
  87. package/docs/en/configure/app/output/ssg.mdx +20 -17
  88. package/docs/en/configure/app/output/svg-default-export.mdx +27 -2
  89. package/docs/en/configure/app/performance/build-cache.mdx +78 -2
  90. package/docs/en/configure/app/performance/bundle-analyze.mdx +18 -2
  91. package/docs/en/configure/app/performance/chunk-split.mdx +38 -2
  92. package/docs/en/configure/app/performance/dns-prefetch.mdx +13 -2
  93. package/docs/en/configure/app/performance/preconnect.mdx +14 -2
  94. package/docs/en/configure/app/performance/prefetch.mdx +19 -2
  95. package/docs/en/configure/app/performance/preload.mdx +21 -2
  96. package/docs/en/configure/app/performance/print-file-size.mdx +38 -2
  97. package/docs/en/configure/app/performance/profile.mdx +8 -2
  98. package/docs/en/configure/app/performance/remove-console.mdx +8 -2
  99. package/docs/en/configure/app/performance/remove-moment-locale.mdx +8 -2
  100. package/docs/en/configure/app/performance/transform-lodash.mdx +42 -2
  101. package/docs/en/configure/app/plugins.mdx +1 -1
  102. package/docs/en/configure/app/security/check-syntax.mdx +66 -2
  103. package/docs/en/configure/app/security/nonce.mdx +13 -2
  104. package/docs/en/configure/app/security/sri.mdx +19 -2
  105. package/docs/en/configure/app/server/port.mdx +5 -0
  106. package/docs/en/configure/app/server/ssr.mdx +10 -9
  107. package/docs/en/configure/app/source/alias-strategy.mdx +8 -2
  108. package/docs/en/configure/app/source/alias.mdx +17 -2
  109. package/docs/en/configure/app/source/config-dir.mdx +1 -1
  110. package/docs/en/configure/app/source/decorators.mdx +8 -21
  111. package/docs/en/configure/app/source/define.mdx +14 -2
  112. package/docs/en/configure/app/source/enable-async-entry.mdx +1 -1
  113. package/docs/en/configure/app/source/entries-dir.mdx +1 -1
  114. package/docs/en/configure/app/source/exclude.mdx +8 -2
  115. package/docs/en/configure/app/source/global-vars.mdx +103 -2
  116. package/docs/en/configure/app/source/include.mdx +19 -2
  117. package/docs/en/configure/app/source/mainEntryName.mdx +1 -1
  118. package/docs/en/configure/app/source/module-scopes.mdx +62 -2
  119. package/docs/en/configure/app/source/pre-entry.mdx +8 -2
  120. package/docs/en/configure/app/source/resolve-extension-prefix.mdx +48 -2
  121. package/docs/en/configure/app/source/resolve-main-fields.mdx +39 -2
  122. package/docs/en/configure/app/source/transform-import.mdx +56 -2
  123. package/docs/en/configure/app/tools/autoprefixer.mdx +41 -2
  124. package/docs/en/configure/app/tools/babel.mdx +218 -2
  125. package/docs/en/configure/app/tools/bundler-chain.mdx +23 -2
  126. package/docs/en/configure/app/tools/css-extract.mdx +31 -2
  127. package/docs/en/configure/app/tools/css-loader.mdx +14 -2
  128. package/docs/en/configure/app/tools/dev-server.mdx +435 -2
  129. package/docs/en/configure/app/tools/esbuild.mdx +1 -1
  130. package/docs/en/configure/app/tools/html-plugin.mdx +21 -2
  131. package/docs/en/configure/app/tools/less.mdx +78 -2
  132. package/docs/en/configure/app/tools/minify-css.mdx +50 -2
  133. package/docs/en/configure/app/tools/postcss.mdx +30 -2
  134. package/docs/en/configure/app/tools/pug.mdx +47 -2
  135. package/docs/en/configure/app/tools/rspack.mdx +8 -2
  136. package/docs/en/configure/app/tools/sass.mdx +75 -2
  137. package/docs/en/configure/app/tools/style-loader.mdx +8 -2
  138. package/docs/en/configure/app/tools/styled-components.mdx +48 -2
  139. package/docs/en/configure/app/tools/swc.mdx +33 -2
  140. package/docs/en/configure/app/tools/terser.mdx +49 -2
  141. package/docs/en/configure/app/tools/ts-checker.mdx +49 -2
  142. package/docs/en/configure/app/tools/ts-loader.mdx +63 -2
  143. package/docs/en/configure/app/tools/webpack-chain.mdx +239 -2
  144. package/docs/en/configure/app/tools/webpack.mdx +295 -2
  145. package/docs/en/guides/advanced-features/_meta.json +0 -1
  146. package/docs/en/guides/advanced-features/rspack-start.mdx +2 -2
  147. package/docs/en/guides/basic-features/css/css-modules.mdx +2 -2
  148. package/docs/en/guides/basic-features/output-files.mdx +1 -1
  149. package/docs/en/guides/basic-features/render/ssg.mdx +1 -1
  150. package/docs/en/guides/concept/builder.mdx +1 -1
  151. package/docs/en/guides/get-started/glossary.mdx +7 -7
  152. package/docs/en/guides/get-started/quick-start.mdx +1 -1
  153. package/docs/en/guides/topic-detail/micro-frontend/c01-introduction.mdx +1 -1
  154. package/docs/en/guides/troubleshooting/builder.mdx +2 -2
  155. package/docs/en/plugin/cli-plugins/plugin-swc.mdx +4 -4
  156. package/docs/en/plugin/rsbuild-plugins/plugin-esbuild.mdx +4 -4
  157. package/docs/zh/community/contributing-guide.mdx +0 -1
  158. package/docs/zh/components/builder.mdx +3 -0
  159. package/docs/zh/components/bundler.mdx +4 -0
  160. package/docs/zh/components/enableSwc.mdx +17 -0
  161. package/docs/zh/components/esbuild.mdx +3 -0
  162. package/docs/zh/components/micro-frontend.mdx +6 -0
  163. package/docs/zh/components/module-federation.mdx +7 -0
  164. package/docs/zh/components/nodeVersion.mdx +28 -0
  165. package/docs/zh/components/output-asset-prefix-extend.mdx +0 -0
  166. package/docs/zh/components/output-polyfill-extend.mdx +0 -0
  167. package/docs/zh/components/prerequisites.mdx +1 -1
  168. package/docs/zh/components/rsbuild-config-tooltip.mdx +5 -0
  169. package/docs/zh/components/rsbuild.mdx +3 -0
  170. package/docs/zh/components/rspack.mdx +3 -0
  171. package/docs/zh/components/rspackPrecautions.mdx +6 -0
  172. package/docs/zh/components/rspackTip.mdx +7 -0
  173. package/docs/zh/components/swc.mdx +3 -0
  174. package/docs/zh/configure/app/dev/asset-prefix.mdx +12 -2
  175. package/docs/zh/configure/app/dev/before-start-url.mdx +14 -2
  176. package/docs/zh/configure/app/dev/client.mdx +20 -16
  177. package/docs/zh/configure/app/dev/hmr.mdx +8 -2
  178. package/docs/zh/configure/app/dev/host.mdx +15 -2
  179. package/docs/zh/configure/app/dev/https.mdx +72 -2
  180. package/docs/zh/configure/app/dev/live-reload.mdx +3 -15
  181. package/docs/zh/configure/app/dev/port.mdx +18 -2
  182. package/docs/zh/configure/app/dev/progress-bar.mdx +17 -2
  183. package/docs/zh/configure/app/dev/setup-middlewares.mdx +26 -39
  184. package/docs/zh/configure/app/dev/start-url.mdx +47 -2
  185. package/docs/zh/configure/app/dev/watch-files.mdx +5 -39
  186. package/docs/zh/configure/app/dev/write-to-disk.mdx +3 -26
  187. package/docs/zh/configure/app/experiments/lazy-compilation.mdx +84 -2
  188. package/docs/zh/configure/app/experiments/source-build.mdx +29 -2
  189. package/docs/zh/configure/app/html/app-icon.mdx +48 -2
  190. package/docs/zh/configure/app/html/crossorigin.mdx +9 -2
  191. package/docs/zh/configure/app/html/disable-html-folder.mdx +34 -2
  192. package/docs/zh/configure/app/html/favicon-by-entries.mdx +30 -2
  193. package/docs/zh/configure/app/html/favicon.mdx +15 -2
  194. package/docs/zh/configure/app/html/inject-by-entries.mdx +30 -2
  195. package/docs/zh/configure/app/html/inject.mdx +8 -2
  196. package/docs/zh/configure/app/html/meta-by-entries.mdx +41 -2
  197. package/docs/zh/configure/app/html/meta.mdx +22 -2
  198. package/docs/zh/configure/app/html/mount-id.mdx +8 -2
  199. package/docs/zh/configure/app/html/script-loading.mdx +8 -2
  200. package/docs/zh/configure/app/html/tags-by-entries.mdx +37 -2
  201. package/docs/zh/configure/app/html/tags.mdx +13 -2
  202. package/docs/zh/configure/app/html/template-by-entries.mdx +26 -2
  203. package/docs/zh/configure/app/html/template-parameters-by-entries.mdx +29 -2
  204. package/docs/zh/configure/app/html/template-parameters.mdx +31 -2
  205. package/docs/zh/configure/app/html/template.mdx +8 -2
  206. package/docs/zh/configure/app/html/title-by-entries.mdx +30 -2
  207. package/docs/zh/configure/app/html/title.mdx +16 -2
  208. package/docs/zh/configure/app/output/asset-prefix.mdx +12 -2
  209. package/docs/zh/configure/app/output/assets-retry.mdx +72 -2
  210. package/docs/zh/configure/app/output/charset.mdx +8 -2
  211. package/docs/zh/configure/app/output/clean-dist-path.mdx +13 -2
  212. package/docs/zh/configure/app/output/convert-to-rem.mdx +77 -2
  213. package/docs/zh/configure/app/output/copy.mdx +6 -2
  214. package/docs/zh/configure/app/output/css-module-local-ident-name.mdx +14 -2
  215. package/docs/zh/configure/app/output/css-modules.mdx +46 -2
  216. package/docs/zh/configure/app/output/data-uri-limit.mdx +24 -2
  217. package/docs/zh/configure/app/output/disable-css-extract.mdx +9 -2
  218. package/docs/zh/configure/app/output/disable-css-module-extension.mdx +52 -2
  219. package/docs/zh/configure/app/output/disable-filename-hash.mdx +9 -2
  220. package/docs/zh/configure/app/output/disable-inline-runtime-chunk.mdx +38 -2
  221. package/docs/zh/configure/app/output/disable-minimize.mdx +7 -2
  222. package/docs/zh/configure/app/output/disable-source-map.mdx +24 -2
  223. package/docs/zh/configure/app/output/disable-svgr.mdx +14 -2
  224. package/docs/zh/configure/app/output/disable-ts-checker.mdx +46 -2
  225. package/docs/zh/configure/app/output/dist-path.mdx +39 -2
  226. package/docs/zh/configure/app/output/enable-asset-fallback.mdx +29 -2
  227. package/docs/zh/configure/app/output/enable-asset-manifest.mdx +33 -2
  228. package/docs/zh/configure/app/output/enable-css-module-tsdeclaration.mdx +25 -2
  229. package/docs/zh/configure/app/output/enable-inline-scripts.mdx +15 -2
  230. package/docs/zh/configure/app/output/enable-inline-styles.mdx +15 -2
  231. package/docs/zh/configure/app/output/enable-latest-decorators.mdx +7 -2
  232. package/docs/zh/configure/app/output/externals.mdx +18 -2
  233. package/docs/zh/configure/app/output/filename-hash.mdx +4 -27
  234. package/docs/zh/configure/app/output/filename.mdx +47 -2
  235. package/docs/zh/configure/app/output/inject-styles.mdx +15 -0
  236. package/docs/zh/configure/app/output/inline-scripts.mdx +34 -0
  237. package/docs/zh/configure/app/output/inline-styles.mdx +34 -0
  238. package/docs/zh/configure/app/output/legal-comments.mdx +16 -2
  239. package/docs/zh/configure/app/output/minify.mdx +27 -0
  240. package/docs/zh/configure/app/output/override-browserslist.mdx +20 -2
  241. package/docs/zh/configure/app/output/polyfill.mdx +12 -2
  242. package/docs/zh/configure/app/output/source-map.mdx +30 -0
  243. package/docs/zh/configure/app/output/ssg.mdx +19 -15
  244. package/docs/zh/configure/app/output/svg-default-export.mdx +27 -2
  245. package/docs/zh/configure/app/performance/build-cache.mdx +77 -2
  246. package/docs/zh/configure/app/performance/bundle-analyze.mdx +18 -2
  247. package/docs/zh/configure/app/performance/chunk-split.mdx +38 -2
  248. package/docs/zh/configure/app/performance/dns-prefetch.mdx +13 -2
  249. package/docs/zh/configure/app/performance/preconnect.mdx +14 -2
  250. package/docs/zh/configure/app/performance/prefetch.mdx +19 -2
  251. package/docs/zh/configure/app/performance/preload.mdx +21 -2
  252. package/docs/zh/configure/app/performance/print-file-size.mdx +38 -2
  253. package/docs/zh/configure/app/performance/profile.mdx +8 -2
  254. package/docs/zh/configure/app/performance/remove-console.mdx +8 -2
  255. package/docs/zh/configure/app/performance/remove-moment-locale.mdx +8 -2
  256. package/docs/zh/configure/app/performance/transform-lodash.mdx +42 -2
  257. package/docs/zh/configure/app/plugins.mdx +1 -1
  258. package/docs/zh/configure/app/security/check-syntax.mdx +66 -2
  259. package/docs/zh/configure/app/security/nonce.mdx +13 -2
  260. package/docs/zh/configure/app/security/sri.mdx +19 -2
  261. package/docs/zh/configure/app/server/port.mdx +5 -0
  262. package/docs/zh/configure/app/server/ssr.mdx +10 -9
  263. package/docs/zh/configure/app/source/alias-strategy.mdx +8 -2
  264. package/docs/zh/configure/app/source/alias.mdx +17 -2
  265. package/docs/zh/configure/app/source/config-dir.mdx +1 -1
  266. package/docs/zh/configure/app/source/decorators.mdx +8 -20
  267. package/docs/zh/configure/app/source/define.mdx +14 -2
  268. package/docs/zh/configure/app/source/enable-async-entry.mdx +1 -1
  269. package/docs/zh/configure/app/source/entries-dir.mdx +1 -1
  270. package/docs/zh/configure/app/source/exclude.mdx +8 -2
  271. package/docs/zh/configure/app/source/global-vars.mdx +102 -2
  272. package/docs/zh/configure/app/source/include.mdx +19 -2
  273. package/docs/zh/configure/app/source/mainEntryName.mdx +1 -1
  274. package/docs/zh/configure/app/source/module-scopes.mdx +62 -2
  275. package/docs/zh/configure/app/source/pre-entry.mdx +8 -2
  276. package/docs/zh/configure/app/source/resolve-extension-prefix.mdx +50 -2
  277. package/docs/zh/configure/app/source/resolve-main-fields.mdx +39 -2
  278. package/docs/zh/configure/app/source/transform-import.mdx +56 -2
  279. package/docs/zh/configure/app/tools/autoprefixer.mdx +41 -2
  280. package/docs/zh/configure/app/tools/babel.mdx +218 -2
  281. package/docs/zh/configure/app/tools/bundler-chain.mdx +26 -2
  282. package/docs/zh/configure/app/tools/css-extract.mdx +28 -2
  283. package/docs/zh/configure/app/tools/css-loader.mdx +15 -2
  284. package/docs/zh/configure/app/tools/dev-server.mdx +435 -2
  285. package/docs/zh/configure/app/tools/esbuild.mdx +1 -1
  286. package/docs/zh/configure/app/tools/html-plugin.mdx +21 -2
  287. package/docs/zh/configure/app/tools/less.mdx +79 -2
  288. package/docs/zh/configure/app/tools/minify-css.mdx +50 -2
  289. package/docs/zh/configure/app/tools/postcss.mdx +31 -2
  290. package/docs/zh/configure/app/tools/pug.mdx +47 -2
  291. package/docs/zh/configure/app/tools/rspack.mdx +8 -2
  292. package/docs/zh/configure/app/tools/sass.mdx +73 -2
  293. package/docs/zh/configure/app/tools/style-loader.mdx +8 -2
  294. package/docs/zh/configure/app/tools/styled-components.mdx +47 -2
  295. package/docs/zh/configure/app/tools/swc.mdx +33 -2
  296. package/docs/zh/configure/app/tools/terser.mdx +49 -2
  297. package/docs/zh/configure/app/tools/ts-checker.mdx +49 -2
  298. package/docs/zh/configure/app/tools/ts-loader.mdx +63 -2
  299. package/docs/zh/configure/app/tools/webpack-chain.mdx +243 -2
  300. package/docs/zh/configure/app/tools/webpack.mdx +295 -2
  301. package/docs/zh/guides/advanced-features/_meta.json +0 -1
  302. package/docs/zh/guides/advanced-features/rspack-start.mdx +2 -2
  303. package/docs/zh/guides/basic-features/css/css-modules.mdx +1 -1
  304. package/docs/zh/guides/basic-features/output-files.mdx +2 -2
  305. package/docs/zh/guides/concept/builder.mdx +1 -1
  306. package/docs/zh/guides/get-started/glossary.mdx +7 -7
  307. package/docs/zh/guides/get-started/quick-start.mdx +1 -1
  308. package/docs/zh/guides/topic-detail/micro-frontend/c01-introduction.mdx +1 -1
  309. package/docs/zh/guides/troubleshooting/builder.mdx +2 -2
  310. package/docs/zh/plugin/cli-plugins/plugin-swc.mdx +4 -4
  311. package/docs/zh/plugin/rsbuild-plugins/plugin-esbuild.mdx +6 -6
  312. package/package.json +6 -12
  313. package/src/components/RsbuildLink/index.tsx +19 -0
  314. /package/docs/en/configure/app/output/{splitRouteChunks.mdx → split-route-chunks.mdx} +0 -0
  315. /package/docs/zh/configure/app/output/{splitRouteChunks.mdx → split-route-chunks.mdx} +0 -0
@@ -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.
@@ -4,6 +4,43 @@ title: resolveMainFields
4
4
 
5
5
  # source.resolveMainFields
6
6
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/source/resolveMainFields.md';
7
+ - **Type:**
8
8
 
9
- <Main />
9
+ ```ts
10
+ type Fields = (string | string[])[];
11
+
12
+ type ResolveMainFields = Fields | Record<BuilderTarget, Fields>;
13
+ ```
14
+
15
+ - **Default:** `undefined`
16
+
17
+ This config will determine which field of `package.json` you use to import the `npm` module. Same as the [resolve.mainFields](https://webpack.js.org/configuration/resolve/#resolvemainfields) config of webpack.
18
+
19
+ ### Example
20
+
21
+ ```js
22
+ export default {
23
+ source: {
24
+ resolveMainFields: ['main', 'browser', 'exports'],
25
+ },
26
+ };
27
+ ```
28
+
29
+ #### Set according to Targets
30
+
31
+ When you build multiple targets at the same time, you can set different mainFields for different targets. At this point, you need to set `resolveMainFields` to an object whose key is the corresponding build target.
32
+
33
+ For example to set different mainFields for `web` and `node`:
34
+
35
+ ```js
36
+ export default {
37
+ output: {
38
+ source: {
39
+ resolveMainFields: {
40
+ web: ['main', 'browser', 'exports'],
41
+ node: ['main', 'node', 'exports'],
42
+ },
43
+ },
44
+ },
45
+ };
46
+ ```
@@ -1,9 +1,63 @@
1
1
  ---
2
2
  title: transformImport
3
+ configName: source.transformImport
3
4
  ---
4
5
 
5
6
  # source.transformImport
6
7
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/source/transformImport.md';
8
+ Transform the import path, which can be used to modularly import the subpath of third-party packages. The functionality is similar to [babel-plugin-import](https://www.npmjs.com/package/babel-plugin-import)。
8
9
 
9
- <Main />
10
+ - **Type:**
11
+
12
+ ```ts
13
+ type TransformImport =
14
+ | Array<{
15
+ libraryName: string;
16
+ libraryDirectory?: string;
17
+ style?: string | boolean;
18
+ styleLibraryDirectory?: string;
19
+ camelToDashComponentName?: boolean;
20
+ transformToDefaultImport?: boolean;
21
+ customName?: string;
22
+ customStyleName?: string;
23
+ }>
24
+ | Function;
25
+ ```
26
+
27
+ - **Default:**
28
+
29
+ When the [Ant Design component library](https://www.npmjs.com/package/antd) &lt;= 4.x version is installed in the project, Modern.js will automatically add the following default configurations:
30
+
31
+ ```js
32
+ const defaultAntdConfig = {
33
+ libraryName: 'antd',
34
+ libraryDirectory: isServer ? 'lib' : 'es',
35
+ style: true,
36
+ };
37
+ ```
38
+
39
+ When the [Arco Design component library](https://www.npmjs.com/package/@arco-design/web-react) is installed in the project, Modern.js will automatically add the following default configurations:
40
+
41
+ ```js
42
+ const defaultArcoConfig = [
43
+ {
44
+ libraryName: '@arco-design/web-react',
45
+ libraryDirectory: isServer ? 'lib' : 'es',
46
+ camelToDashComponentName: false,
47
+ style: true,
48
+ },
49
+ {
50
+ libraryName: '@arco-design/web-react/icon',
51
+ libraryDirectory: isServer ? 'react-icon-cjs' : 'react-icon',
52
+ camelToDashComponentName: false,
53
+ },
54
+ ];
55
+ ```
56
+
57
+ :::tip
58
+ When you add configurations for `antd` or `@arco-design/web-react`, the priority will be higher than the default configurations mentioned above.
59
+ :::
60
+
61
+ import RsbuildConig from '@site-docs-en/components/rsbuild-config-tooltip';
62
+
63
+ <RsbuildConig />
@@ -4,6 +4,45 @@ title: autoprefixer
4
4
 
5
5
  # tools.autoprefixer
6
6
 
7
- import Main from '@modern-js/builder-doc/docs/en/config/tools/autoprefixer.md';
7
+ - **Type:** `Object | Function`
8
+ - **Default:**
8
9
 
9
- <Main />
10
+ ```js
11
+ {
12
+ flexbox: 'no-2009',
13
+ // Depends on the browserslist config in the project
14
+ // and the `output.overrideBrowserslist` (higher priority) config
15
+ overrideBrowserslist: browserslist,
16
+ }
17
+ ```
18
+
19
+ You can modify the config of [autoprefixer](https://github.com/postcss/autoprefixer) by `tools.autoprefixer`.
20
+
21
+ ### Object Type
22
+
23
+ When `tools.autoprefixer` is configured as `Object` type, it is merged with the default config through Object.assign. For example:
24
+
25
+ ```js
26
+ export default {
27
+ tools: {
28
+ autoprefixer: {
29
+ flexbox: 'no-2009',
30
+ },
31
+ },
32
+ };
33
+ ```
34
+
35
+ ### Function Type
36
+
37
+ When `tools.autoprefixer` is a Function, the default config is passed as the first parameter and can be directly modified or returned as the final result. For example:
38
+
39
+ ```js
40
+ export default {
41
+ tools: {
42
+ autoprefixer(config) {
43
+ // modify flexbox config
44
+ config.flexbox = 'no-2009';
45
+ },
46
+ },
47
+ };
48
+ ```