@modern-js/app-tools 3.7.0 → 3.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/bin/modern-bundle-docs.js +7 -0
  2. package/dist/cjs/builder/generator/createBuilderProviderConfig.js +5 -1
  3. package/dist/cjs/bundleDocs.js +114 -0
  4. package/dist/cjs/commands/build.js +2 -1
  5. package/dist/cjs/commands/deploy.js +4 -2
  6. package/dist/cjs/commands/index.js +0 -4
  7. package/dist/cjs/config/default.js +2 -0
  8. package/dist/cjs/index.js +52 -14
  9. package/dist/cjs/plugins/analyze/index.js +2 -2
  10. package/dist/cjs/plugins/analyze/utils.js +3 -2
  11. package/dist/cjs/plugins/initialize/index.js +4 -3
  12. package/dist/cjs/plugins/serverBuild.js +3 -2
  13. package/dist/esm/builder/generator/createBuilderProviderConfig.mjs +5 -1
  14. package/dist/esm/bundleDocs.mjs +62 -0
  15. package/dist/esm/commands/build.mjs +2 -1
  16. package/dist/esm/commands/deploy.mjs +4 -2
  17. package/dist/esm/commands/index.mjs +0 -4
  18. package/dist/esm/config/default.mjs +2 -0
  19. package/dist/esm/index.mjs +15 -1
  20. package/dist/esm/plugins/analyze/index.mjs +2 -2
  21. package/dist/esm/plugins/analyze/utils.mjs +3 -2
  22. package/dist/esm/plugins/initialize/index.mjs +4 -3
  23. package/dist/esm/plugins/serverBuild.mjs +3 -2
  24. package/dist/esm-node/builder/generator/createBuilderProviderConfig.mjs +5 -1
  25. package/dist/esm-node/bundleDocs.mjs +63 -0
  26. package/dist/esm-node/commands/build.mjs +2 -1
  27. package/dist/esm-node/commands/deploy.mjs +4 -2
  28. package/dist/esm-node/commands/index.mjs +0 -4
  29. package/dist/esm-node/config/default.mjs +2 -0
  30. package/dist/esm-node/index.mjs +15 -1
  31. package/dist/esm-node/plugins/analyze/index.mjs +2 -2
  32. package/dist/esm-node/plugins/analyze/utils.mjs +3 -2
  33. package/dist/esm-node/plugins/initialize/index.mjs +4 -3
  34. package/dist/esm-node/plugins/serverBuild.mjs +3 -2
  35. package/dist/types/bundleDocs.d.ts +20 -0
  36. package/dist/types/commands/deploy.d.ts +2 -1
  37. package/dist/types/index.d.ts +4 -1
  38. package/dist/types/plugins/analyze/utils.d.ts +1 -1
  39. package/dist/types/types/config/dev.d.ts +6 -0
  40. package/docs/apis/app/commands.md +241 -0
  41. package/docs/apis/app/hooks/api/lambda.md +9 -0
  42. package/docs/apis/app/hooks/config/favicon.md +24 -0
  43. package/docs/apis/app/hooks/config/html.md +5 -0
  44. package/docs/apis/app/hooks/config/icon.md +24 -0
  45. package/docs/apis/app/hooks/config/mock.md +6 -0
  46. package/docs/apis/app/hooks/config/public.md +26 -0
  47. package/docs/apis/app/hooks/config/upload.md +50 -0
  48. package/docs/apis/app/hooks/modern-config.md +5 -0
  49. package/docs/apis/app/hooks/server/server.md +5 -0
  50. package/docs/apis/app/hooks/shared.md +3 -0
  51. package/docs/apis/app/hooks/src/app.md +30 -0
  52. package/docs/apis/app/hooks/src/entry.md +34 -0
  53. package/docs/apis/app/hooks/src/entry.server.md +51 -0
  54. package/docs/apis/app/hooks/src/modern.runtime.md +5 -0
  55. package/docs/apis/app/hooks/src/routes.md +86 -0
  56. package/docs/apis/app/hooks/src/server.md +3 -0
  57. package/docs/apis/app/runtime/bff/use-hono-context.md +27 -0
  58. package/docs/apis/app/runtime/core/create-root.md +19 -0
  59. package/docs/apis/app/runtime/core/render.md +39 -0
  60. package/docs/apis/app/runtime/core/runtime-context.md +156 -0
  61. package/docs/apis/app/runtime/router/router.md +280 -0
  62. package/docs/apis/app/runtime/ssr/no-ssr.md +35 -0
  63. package/docs/apis/app/runtime/ssr/renderStreaming.md +67 -0
  64. package/docs/apis/app/runtime/ssr/renderString.md +60 -0
  65. package/docs/apis/app/runtime/ssr/requestHandler.md +44 -0
  66. package/docs/apis/app/runtime/utility/css-in-js.md +40 -0
  67. package/docs/apis/app/runtime/utility/head.md +35 -0
  68. package/docs/apis/app/runtime/utility/loadable.md +82 -0
  69. package/docs/community/blog/2022-0708-updates.md +91 -0
  70. package/docs/community/blog/2022-0910-updates.md +76 -0
  71. package/docs/community/blog/overview.md +63 -0
  72. package/docs/community/blog/v2-release-note.md +238 -0
  73. package/docs/community/blog/v3-release-note.md +622 -0
  74. package/docs/community/contributing-guide.md +253 -0
  75. package/docs/community/releases.md +27 -0
  76. package/docs/community/showcase.md +34 -0
  77. package/docs/community/team.md +14 -0
  78. package/docs/configure/app/bff/cross-project.md +20 -0
  79. package/docs/configure/app/bff/prefix.md +29 -0
  80. package/docs/configure/app/builder-plugins.md +66 -0
  81. package/docs/configure/app/dev/asset-prefix.md +13 -0
  82. package/docs/configure/app/dev/before-start-url.md +17 -0
  83. package/docs/configure/app/dev/client.md +41 -0
  84. package/docs/configure/app/dev/hmr.md +10 -0
  85. package/docs/configure/app/dev/host.md +18 -0
  86. package/docs/configure/app/dev/https.md +77 -0
  87. package/docs/configure/app/dev/lazy-compilation.md +39 -0
  88. package/docs/configure/app/dev/live-reload.md +10 -0
  89. package/docs/configure/app/dev/mock-dir.md +31 -0
  90. package/docs/configure/app/dev/progress-bar.md +19 -0
  91. package/docs/configure/app/dev/server.md +124 -0
  92. package/docs/configure/app/dev/setup-middlewares.md +32 -0
  93. package/docs/configure/app/dev/start-url.md +48 -0
  94. package/docs/configure/app/dev/watch-files.md +27 -0
  95. package/docs/configure/app/dev/write-to-disk.md +10 -0
  96. package/docs/configure/app/experiments/source-build.md +31 -0
  97. package/docs/configure/app/html/app-icon.md +28 -0
  98. package/docs/configure/app/html/crossorigin.md +10 -0
  99. package/docs/configure/app/html/favicon.md +16 -0
  100. package/docs/configure/app/html/inject.md +10 -0
  101. package/docs/configure/app/html/meta.md +24 -0
  102. package/docs/configure/app/html/mount-id.md +10 -0
  103. package/docs/configure/app/html/output-structure.md +10 -0
  104. package/docs/configure/app/html/script-loading.md +10 -0
  105. package/docs/configure/app/html/tags.md +15 -0
  106. package/docs/configure/app/html/template-parameters.md +33 -0
  107. package/docs/configure/app/html/template.md +10 -0
  108. package/docs/configure/app/html/title.md +18 -0
  109. package/docs/configure/app/output/asset-prefix.md +11 -0
  110. package/docs/configure/app/output/assets-retry.md +77 -0
  111. package/docs/configure/app/output/charset.md +10 -0
  112. package/docs/configure/app/output/clean-dist-path.md +16 -0
  113. package/docs/configure/app/output/convert-to-rem.md +79 -0
  114. package/docs/configure/app/output/copy.md +10 -0
  115. package/docs/configure/app/output/css-modules.md +48 -0
  116. package/docs/configure/app/output/data-uri-limit.md +26 -0
  117. package/docs/configure/app/output/disable-css-module-extension.md +55 -0
  118. package/docs/configure/app/output/disable-inline-runtime-chunk.md +41 -0
  119. package/docs/configure/app/output/disable-svgr.md +16 -0
  120. package/docs/configure/app/output/disable-ts-checker.md +49 -0
  121. package/docs/configure/app/output/dist-path.md +43 -0
  122. package/docs/configure/app/output/enable-asset-manifest.md +36 -0
  123. package/docs/configure/app/output/enable-css-module-tsdeclaration.md +28 -0
  124. package/docs/configure/app/output/enable-inline-route-manifests.md +16 -0
  125. package/docs/configure/app/output/externals.md +20 -0
  126. package/docs/configure/app/output/filename-hash.md +10 -0
  127. package/docs/configure/app/output/filename.md +55 -0
  128. package/docs/configure/app/output/inject-styles.md +10 -0
  129. package/docs/configure/app/output/inline-scripts.md +29 -0
  130. package/docs/configure/app/output/inline-styles.md +29 -0
  131. package/docs/configure/app/output/legal-comments.md +18 -0
  132. package/docs/configure/app/output/minify.md +22 -0
  133. package/docs/configure/app/output/override-browserslist.md +22 -0
  134. package/docs/configure/app/output/polyfill.md +12 -0
  135. package/docs/configure/app/output/source-map.md +30 -0
  136. package/docs/configure/app/output/split-route-chunks.md +16 -0
  137. package/docs/configure/app/output/ssg.md +81 -0
  138. package/docs/configure/app/output/ssgByEntries.md +90 -0
  139. package/docs/configure/app/output/svg-default-export.md +30 -0
  140. package/docs/configure/app/output/temp-dir.md +20 -0
  141. package/docs/configure/app/performance/build-cache.md +39 -0
  142. package/docs/configure/app/performance/chunk-split.md +40 -0
  143. package/docs/configure/app/performance/dns-prefetch.md +15 -0
  144. package/docs/configure/app/performance/preconnect.md +16 -0
  145. package/docs/configure/app/performance/prefetch.md +21 -0
  146. package/docs/configure/app/performance/preload.md +23 -0
  147. package/docs/configure/app/performance/print-file-size.md +40 -0
  148. package/docs/configure/app/performance/profile.md +10 -0
  149. package/docs/configure/app/performance/remove-console.md +10 -0
  150. package/docs/configure/app/performance/remove-moment-locale.md +10 -0
  151. package/docs/configure/app/plugins.md +59 -0
  152. package/docs/configure/app/resolve/alias-strategy.md +10 -0
  153. package/docs/configure/app/resolve/alias.md +9 -0
  154. package/docs/configure/app/resolve/condition-names.md +13 -0
  155. package/docs/configure/app/resolve/dedupe.md +9 -0
  156. package/docs/configure/app/resolve/extensions.md +13 -0
  157. package/docs/configure/app/runtime/0-intro.md +58 -0
  158. package/docs/configure/app/runtime/plugins.md +58 -0
  159. package/docs/configure/app/runtime/router.md +35 -0
  160. package/docs/configure/app/security/check-syntax.md +69 -0
  161. package/docs/configure/app/security/nonce.md +15 -0
  162. package/docs/configure/app/security/sri.md +20 -0
  163. package/docs/configure/app/server/base-url.md +26 -0
  164. package/docs/configure/app/server/port.md +18 -0
  165. package/docs/configure/app/server/public-routes.md +22 -0
  166. package/docs/configure/app/server/routes.md +86 -0
  167. package/docs/configure/app/server/rsc.md +26 -0
  168. package/docs/configure/app/server/ssr-by-entries.md +25 -0
  169. package/docs/configure/app/server/ssr.md +78 -0
  170. package/docs/configure/app/server/tsconfig-path.md +59 -0
  171. package/docs/configure/app/source/alias-strategy.md +14 -0
  172. package/docs/configure/app/source/alias.md +23 -0
  173. package/docs/configure/app/source/config-dir.md +20 -0
  174. package/docs/configure/app/source/decorators.md +25 -0
  175. package/docs/configure/app/source/define.md +16 -0
  176. package/docs/configure/app/source/disable-default-entries.md +28 -0
  177. package/docs/configure/app/source/enable-async-entry.md +54 -0
  178. package/docs/configure/app/source/enable-async-pre-entry.md +26 -0
  179. package/docs/configure/app/source/entries-dir.md +35 -0
  180. package/docs/configure/app/source/entries.md +179 -0
  181. package/docs/configure/app/source/exclude.md +10 -0
  182. package/docs/configure/app/source/global-vars.md +106 -0
  183. package/docs/configure/app/source/include.md +36 -0
  184. package/docs/configure/app/source/main-entry-name.md +24 -0
  185. package/docs/configure/app/source/pre-entry.md +10 -0
  186. package/docs/configure/app/source/react-compiler.md +68 -0
  187. package/docs/configure/app/source/transform-import.md +27 -0
  188. package/docs/configure/app/split-chunks.md +17 -0
  189. package/docs/configure/app/tools/autoprefixer.md +44 -0
  190. package/docs/configure/app/tools/bundler-chain.md +26 -0
  191. package/docs/configure/app/tools/css-extract.md +33 -0
  192. package/docs/configure/app/tools/css-loader.md +17 -0
  193. package/docs/configure/app/tools/dev-server.md +113 -0
  194. package/docs/configure/app/tools/html-plugin.md +41 -0
  195. package/docs/configure/app/tools/less.md +81 -0
  196. package/docs/configure/app/tools/lightningcss-loader.md +35 -0
  197. package/docs/configure/app/tools/minify-css.md +53 -0
  198. package/docs/configure/app/tools/postcss.md +34 -0
  199. package/docs/configure/app/tools/rspack.md +10 -0
  200. package/docs/configure/app/tools/sass.md +78 -0
  201. package/docs/configure/app/tools/style-loader.md +10 -0
  202. package/docs/configure/app/tools/swc.md +65 -0
  203. package/docs/configure/app/tools/ts-checker.md +109 -0
  204. package/docs/configure/app/usage.md +276 -0
  205. package/docs/guides/advanced-features/bff/cross-project.md +109 -0
  206. package/docs/guides/advanced-features/bff/extend-server.md +120 -0
  207. package/docs/guides/advanced-features/bff/frameworks.md +124 -0
  208. package/docs/guides/advanced-features/bff/function.md +314 -0
  209. package/docs/guides/advanced-features/bff/operators.md +554 -0
  210. package/docs/guides/advanced-features/bff/sdk.md +116 -0
  211. package/docs/guides/advanced-features/bff/upload.md +101 -0
  212. package/docs/guides/advanced-features/bff.md +18 -0
  213. package/docs/guides/advanced-features/build-performance.md +130 -0
  214. package/docs/guides/advanced-features/compatibility.md +120 -0
  215. package/docs/guides/advanced-features/international/advanced.md +128 -0
  216. package/docs/guides/advanced-features/international/api.md +231 -0
  217. package/docs/guides/advanced-features/international/best-practices.md +286 -0
  218. package/docs/guides/advanced-features/international/configuration.md +227 -0
  219. package/docs/guides/advanced-features/international/locale-detection.md +126 -0
  220. package/docs/guides/advanced-features/international/quick-start.md +128 -0
  221. package/docs/guides/advanced-features/international/resource-loading.md +154 -0
  222. package/docs/guides/advanced-features/international/routing.md +130 -0
  223. package/docs/guides/advanced-features/international.md +27 -0
  224. package/docs/guides/advanced-features/low-level.md +46 -0
  225. package/docs/guides/advanced-features/page-performance/code-split.md +77 -0
  226. package/docs/guides/advanced-features/page-performance/inline-assets.md +159 -0
  227. package/docs/guides/advanced-features/page-performance/optimize-bundle.md +97 -0
  228. package/docs/guides/advanced-features/page-performance/react-compiler.md +69 -0
  229. package/docs/guides/advanced-features/server-monitor/logger.md +41 -0
  230. package/docs/guides/advanced-features/server-monitor/metrics.md +58 -0
  231. package/docs/guides/advanced-features/server-monitor/monitors.md +242 -0
  232. package/docs/guides/advanced-features/source-build.md +164 -0
  233. package/docs/guides/advanced-features/web-server.md +288 -0
  234. package/docs/guides/basic-features/alias.md +102 -0
  235. package/docs/guides/basic-features/css/css-in-js.md +72 -0
  236. package/docs/guides/basic-features/css/css-modules.md +212 -0
  237. package/docs/guides/basic-features/css/css.md +27 -0
  238. package/docs/guides/basic-features/css/tailwindcss.md +27 -0
  239. package/docs/guides/basic-features/data/data-cache.md +510 -0
  240. package/docs/guides/basic-features/data/data-fetch.md +415 -0
  241. package/docs/guides/basic-features/data/data-write.md +227 -0
  242. package/docs/guides/basic-features/debug/mock.md +109 -0
  243. package/docs/guides/basic-features/debug/proxy.md +21 -0
  244. package/docs/guides/basic-features/debug/rsdoctor.md +62 -0
  245. package/docs/guides/basic-features/debug/using-storybook.md +112 -0
  246. package/docs/guides/basic-features/deploy.md +458 -0
  247. package/docs/guides/basic-features/env-vars.md +177 -0
  248. package/docs/guides/basic-features/html.md +255 -0
  249. package/docs/guides/basic-features/output-files.md +141 -0
  250. package/docs/guides/basic-features/render/before-render.md +108 -0
  251. package/docs/guides/basic-features/render/overview.md +47 -0
  252. package/docs/guides/basic-features/render/rsc.md +525 -0
  253. package/docs/guides/basic-features/render/ssg.md +228 -0
  254. package/docs/guides/basic-features/render/ssr-cache.md +201 -0
  255. package/docs/guides/basic-features/render/ssr.md +321 -0
  256. package/docs/guides/basic-features/render/streaming-ssr.md +264 -0
  257. package/docs/guides/basic-features/routes/config-routes.md +426 -0
  258. package/docs/guides/basic-features/routes/routes.md +498 -0
  259. package/docs/guides/basic-features/static-assets/json-files.md +120 -0
  260. package/docs/guides/basic-features/static-assets/svg-assets.md +168 -0
  261. package/docs/guides/basic-features/static-assets/wasm-assets.md +62 -0
  262. package/docs/guides/basic-features/static-assets.md +160 -0
  263. package/docs/guides/basic-features/testing/playwright.md +120 -0
  264. package/docs/guides/basic-features/testing/rstest.md +251 -0
  265. package/docs/guides/concept/builder.md +37 -0
  266. package/docs/guides/concept/entries.md +319 -0
  267. package/docs/guides/concept/server.md +35 -0
  268. package/docs/guides/get-started/ai-coding-agents.md +58 -0
  269. package/docs/guides/get-started/glossary.md +63 -0
  270. package/docs/guides/get-started/introduction.md +36 -0
  271. package/docs/guides/get-started/quick-start.md +236 -0
  272. package/docs/guides/get-started/tech-stack.md +82 -0
  273. package/docs/guides/get-started/upgrade.md +123 -0
  274. package/docs/guides/topic-detail/module-federation/application.md +116 -0
  275. package/docs/guides/topic-detail/module-federation/deploy.md +104 -0
  276. package/docs/guides/topic-detail/module-federation/i18n.md +670 -0
  277. package/docs/guides/topic-detail/module-federation/introduce.md +35 -0
  278. package/docs/guides/topic-detail/module-federation/ssr.md +118 -0
  279. package/docs/guides/topic-detail/module-federation/usage.md +219 -0
  280. package/docs/guides/troubleshooting/builder.md +110 -0
  281. package/docs/guides/troubleshooting/cli.md +35 -0
  282. package/docs/guides/troubleshooting/dependencies.md +119 -0
  283. package/docs/guides/troubleshooting/hmr.md +144 -0
  284. package/docs/guides/upgrade/config.md +963 -0
  285. package/docs/guides/upgrade/entry.md +463 -0
  286. package/docs/guides/upgrade/other.md +183 -0
  287. package/docs/guides/upgrade/overview.md +33 -0
  288. package/docs/guides/upgrade/tailwindcss.md +91 -0
  289. package/docs/guides/upgrade/web-server.md +109 -0
  290. package/docs/index.md +33 -0
  291. package/docs/llms.txt +285 -0
  292. package/docs/plugin/cli-plugins/api.md +573 -0
  293. package/docs/plugin/cli-plugins/life-cycle.md +2 -0
  294. package/docs/plugin/introduction.md +152 -0
  295. package/docs/plugin/official/cli-plugins/plugin-bff.md +5 -0
  296. package/docs/plugin/official/cli-plugins/plugin-ssg.md +5 -0
  297. package/docs/plugin/official/cli-plugins/plugin-styled-components.md +5 -0
  298. package/docs/plugin/official/cli-plugins.md +4 -0
  299. package/docs/plugin/plugin-system.md +238 -0
  300. package/docs/plugin/runtime-plugins/api.md +194 -0
  301. package/docs/plugin/runtime-plugins/life-cycle.md +2 -0
  302. package/docs/plugin/server-plugins/api.md +209 -0
  303. package/docs/plugin/server-plugins/life-cycle.md +13 -0
  304. package/docs/tutorials/examples/csr-auth.md +9 -0
  305. package/docs/tutorials/foundations/introduction.md +16 -0
  306. package/package.json +46 -13
@@ -0,0 +1,79 @@
1
+ # output.convertToRem
2
+
3
+ - **Type:** `boolean | object`
4
+ - **Default:** `false`
5
+
6
+ By setting `output.convertToRem`, Modern.js can do the following things:
7
+
8
+ - Convert px to rem in CSS.
9
+ - Insert runtime code into the HTML template to set the fontSize of the root element.
10
+
11
+ ### Boolean Type
12
+
13
+ If `output.convertToRem` is set to `true`, Rem processing capability will be turned on.
14
+
15
+ ```js
16
+ export default {
17
+ output: {
18
+ convertToRem: true,
19
+ },
20
+ };
21
+ ```
22
+
23
+ At this point, the rem configuration defaults as follows:
24
+
25
+ ```js
26
+ {
27
+ enableRuntime: true,
28
+ rootFontSize: 50,
29
+ screenWidth: 375,
30
+ rootFontSize: 50,
31
+ maxRootFontSize: 64,
32
+ widthQueryKey: '',
33
+ excludeEntries: [],
34
+ supportLandscape: false,
35
+ useRootFontSizeBeyondMax: false,
36
+ pxtorem: {
37
+ rootValue: 50,
38
+ unitPrecision: 5,
39
+ propList: ['*'],
40
+ }
41
+ }
42
+ ```
43
+
44
+ ### Object Type
45
+
46
+ When the value of `output.convertToRem` is `object` type, Modern.js will perform Rem processing based on the current configuration.
47
+
48
+ options:
49
+
50
+ | Name | Type | Default | Description |
51
+ | ------------------------ | ---------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
52
+ | enableRuntime | `boolean` | `true` | Whether to generate runtime code to calculate and set the font size of the root element |
53
+ | inlineRuntime | `boolean` | `true` | Whether to inline the runtime code to HTML. If set to `false`, the runtime code will be extracted into a separate `convert-rem.[version].js` file and output to the dist directory |
54
+ | rootFontSize | `number` | `50` | The root element font size |
55
+ | maxRootFontSize | `number` | `64` | The root element max font size |
56
+ | widthQueryKey | `string` | `'' ` | Get clientWidth from the url query based on widthQueryKey |
57
+ | screenWidth | `number` | `375` | The screen width for UI design drawings (Usually, `fontSize = (clientWidth * rootFontSize) / screenWidth`) |
58
+ | excludeEntries | `string[]` | `[]` | To exclude some page entries from injecting runtime code, it is usually used with `pxtorem.exclude` |
59
+ | supportLandscape | `boolean` | `false` | Use height to calculate rem in landscape |
60
+ | useRootFontSizeBeyondMax | `boolean` | `false` | Whether to use rootFontSize when large than maxRootFontSize |
61
+ | pxtorem | `object` | <ul><li>rootValue (Default is the same as rootFontSize) </li><li>unitPrecision: 5 </li><li>propList: \['\*']</li></ul> | [postcss-pxtorem](https://github.com/cuth/postcss-pxtorem#options) options |
62
+
63
+ ### Example
64
+
65
+ ```js
66
+ export default {
67
+ output: {
68
+ convertToRem: {
69
+ rootFontSize: 30,
70
+ excludeEntries: ['404', 'page2'],
71
+ pxtorem: {
72
+ propList: ['font-size'],
73
+ },
74
+ },
75
+ },
76
+ };
77
+ ```
78
+
79
+ For detailed usage, please refer to [rsbuild-plugin-rem](https://github.com/rstackjs/rsbuild-plugin-rem).
@@ -0,0 +1,10 @@
1
+ # output.copy
2
+
3
+ - **Type:**`Rspack.CopyRspackPluginOptions | Rspack.CopyRspackPluginOptions['patterns']`
4
+ - **Default:** `undefined`
5
+
6
+ Copies the specified file or directory to the dist directory, implemented based on [rspack.CopyRspackPlugin](https://rspack.rs/zh/plugins/rspack/copy-rspack-plugin).
7
+
8
+ :::info
9
+ The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - output.copy](https://v2.rsbuild.dev/config/output/copy).
10
+ :::
@@ -0,0 +1,48 @@
1
+ # output.cssModules
2
+
3
+ - **Type:**
4
+
5
+ ```ts
6
+ type CssModules = {
7
+ auto?:
8
+ | boolean
9
+ | RegExp
10
+ | ((
11
+ resourcePath: string,
12
+ resourceQuery: string,
13
+ resourceFragment: string,
14
+ ) => boolean);
15
+ exportLocalsConvention?:
16
+ | 'asIs'
17
+ | 'camelCase'
18
+ | 'camelCaseOnly'
19
+ | 'dashes'
20
+ | 'dashesOnly';
21
+ exportGlobals?: boolean;
22
+ localIdentName?: string;
23
+ mode?:
24
+ | 'local'
25
+ | 'global'
26
+ | 'pure'
27
+ | 'icss'
28
+ | ((resourcePath: string) => 'local' | 'global' | 'pure' | 'icss');
29
+ namedExport?: boolean;
30
+ };
31
+ ```
32
+
33
+ - **Default:**
34
+
35
+ ```ts
36
+ const defaultCssModules = {
37
+ auto: true,
38
+ namedExport: false,
39
+ exportGlobals: false,
40
+ exportLocalsConvention: 'camelCase',
41
+ };
42
+ ```
43
+
44
+ For custom CSS Modules configuration.
45
+
46
+ :::info
47
+ The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - output.cssModules](https://v2.rsbuild.dev/config/output/css-modules).
48
+ :::
@@ -0,0 +1,26 @@
1
+ # output.dataUriLimit
2
+
3
+ - **Type:**
4
+
5
+ ```ts
6
+ type DataUriLimitConfig =
7
+ | number
8
+ | {
9
+ svg?: number;
10
+ font?: number;
11
+ image?: number;
12
+ media?: number;
13
+ };
14
+ ```
15
+
16
+ - **Default:**
17
+
18
+ ```js
19
+ const defaultDatUriLimit = 10000;
20
+ ```
21
+
22
+ Set the size threshold to inline static assets such as images and fonts.
23
+
24
+ :::info
25
+ The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - output.dataUriLimit](https://v2.rsbuild.dev/config/output/data-uri-limit).
26
+ :::
@@ -0,0 +1,55 @@
1
+ # output.disableCssModuleExtension
2
+
3
+ - **Type:** `boolean`
4
+ - **Default:** `false`
5
+
6
+ Whether to treat all `.css` files in the source directory as CSS Modules.
7
+
8
+ By default, only the `*.module.css` files are treated as CSS Modules. After enabling this config, all `*.css` style files in the source directory will be regarded as CSS Modules.
9
+
10
+ `.sass`, `.scss` and `.less` files are also affected by `disableCssModuleExtension`.
11
+
12
+ :::tip
13
+ We do not recommend enabling this config, because after enabling `disableCssModuleExtension`, CSS Modules files and ordinary CSS files cannot be clearly distinguished, which is not conducive to long-term maintenance.
14
+ :::
15
+
16
+ ### Example
17
+
18
+ ```js
19
+ export default {
20
+ output: {
21
+ disableCssModuleExtension: true,
22
+ },
23
+ };
24
+ ```
25
+
26
+ ### Detailed
27
+
28
+ The following is a detailed explanation of the CSS Modules rules:
29
+
30
+ #### disableCssModuleExtension is false (default)
31
+
32
+ The following files are treated as CSS Modules:
33
+
34
+ - all `*.module.css` files
35
+
36
+ The following files are treated as normal CSS:
37
+
38
+ - all `*.css` files (excluding `.module`)
39
+ - all `*.global.css` files
40
+
41
+ #### disableCssModuleExtension is true
42
+
43
+ The following files are treated as CSS Modules:
44
+
45
+ - `*.css` and `*.module.css` files in the source directory
46
+ - `*.module.css` files under node\_modules
47
+
48
+ The following files are treated as normal CSS:
49
+
50
+ - all `*.global.css` files
51
+ - `*.css` files under node\_modules (without `.module`)
52
+
53
+ :::tip
54
+ For CSS Modules files inside node\_modules, please always use the `*.module.css` suffix.
55
+ :::
@@ -0,0 +1,41 @@
1
+ # output.disableInlineRuntimeChunk
2
+
3
+ - **Type:** `boolean`
4
+ - **Default:** `false`
5
+
6
+ Used to control whether to inline the bundler's runtime code into HTML.
7
+
8
+ :::tip What is runtimeChunk
9
+ Modern.js will generate a `builder-runtime.js` file in the dist directory, which is the runtime code of Rspack.
10
+
11
+ runtimeChunk is a piece of runtime code, which is provided by Rspack, that contains the necessary module processing logic, such as module loading, module parsing, etc. See [Runtime Chunk](https://rspack.rs/config/optimization#optimizationruntimechunk) for details.
12
+
13
+ :::
14
+
15
+ In the production environment, Modern.js will inline the runtimeChunk file into the HTML file by default instead of writing it to the dist directory. This is done to reduce the number of file requests.
16
+
17
+ ### Disable Inlining
18
+
19
+ If you don't want the runtimeChunk file to be inlined into the HTML file, you can set `disableInlineRuntimeChunk` to `true` and a separate `builder-runtime.js` file will be generated.
20
+
21
+ ```js
22
+ export default {
23
+ output: {
24
+ disableInlineRuntimeChunk: true,
25
+ },
26
+ };
27
+ ```
28
+
29
+ ### Merge Into Page Chunk
30
+
31
+ If you don't want to generate a separate runtimeChunk file, but want the runtimeChunk code to be bundled into the page chunk, you can set the config like this:
32
+
33
+ ```js
34
+ export default {
35
+ tools: {
36
+ bundlerChain(chain) {
37
+ chain.optimization.runtimeChunk(false);
38
+ },
39
+ },
40
+ };
41
+ ```
@@ -0,0 +1,16 @@
1
+ # output.disableSvgr
2
+
3
+ - **Type:** `boolean`
4
+ - **Default:** `false`
5
+
6
+ Whether to transform SVGs into React components. If true, will treat all .svg files as assets.
7
+
8
+ By default, when an SVG resource is referenced in a JS file, Modern.js will call SVGR to convert the SVG into a React component. If you are sure that all SVG resources in your project are not being used as React components, you can turn off this conversion by setting `disableSvgr` to true to improve build performance.
9
+
10
+ ```js
11
+ export default {
12
+ output: {
13
+ disableSvgr: true,
14
+ },
15
+ };
16
+ ```
@@ -0,0 +1,49 @@
1
+ # output.disableTsChecker
2
+
3
+ - **Type:** `boolean`
4
+ - **Default:** `false`
5
+
6
+ Whether to disable TypeScript type checker during compilation.
7
+
8
+ By default, Modern.js will run the TypeScript type checker in a separate process during the build process. Its checking logic is consistent with TypeScript's native `tsc` command. You can use `tsconfig.json` or `tools.tsChecker` config to customize the checking behavior.
9
+
10
+ ### Blocking Compilation
11
+
12
+ - In development build, type errors will not block the compilation process.
13
+ - In production build, type errors will cause the build to fail to ensure the stability of the production code.
14
+
15
+ ### Example
16
+
17
+ Disable TypeScript type checker:
18
+
19
+ ```js
20
+ export default {
21
+ output: {
22
+ disableTsChecker: true,
23
+ },
24
+ };
25
+ ```
26
+
27
+ Disable type checker in development:
28
+
29
+ ```js
30
+ export default {
31
+ output: {
32
+ disableTsChecker: process.env.NODE_ENV === 'development',
33
+ },
34
+ };
35
+ ```
36
+
37
+ Disable type checker in production:
38
+
39
+ ```js
40
+ export default {
41
+ output: {
42
+ disableTsChecker: process.env.NODE_ENV === 'production',
43
+ },
44
+ };
45
+ ```
46
+
47
+ :::tip
48
+ It is not recommended to disable type checker in production, which will reduce the stability of the production code, please use it with caution.
49
+ :::
@@ -0,0 +1,43 @@
1
+ # output.distPath
2
+
3
+
4
+ - **Type:**
5
+
6
+ ```ts
7
+ type DistPathConfig = {
8
+ root?: string;
9
+ html?: string;
10
+ js?: string;
11
+ css?: string;
12
+ svg?: string;
13
+ font?: string;
14
+ wasm?: string;
15
+ image?: string;
16
+ media?: string;
17
+ worker?: string;
18
+ assets?: string;
19
+ };
20
+ ```
21
+
22
+ - **Default:**
23
+
24
+ ```js
25
+ const defaultDistPath = {
26
+ root: 'dist',
27
+ css: 'static/css',
28
+ svg: 'static/svg',
29
+ font: 'static/font',
30
+ html: 'html',
31
+ wasm: 'static/wasm',
32
+ image: 'static/image',
33
+ media: 'static/media',
34
+ js: 'static/js',
35
+ assets: 'static/assets',
36
+ };
37
+ ```
38
+
39
+ Set the directory of the dist files. Modern.js will output files to the corresponding subdirectory according to the file type.
40
+
41
+ :::info
42
+ The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - output.distPath](https://v2.rsbuild.dev/config/output/dist-path).
43
+ :::
@@ -0,0 +1,36 @@
1
+ # output.enableAssetManifest
2
+
3
+ - **Type:** `boolean`
4
+ - **Default:** `false`
5
+
6
+ Whether to generate a manifest file that contains information of all assets.
7
+
8
+ ### Example
9
+
10
+ Enable asset manifest:
11
+
12
+ ```js
13
+ export default {
14
+ output: {
15
+ enableAssetManifest: true,
16
+ },
17
+ };
18
+ ```
19
+
20
+ After compiler, there will be a `dist/manifest.json` file:
21
+
22
+ ```json
23
+ {
24
+ "files": {
25
+ "main.css": "/static/css/main.45b01211.css",
26
+ "main.js": "/static/js/main.52fd298f.js",
27
+ "html/main/index.html": "/html/main/index.html"
28
+ },
29
+ "entrypoints": ["static/css/main.45b01211.css", "static/js/main.52fd298f.js"]
30
+ }
31
+ ```
32
+
33
+ If the current project has multiple types of build artifacts, such as including SSR build artifacts, multiple manifest.json files will be generated.
34
+
35
+ - web artifact: `asset-manifest.json`
36
+ - node artifact: `asset-manifest-node.json`
@@ -0,0 +1,28 @@
1
+ # output.enableCssModuleTSDeclaration
2
+
3
+ - **Type:** `boolean`
4
+ - **Default:** `false`
5
+
6
+ Whether to generate a TypeScript declaration file for CSS modules.
7
+
8
+ ### Example
9
+
10
+ Enable CSS module TypeScript declaration:
11
+
12
+ ```js
13
+ export default {
14
+ output: {
15
+ enableCssModuleTSDeclaration: true,
16
+ },
17
+ };
18
+ ```
19
+
20
+ After building, there will be a `.d.ts` file for each CSS module file. For example
21
+
22
+ ```ts
23
+ interface CssExports {
24
+ title: string;
25
+ }
26
+ export const cssExports: CssExports;
27
+ export default cssExports;
28
+ ```
@@ -0,0 +1,16 @@
1
+ # output.disableInlineRouteManifests
2
+
3
+ - **Type:** `boolean`
4
+ - **Default:** `false`
5
+
6
+ When using convention-based routing, the framework injects routing information into the client for optimization purposes. By default, routing information is injected into the html, but when this is configured to `true`, routing information is injected into a separate JS file.
7
+
8
+ Example:
9
+
10
+ ```ts
11
+ export default {
12
+ output: {
13
+ disableInlineRouteManifests: true,
14
+ },
15
+ };
16
+ ```
@@ -0,0 +1,20 @@
1
+ # output.externals
2
+
3
+ - **Type:**
4
+
5
+ ```ts
6
+ type Externals =
7
+ | string
8
+ | object
9
+ | function
10
+ | RegExp
11
+ | Array<string | object | function | RegExp>;
12
+ ```
13
+
14
+ - **Default:** `undefined`
15
+
16
+ At build time, prevent some `import` dependencies from being packed into bundles in your code, and instead fetch them externally at runtime.
17
+
18
+ :::info
19
+ The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - output.externals](https://v2.rsbuild.dev/config/output/externals).
20
+ :::
@@ -0,0 +1,10 @@
1
+ # output.filenameHash
2
+
3
+ - **Type:** `boolean | string`
4
+ - **Default:** `true`
5
+
6
+ Whether to add a hash value to the filename after the production build.
7
+
8
+ :::info
9
+ The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - output.filenameHash](https://v2.rsbuild.dev/config/output/filename-hash).
10
+ :::
@@ -0,0 +1,55 @@
1
+ # output.filename
2
+
3
+ :::warning
4
+
5
+ In Modern.js `dev` command or use Modern.js server deployment, don't modify the html output filename. This will cause the page to be 404.
6
+
7
+ :::
8
+
9
+ - **Type:**
10
+
11
+ ```ts
12
+ type FilenameConfig = {
13
+ js?:
14
+ | string
15
+ | ((pathData: Rspack.PathData, assetInfo: Rspack.JsAssetInfo) => string);
16
+ css?: string;
17
+ svg?: string;
18
+ font?: string;
19
+ image?: string;
20
+ media?: string;
21
+ assets?: string;
22
+ };
23
+ ```
24
+
25
+ - **Default:**
26
+
27
+ ```js
28
+ // Development mode
29
+ const devDefaultFilename = {
30
+ js: '[name].js',
31
+ css: '[name].css',
32
+ svg: '[name].[contenthash:8].svg',
33
+ font: '[name].[contenthash:8][ext]',
34
+ image: '[name].[contenthash:8][ext]',
35
+ media: '[name].[contenthash:8][ext]',
36
+ assets: '[name].[contenthash:8][ext]',
37
+ };
38
+
39
+ // Production mode
40
+ const prodDefaultFilename = {
41
+ js: output.target === 'node' ? '[name].js' : '[name].[contenthash:8].js',
42
+ css: '[name].[contenthash:8].css',
43
+ svg: '[name].[contenthash:8].svg',
44
+ font: '[name].[contenthash:8][ext]',
45
+ image: '[name].[contenthash:8][ext]',
46
+ media: '[name].[contenthash:8][ext]',
47
+ assets: '[name].[contenthash:8][ext]',
48
+ };
49
+ ```
50
+
51
+ Sets the filename of dist files.
52
+
53
+ :::info
54
+ The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - output.filename](https://v2.rsbuild.dev/config/output/filename).
55
+ :::
@@ -0,0 +1,10 @@
1
+ # output.injectStyles
2
+
3
+ - **Type:** `boolean`
4
+ - **Default:** `false`
5
+
6
+ Whether to inject styles into DOM.
7
+
8
+ :::info
9
+ The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - output.injectStyles](https://v2.rsbuild.dev/config/output/inject-styles).
10
+ :::
@@ -0,0 +1,29 @@
1
+ # output.inlineScripts
2
+
3
+ - **Type:**
4
+
5
+ ```ts
6
+ type InlineScriptsTest =
7
+ | RegExp
8
+ | ((params: { size: number; name: string }) => boolean);
9
+
10
+ type InlineScripts =
11
+ | boolean
12
+ | InlineScriptsTest
13
+ | {
14
+ enable?: boolean | 'auto';
15
+ test: InlineScriptsTest;
16
+ };
17
+ ```
18
+
19
+ - **Default:** `/builder-runtime([.].+)?\.js$/`
20
+
21
+ Whether to inline output scripts files (.js files) into HTML with `<script>` tags.
22
+
23
+ :::tip
24
+ When using convention-based routing, you need to set [output.splitRouteChunks](/configure/app/output/split-route-chunks.md) to false if this option is turned on.
25
+ :::
26
+
27
+ :::info
28
+ The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - output.inlineScripts](https://v2.rsbuild.dev/config/output/inline-scripts).
29
+ :::
@@ -0,0 +1,29 @@
1
+ # output.inlineStyles
2
+
3
+ - **Type:**
4
+
5
+ ```ts
6
+ type InlineStylesTest =
7
+ | RegExp
8
+ | ((params: { size: number; name: string }) => boolean);
9
+
10
+ type InlineStyles =
11
+ | boolean
12
+ | InlineStylesTest
13
+ | {
14
+ enable?: boolean | 'auto';
15
+ test: InlineStylesTest;
16
+ };
17
+ ```
18
+
19
+ - **Default:** `false`
20
+
21
+ Whether to inline output style files (.css files) into HTML with `<style>` tags.
22
+
23
+ :::tip
24
+ When using convention-based routing, you need to set [output.splitRouteChunks](/configure/app/output/split-route-chunks.md) to false if this option is turned on.
25
+ :::
26
+
27
+ :::info
28
+ The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - output.inlineStyles](https://v2.rsbuild.dev/config/output/inline-styles).
29
+ :::
@@ -0,0 +1,18 @@
1
+ # output.legalComments
2
+
3
+ - **Type:** `'linked' | 'inline' | 'none'`
4
+ - **Default:** `'linked'`
5
+
6
+ Configure how to handle the legal comment.
7
+
8
+ A "legal comment" is considered to be any statement-level comment in JS or rule-level comment in CSS that contains `@license` or `@preserve` or that starts with `//!` or `/*!`. These comments are preserved in output files by default since that follows the intent of the original authors of the code.
9
+
10
+ This behavior can be configured by using one of the following options:
11
+
12
+ - `linked`: Extract all legal comments to a .LEGAL.txt file and link to them with a comment.
13
+ - `inline`: Preserve all legal comments in original position.
14
+ - `none`: Remove all legal comments.
15
+
16
+ :::info
17
+ The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - output.legalComments](https://v2.rsbuild.dev/config/output/legal-comments).
18
+ :::
@@ -0,0 +1,22 @@
1
+ # output.minify
2
+
3
+ - **Type:**
4
+
5
+ ```ts
6
+ type Minify =
7
+ | boolean
8
+ | {
9
+ js?: boolean;
10
+ jsOptions?: SwcJsMinimizerRspackPluginOptions;
11
+ css?: boolean;
12
+ cssOptions?: LightningCssMinimizerRspackPluginOptions;
13
+ };
14
+ ```
15
+
16
+ - **Default:** `true`
17
+
18
+ Configure whether to enable code minification in production mode, or to configure minimizer options.
19
+
20
+ :::info
21
+ The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - output.minify](https://v2.rsbuild.dev/config/output/minify).
22
+ :::