@bleedingdev/modern-js-app-tools 3.5.0-ultramodern.97 → 3.5.0-ultramodern.99

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 (368) hide show
  1. package/dist/cjs/builder/generator/createBuilderProviderConfig.js +5 -1
  2. package/dist/cjs/builder/generator/getBuilderEnvironments.js +7 -0
  3. package/dist/cjs/commands/build.js +2 -1
  4. package/dist/cjs/commands/deploy.js +4 -2
  5. package/dist/cjs/commands/index.js +0 -4
  6. package/dist/cjs/config/default.js +2 -0
  7. package/dist/cjs/index.js +56 -15
  8. package/dist/cjs/plugins/analyze/index.js +2 -2
  9. package/dist/cjs/plugins/analyze/utils.js +3 -2
  10. package/dist/cjs/plugins/initialize/index.js +4 -3
  11. package/dist/cjs/plugins/serverBuild.js +3 -2
  12. package/dist/esm/builder/generator/createBuilderProviderConfig.mjs +5 -1
  13. package/dist/esm/builder/generator/getBuilderEnvironments.mjs +7 -0
  14. package/dist/esm/commands/build.mjs +2 -1
  15. package/dist/esm/commands/deploy.mjs +4 -2
  16. package/dist/esm/commands/index.mjs +0 -4
  17. package/dist/esm/config/default.mjs +2 -0
  18. package/dist/esm/index.mjs +15 -1
  19. package/dist/esm/plugins/analyze/index.mjs +2 -2
  20. package/dist/esm/plugins/analyze/utils.mjs +3 -2
  21. package/dist/esm/plugins/initialize/index.mjs +4 -3
  22. package/dist/esm/plugins/serverBuild.mjs +3 -2
  23. package/dist/esm-node/builder/generator/createBuilderProviderConfig.mjs +5 -1
  24. package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +7 -0
  25. package/dist/esm-node/commands/build.mjs +2 -1
  26. package/dist/esm-node/commands/deploy.mjs +4 -2
  27. package/dist/esm-node/commands/index.mjs +0 -4
  28. package/dist/esm-node/config/default.mjs +2 -0
  29. package/dist/esm-node/index.mjs +15 -1
  30. package/dist/esm-node/plugins/analyze/index.mjs +2 -2
  31. package/dist/esm-node/plugins/analyze/utils.mjs +3 -2
  32. package/dist/esm-node/plugins/initialize/index.mjs +4 -3
  33. package/dist/esm-node/plugins/serverBuild.mjs +3 -2
  34. package/dist/types/commands/deploy.d.ts +2 -1
  35. package/dist/types/index.d.ts +4 -1
  36. package/dist/types/plugins/analyze/utils.d.ts +1 -1
  37. package/dist/types/types/config/dev.d.ts +6 -0
  38. package/docs/_nav.json +36 -0
  39. package/docs/apis/_meta.json +13 -0
  40. package/docs/apis/app/commands.mdx +205 -0
  41. package/docs/apis/app/hooks/_meta.json +28 -0
  42. package/docs/apis/app/hooks/api/lambda.mdx +13 -0
  43. package/docs/apis/app/hooks/config/_meta.json +1 -0
  44. package/docs/apis/app/hooks/config/favicon.mdx +29 -0
  45. package/docs/apis/app/hooks/config/html.mdx +9 -0
  46. package/docs/apis/app/hooks/config/icon.mdx +29 -0
  47. package/docs/apis/app/hooks/config/mock.mdx +10 -0
  48. package/docs/apis/app/hooks/config/public.mdx +30 -0
  49. package/docs/apis/app/hooks/config/upload.mdx +54 -0
  50. package/docs/apis/app/hooks/modern-config.mdx +9 -0
  51. package/docs/apis/app/hooks/server/server.mdx +10 -0
  52. package/docs/apis/app/hooks/shared.mdx +7 -0
  53. package/docs/apis/app/hooks/src/app.mdx +30 -0
  54. package/docs/apis/app/hooks/src/entry.mdx +39 -0
  55. package/docs/apis/app/hooks/src/entry.server.mdx +56 -0
  56. package/docs/apis/app/hooks/src/modern.runtime.mdx +9 -0
  57. package/docs/apis/app/hooks/src/routes.mdx +90 -0
  58. package/docs/apis/app/hooks/src/server.mdx +7 -0
  59. package/docs/apis/app/runtime/_meta.json +32 -0
  60. package/docs/apis/app/runtime/bff/use-backend-context.mdx +30 -0
  61. package/docs/apis/app/runtime/core/create-root.mdx +22 -0
  62. package/docs/apis/app/runtime/core/render.mdx +42 -0
  63. package/docs/apis/app/runtime/core/runtime-context.mdx +160 -0
  64. package/docs/apis/app/runtime/router/router.mdx +288 -0
  65. package/docs/apis/app/runtime/ssr/no-ssr.mdx +38 -0
  66. package/docs/apis/app/runtime/ssr/renderStreaming.mdx +71 -0
  67. package/docs/apis/app/runtime/ssr/renderString.mdx +64 -0
  68. package/docs/apis/app/runtime/ssr/requestHandler.mdx +48 -0
  69. package/docs/apis/app/runtime/utility/css-in-js.mdx +44 -0
  70. package/docs/apis/app/runtime/utility/head.mdx +38 -0
  71. package/docs/apis/app/runtime/utility/loadable.mdx +85 -0
  72. package/docs/components/auto-upgrade.mdx +0 -0
  73. package/docs/components/bff-upload.mdx +97 -0
  74. package/docs/components/build-output.mdx +45 -0
  75. package/docs/components/bundler.mdx +3 -0
  76. package/docs/components/convention-routing-motivation.mdx +0 -0
  77. package/docs/components/debug-app.mdx +15 -0
  78. package/docs/components/default-browserslist.mdx +7 -0
  79. package/docs/components/deploy-command.mdx +14 -0
  80. package/docs/components/deploy.mdx +1 -0
  81. package/docs/components/enable-bff-caution.mdx +3 -0
  82. package/docs/components/enable-bff.mdx +56 -0
  83. package/docs/components/enable-ssg.mdx +49 -0
  84. package/docs/components/entry-mode.mdx +0 -0
  85. package/docs/components/entry-scan-logic.mdx +7 -0
  86. package/docs/components/extend-bff-function.mdx +3 -0
  87. package/docs/components/hono.mdx +120 -0
  88. package/docs/components/init-app.mdx +93 -0
  89. package/docs/components/init-rspack-app.mdx +5 -0
  90. package/docs/components/internal-logger.mdx +25 -0
  91. package/docs/components/internal-metrics.mdx +20 -0
  92. package/docs/components/international/custom-instance-code.mdx +16 -0
  93. package/docs/components/international/init-options-desc.mdx +1 -0
  94. package/docs/components/international/install-command.mdx +10 -0
  95. package/docs/components/international/instance-code.mdx +16 -0
  96. package/docs/components/international/introduce.mdx +5 -0
  97. package/docs/components/international/platform-support.mdx +0 -0
  98. package/docs/components/language-config.mdx +9 -0
  99. package/docs/components/micro-frontend.mdx +6 -0
  100. package/docs/components/micro-master-manifest-config.mdx +15 -0
  101. package/docs/components/micro-runtime-config.mdx +17 -0
  102. package/docs/components/module-federation.mdx +7 -0
  103. package/docs/components/new-entry-tooltip.mdx +0 -0
  104. package/docs/components/nodeVersion.mdx +28 -0
  105. package/docs/components/other-plugins.mdx +0 -0
  106. package/docs/components/output-asset-prefix-extend.mdx +0 -0
  107. package/docs/components/output-distpath-warning.mdx +0 -0
  108. package/docs/components/output-polyfill-extend.mdx +1 -0
  109. package/docs/components/prerequisites.mdx +18 -0
  110. package/docs/components/release-note.mdx +1 -0
  111. package/docs/components/routes-practice.mdx +0 -0
  112. package/docs/components/rsbuild-config-tooltip.mdx +5 -0
  113. package/docs/components/rsbuild.mdx +3 -0
  114. package/docs/components/rsc-deploy-tip.mdx +1 -0
  115. package/docs/components/rspack.mdx +3 -0
  116. package/docs/components/rspackTip.mdx +7 -0
  117. package/docs/components/runtime-cli-config.mdx +0 -0
  118. package/docs/components/serve-command.mdx +22 -0
  119. package/docs/components/ssr-monitor.mdx +3 -0
  120. package/docs/components/stream-ssr-performance.mdx +0 -0
  121. package/docs/components/swc.mdx +3 -0
  122. package/docs/components/tech-stack-node-framework.mdx +1 -0
  123. package/docs/components/turtorials-example-list.mdx +2 -0
  124. package/docs/components/ua-polyfill.mdx +44 -0
  125. package/docs/components/upgrade-browserslist.mdx +0 -0
  126. package/docs/components/upgrade-config-deploy.mdx +0 -0
  127. package/docs/components/upgrade-faq.mdx +0 -0
  128. package/docs/configure/_meta.json +78 -0
  129. package/docs/configure/app/bff/cross-project.mdx +24 -0
  130. package/docs/configure/app/bff/effect.mdx +319 -0
  131. package/docs/configure/app/bff/prefix.mdx +33 -0
  132. package/docs/configure/app/bff/runtime-framework.mdx +30 -0
  133. package/docs/configure/app/builder-plugins.mdx +70 -0
  134. package/docs/configure/app/dev/asset-prefix.mdx +18 -0
  135. package/docs/configure/app/dev/before-start-url.mdx +21 -0
  136. package/docs/configure/app/dev/client.mdx +45 -0
  137. package/docs/configure/app/dev/hmr.mdx +14 -0
  138. package/docs/configure/app/dev/host.mdx +22 -0
  139. package/docs/configure/app/dev/https.mdx +81 -0
  140. package/docs/configure/app/dev/lazy-compilation.mdx +45 -0
  141. package/docs/configure/app/dev/live-reload.mdx +14 -0
  142. package/docs/configure/app/dev/mock-dir.mdx +35 -0
  143. package/docs/configure/app/dev/progress-bar.mdx +23 -0
  144. package/docs/configure/app/dev/server.mdx +128 -0
  145. package/docs/configure/app/dev/setup-middlewares.mdx +36 -0
  146. package/docs/configure/app/dev/start-url.mdx +53 -0
  147. package/docs/configure/app/dev/watch-files.mdx +31 -0
  148. package/docs/configure/app/dev/write-to-disk.mdx +14 -0
  149. package/docs/configure/app/experiments/source-build.mdx +33 -0
  150. package/docs/configure/app/html/app-icon.mdx +32 -0
  151. package/docs/configure/app/html/crossorigin.mdx +14 -0
  152. package/docs/configure/app/html/favicon.mdx +20 -0
  153. package/docs/configure/app/html/inject.mdx +14 -0
  154. package/docs/configure/app/html/meta.mdx +28 -0
  155. package/docs/configure/app/html/mount-id.mdx +14 -0
  156. package/docs/configure/app/html/output-structure.mdx +14 -0
  157. package/docs/configure/app/html/script-loading.mdx +14 -0
  158. package/docs/configure/app/html/tags.mdx +19 -0
  159. package/docs/configure/app/html/template-parameters.mdx +37 -0
  160. package/docs/configure/app/html/template.mdx +14 -0
  161. package/docs/configure/app/html/title.mdx +22 -0
  162. package/docs/configure/app/output/asset-prefix.mdx +18 -0
  163. package/docs/configure/app/output/assets-retry.mdx +81 -0
  164. package/docs/configure/app/output/charset.mdx +14 -0
  165. package/docs/configure/app/output/clean-dist-path.mdx +20 -0
  166. package/docs/configure/app/output/convert-to-rem.mdx +83 -0
  167. package/docs/configure/app/output/copy.mdx +14 -0
  168. package/docs/configure/app/output/css-modules.mdx +52 -0
  169. package/docs/configure/app/output/data-uri-limit.mdx +30 -0
  170. package/docs/configure/app/output/disable-css-module-extension.mdx +59 -0
  171. package/docs/configure/app/output/disable-inline-runtime-chunk.mdx +45 -0
  172. package/docs/configure/app/output/disable-svgr.mdx +22 -0
  173. package/docs/configure/app/output/disable-ts-checker.mdx +53 -0
  174. package/docs/configure/app/output/dist-path.mdx +51 -0
  175. package/docs/configure/app/output/enable-asset-manifest.mdx +40 -0
  176. package/docs/configure/app/output/enable-css-module-tsdeclaration.mdx +32 -0
  177. package/docs/configure/app/output/enable-inline-route-manifests.mdx +20 -0
  178. package/docs/configure/app/output/externals.mdx +24 -0
  179. package/docs/configure/app/output/filename-hash.mdx +14 -0
  180. package/docs/configure/app/output/filename.mdx +59 -0
  181. package/docs/configure/app/output/inject-styles.mdx +14 -0
  182. package/docs/configure/app/output/inline-scripts.mdx +33 -0
  183. package/docs/configure/app/output/inline-styles.mdx +33 -0
  184. package/docs/configure/app/output/legal-comments.mdx +22 -0
  185. package/docs/configure/app/output/minify.mdx +26 -0
  186. package/docs/configure/app/output/override-browserslist.mdx +26 -0
  187. package/docs/configure/app/output/polyfill.mdx +18 -0
  188. package/docs/configure/app/output/source-map.mdx +34 -0
  189. package/docs/configure/app/output/split-route-chunks.mdx +20 -0
  190. package/docs/configure/app/output/ssg.mdx +85 -0
  191. package/docs/configure/app/output/ssgByEntries.mdx +93 -0
  192. package/docs/configure/app/output/svg-default-export.mdx +34 -0
  193. package/docs/configure/app/output/temp-dir.mdx +24 -0
  194. package/docs/configure/app/performance/build-cache.mdx +48 -0
  195. package/docs/configure/app/performance/chunk-split.mdx +44 -0
  196. package/docs/configure/app/performance/dns-prefetch.mdx +19 -0
  197. package/docs/configure/app/performance/preconnect.mdx +20 -0
  198. package/docs/configure/app/performance/prefetch.mdx +25 -0
  199. package/docs/configure/app/performance/preload.mdx +27 -0
  200. package/docs/configure/app/performance/print-file-size.mdx +44 -0
  201. package/docs/configure/app/performance/profile.mdx +14 -0
  202. package/docs/configure/app/performance/remove-console.mdx +14 -0
  203. package/docs/configure/app/performance/remove-moment-locale.mdx +14 -0
  204. package/docs/configure/app/performance/rsdoctor.mdx +42 -0
  205. package/docs/configure/app/plugins.mdx +59 -0
  206. package/docs/configure/app/resolve/alias-strategy.mdx +14 -0
  207. package/docs/configure/app/resolve/alias.mdx +13 -0
  208. package/docs/configure/app/resolve/condition-names.mdx +18 -0
  209. package/docs/configure/app/resolve/dedupe.mdx +13 -0
  210. package/docs/configure/app/resolve/extensions.mdx +18 -0
  211. package/docs/configure/app/runtime/0-intro.mdx +61 -0
  212. package/docs/configure/app/runtime/plugins.mdx +58 -0
  213. package/docs/configure/app/runtime/router.mdx +39 -0
  214. package/docs/configure/app/security/check-syntax.mdx +73 -0
  215. package/docs/configure/app/security/nonce.mdx +19 -0
  216. package/docs/configure/app/security/sri.mdx +24 -0
  217. package/docs/configure/app/server/base-url.mdx +30 -0
  218. package/docs/configure/app/server/port.mdx +22 -0
  219. package/docs/configure/app/server/public-routes.mdx +26 -0
  220. package/docs/configure/app/server/routes.mdx +90 -0
  221. package/docs/configure/app/server/rsc.mdx +30 -0
  222. package/docs/configure/app/server/ssr-by-entries.mdx +29 -0
  223. package/docs/configure/app/server/ssr.mdx +85 -0
  224. package/docs/configure/app/server/tsconfig-path.mdx +63 -0
  225. package/docs/configure/app/source/alias-strategy.mdx +18 -0
  226. package/docs/configure/app/source/alias.mdx +27 -0
  227. package/docs/configure/app/source/config-dir.mdx +24 -0
  228. package/docs/configure/app/source/decorators.mdx +29 -0
  229. package/docs/configure/app/source/define.mdx +20 -0
  230. package/docs/configure/app/source/disable-default-entries.mdx +32 -0
  231. package/docs/configure/app/source/enable-async-entry.mdx +54 -0
  232. package/docs/configure/app/source/enable-async-pre-entry.mdx +30 -0
  233. package/docs/configure/app/source/entries-dir.mdx +39 -0
  234. package/docs/configure/app/source/entries.mdx +183 -0
  235. package/docs/configure/app/source/exclude.mdx +14 -0
  236. package/docs/configure/app/source/global-vars.mdx +110 -0
  237. package/docs/configure/app/source/include.mdx +40 -0
  238. package/docs/configure/app/source/main-entry-name.mdx +28 -0
  239. package/docs/configure/app/source/pre-entry.mdx +14 -0
  240. package/docs/configure/app/source/react-compiler.mdx +72 -0
  241. package/docs/configure/app/source/transform-import.mdx +31 -0
  242. package/docs/configure/app/split-chunks.mdx +17 -0
  243. package/docs/configure/app/tools/autoprefixer.mdx +48 -0
  244. package/docs/configure/app/tools/bundler-chain.mdx +30 -0
  245. package/docs/configure/app/tools/css-extract.mdx +37 -0
  246. package/docs/configure/app/tools/css-loader.mdx +21 -0
  247. package/docs/configure/app/tools/dev-server.mdx +117 -0
  248. package/docs/configure/app/tools/html-plugin.mdx +45 -0
  249. package/docs/configure/app/tools/less.mdx +85 -0
  250. package/docs/configure/app/tools/lightningcss-loader.mdx +39 -0
  251. package/docs/configure/app/tools/minify-css.mdx +57 -0
  252. package/docs/configure/app/tools/postcss.mdx +38 -0
  253. package/docs/configure/app/tools/rspack.mdx +14 -0
  254. package/docs/configure/app/tools/sass.mdx +82 -0
  255. package/docs/configure/app/tools/style-loader.mdx +14 -0
  256. package/docs/configure/app/tools/swc.mdx +69 -0
  257. package/docs/configure/app/tools/ts-checker.mdx +103 -0
  258. package/docs/configure/app/usage.mdx +276 -0
  259. package/docs/guides/_meta.json +37 -0
  260. package/docs/guides/advanced-features/_meta.json +32 -0
  261. package/docs/guides/advanced-features/bff/_meta.json +10 -0
  262. package/docs/guides/advanced-features/bff/cross-project.mdx +110 -0
  263. package/docs/guides/advanced-features/bff/data-platform.mdx +120 -0
  264. package/docs/guides/advanced-features/bff/extend-server.mdx +120 -0
  265. package/docs/guides/advanced-features/bff/frameworks.mdx +131 -0
  266. package/docs/guides/advanced-features/bff/function.mdx +265 -0
  267. package/docs/guides/advanced-features/bff/operators.mdx +629 -0
  268. package/docs/guides/advanced-features/bff/sdk.mdx +116 -0
  269. package/docs/guides/advanced-features/bff/upload.mdx +7 -0
  270. package/docs/guides/advanced-features/bff.mdx +22 -0
  271. package/docs/guides/advanced-features/build-performance.mdx +134 -0
  272. package/docs/guides/advanced-features/compatibility.mdx +81 -0
  273. package/docs/guides/advanced-features/international/_meta.json +10 -0
  274. package/docs/guides/advanced-features/international/advanced.mdx +132 -0
  275. package/docs/guides/advanced-features/international/api.mdx +271 -0
  276. package/docs/guides/advanced-features/international/best-practices.mdx +290 -0
  277. package/docs/guides/advanced-features/international/configuration.mdx +222 -0
  278. package/docs/guides/advanced-features/international/locale-detection.mdx +130 -0
  279. package/docs/guides/advanced-features/international/quick-start.mdx +112 -0
  280. package/docs/guides/advanced-features/international/resource-loading.mdx +158 -0
  281. package/docs/guides/advanced-features/international/routing.mdx +177 -0
  282. package/docs/guides/advanced-features/international.mdx +29 -0
  283. package/docs/guides/advanced-features/low-level.mdx +50 -0
  284. package/docs/guides/advanced-features/page-performance/_meta.json +1 -0
  285. package/docs/guides/advanced-features/page-performance/code-split.mdx +81 -0
  286. package/docs/guides/advanced-features/page-performance/inline-assets.mdx +163 -0
  287. package/docs/guides/advanced-features/page-performance/optimize-bundle.mdx +101 -0
  288. package/docs/guides/advanced-features/page-performance/react-compiler.mdx +51 -0
  289. package/docs/guides/advanced-features/server-monitor/_meta.json +1 -0
  290. package/docs/guides/advanced-features/server-monitor/logger.mdx +19 -0
  291. package/docs/guides/advanced-features/server-monitor/metrics.mdx +41 -0
  292. package/docs/guides/advanced-features/server-monitor/monitors.mdx +242 -0
  293. package/docs/guides/advanced-features/source-build.mdx +168 -0
  294. package/docs/guides/advanced-features/web-server.mdx +296 -0
  295. package/docs/guides/basic-features/_meta.json +49 -0
  296. package/docs/guides/basic-features/alias.mdx +106 -0
  297. package/docs/guides/basic-features/css/_meta.json +1 -0
  298. package/docs/guides/basic-features/css/css-in-js.mdx +69 -0
  299. package/docs/guides/basic-features/css/css-modules.mdx +212 -0
  300. package/docs/guides/basic-features/css/css.mdx +31 -0
  301. package/docs/guides/basic-features/css/tailwindcss.mdx +27 -0
  302. package/docs/guides/basic-features/data/_meta.json +1 -0
  303. package/docs/guides/basic-features/data/data-cache.mdx +515 -0
  304. package/docs/guides/basic-features/data/data-fetch.mdx +419 -0
  305. package/docs/guides/basic-features/data/data-write.mdx +230 -0
  306. package/docs/guides/basic-features/debug/_meta.json +1 -0
  307. package/docs/guides/basic-features/debug/mock.mdx +113 -0
  308. package/docs/guides/basic-features/debug/proxy.mdx +25 -0
  309. package/docs/guides/basic-features/debug/rsdoctor.mdx +47 -0
  310. package/docs/guides/basic-features/debug/using-storybook.mdx +100 -0
  311. package/docs/guides/basic-features/deploy.mdx +448 -0
  312. package/docs/guides/basic-features/env-vars.mdx +181 -0
  313. package/docs/guides/basic-features/html.mdx +259 -0
  314. package/docs/guides/basic-features/output-files.mdx +145 -0
  315. package/docs/guides/basic-features/render/_meta.json +1 -0
  316. package/docs/guides/basic-features/render/before-render.mdx +108 -0
  317. package/docs/guides/basic-features/render/overview.mdx +51 -0
  318. package/docs/guides/basic-features/render/rsc.mdx +533 -0
  319. package/docs/guides/basic-features/render/ssg.mdx +167 -0
  320. package/docs/guides/basic-features/render/ssr-cache.mdx +201 -0
  321. package/docs/guides/basic-features/render/ssr.mdx +323 -0
  322. package/docs/guides/basic-features/render/streaming-ssr.mdx +267 -0
  323. package/docs/guides/basic-features/routes/_meta.json +1 -0
  324. package/docs/guides/basic-features/routes/config-routes.mdx +427 -0
  325. package/docs/guides/basic-features/routes/routes.mdx +532 -0
  326. package/docs/guides/basic-features/static-assets/_meta.json +1 -0
  327. package/docs/guides/basic-features/static-assets/json-files.mdx +124 -0
  328. package/docs/guides/basic-features/static-assets/svg-assets.mdx +172 -0
  329. package/docs/guides/basic-features/static-assets/wasm-assets.mdx +66 -0
  330. package/docs/guides/basic-features/static-assets.mdx +164 -0
  331. package/docs/guides/basic-features/testing/_meta.json +1 -0
  332. package/docs/guides/basic-features/testing/playwright.mdx +111 -0
  333. package/docs/guides/basic-features/testing/rstest.mdx +192 -0
  334. package/docs/guides/concept/_meta.json +1 -0
  335. package/docs/guides/concept/builder.mdx +60 -0
  336. package/docs/guides/concept/entries.mdx +325 -0
  337. package/docs/guides/concept/server.mdx +35 -0
  338. package/docs/guides/get-started/_meta.json +9 -0
  339. package/docs/guides/get-started/ai-coding-agents.mdx +63 -0
  340. package/docs/guides/get-started/glossary.mdx +63 -0
  341. package/docs/guides/get-started/introduction.mdx +45 -0
  342. package/docs/guides/get-started/quick-start.mdx +92 -0
  343. package/docs/guides/get-started/tech-stack.mdx +97 -0
  344. package/docs/guides/get-started/ultramodern.mdx +433 -0
  345. package/docs/guides/get-started/upgrade.mdx +114 -0
  346. package/docs/guides/topic-detail/_meta.json +8 -0
  347. package/docs/guides/topic-detail/module-federation/_meta.json +1 -0
  348. package/docs/guides/topic-detail/module-federation/application.mdx +116 -0
  349. package/docs/guides/topic-detail/module-federation/deploy.mdx +104 -0
  350. package/docs/guides/topic-detail/module-federation/i18n.mdx +670 -0
  351. package/docs/guides/topic-detail/module-federation/introduce.mdx +36 -0
  352. package/docs/guides/topic-detail/module-federation/ssr.mdx +177 -0
  353. package/docs/guides/topic-detail/module-federation/usage.mdx +202 -0
  354. package/docs/guides/troubleshooting/_meta.json +1 -0
  355. package/docs/guides/troubleshooting/builder.mdx +114 -0
  356. package/docs/guides/troubleshooting/cli.mdx +39 -0
  357. package/docs/guides/troubleshooting/dependencies.mdx +123 -0
  358. package/docs/guides/troubleshooting/hmr.mdx +148 -0
  359. package/docs/guides/upgrade/_meta.json +1 -0
  360. package/docs/guides/upgrade/config.mdx +951 -0
  361. package/docs/guides/upgrade/entry.mdx +463 -0
  362. package/docs/guides/upgrade/other.mdx +183 -0
  363. package/docs/guides/upgrade/overview.mdx +33 -0
  364. package/docs/guides/upgrade/tailwindcss.mdx +92 -0
  365. package/docs/guides/upgrade/web-server.md +109 -0
  366. package/docs/index.md +4 -0
  367. package/package.json +43 -20
  368. package/scripts/copy-main-doc.mjs +50 -0
@@ -24,7 +24,7 @@ const analyze = ()=>({
24
24
  const resolvedConfig = api.getNormalizedConfig();
25
25
  const hooks = api.getHooks();
26
26
  try {
27
- if (checkIsBuildCommands()) fs.emptydirSync(appContext.internalDirectory);
27
+ if (checkIsBuildCommands(appContext.command)) fs.emptydirSync(appContext.internalDirectory);
28
28
  } catch {}
29
29
  const apiOnly = await isApiOnly(appContext.appDirectory, resolvedConfig.source?.entriesDir, appContext.apiDirectory);
30
30
  const [{ getProdEntrypoints, getProdServerRoutes }] = await Promise.all([
@@ -126,7 +126,7 @@ const analyze = ()=>({
126
126
  htmlTemplates
127
127
  };
128
128
  api.updateAppContext(appContext);
129
- if (checkIsBuildCommands()) {
129
+ if (checkIsBuildCommands(appContext.command)) {
130
130
  await hooks.generateEntryCode.call({
131
131
  entrypoints
132
132
  });
@@ -39,7 +39,7 @@ const parseModule = async ({ source, filename })=>{
39
39
  return await parse(content);
40
40
  };
41
41
  const getServerCombinedModuleFile = (internalDirectory, entryName)=>path.join(internalDirectory, entryName, 'server-loader-combined.js');
42
- const checkIsBuildCommands = ()=>{
42
+ const checkIsBuildCommands = (contextCommand)=>{
43
43
  const buildCommands = [
44
44
  'dev',
45
45
  'start',
@@ -49,7 +49,8 @@ const checkIsBuildCommands = ()=>{
49
49
  'dev-worker'
50
50
  ];
51
51
  const command = getCommand();
52
- return buildCommands.includes(command);
52
+ if (buildCommands.includes(command)) return true;
53
+ return 'dev' === contextCommand || 'start' === contextCommand || 'build' === contextCommand || 'deploy' === contextCommand;
53
54
  };
54
55
  const checkIsServeCommand = ()=>{
55
56
  const command = getCommand();
@@ -26,7 +26,7 @@ const initialize = ()=>({
26
26
  api.modifyResolvedConfig(async (resolved)=>{
27
27
  let appContext = api.getAppContext();
28
28
  const userConfig = api.getConfig();
29
- const port = await getServerPort(resolved);
29
+ const port = await getServerPort(resolved, appContext.command);
30
30
  appContext = {
31
31
  ...appContext,
32
32
  port,
@@ -61,9 +61,10 @@ function stabilizeConfig(resolve, config, keys) {
61
61
  resolve[key] = config[key] || {};
62
62
  });
63
63
  }
64
- async function getServerPort(config) {
64
+ async function getServerPort(config, contextCommand) {
65
65
  const prodPort = Number(process.env.PORT) || config.server.port || 8080;
66
- if (isDev() && isDevCommand()) return getPort(Number(process.env.PORT) || prodPort);
66
+ const isProgrammaticDev = 'dev' === contextCommand || 'start' === contextCommand;
67
+ if (isDev() && (isDevCommand() || isProgrammaticDev)) return getPort(Number(process.env.PORT) || prodPort);
67
68
  return prodPort;
68
69
  }
69
70
  export default initialize;
@@ -18,7 +18,7 @@ const serverBuild = ()=>({
18
18
  name: '@modern-js/server-build',
19
19
  setup (api) {
20
20
  api.onAfterBuild(async ()=>{
21
- const { appDirectory, distDirectory, metaName } = api.getAppContext();
21
+ const { appDirectory, distDirectory, metaName, moduleType } = api.getAppContext();
22
22
  if (!checkHasCache(appDirectory) && !checkHasConfig(appDirectory, metaName)) return;
23
23
  const modernConfig = api.getNormalizedConfig();
24
24
  const distDir = path.resolve(distDirectory);
@@ -38,7 +38,8 @@ const serverBuild = ()=>({
38
38
  }, {
39
39
  sourceDirs,
40
40
  distDir,
41
- tsconfigPath
41
+ tsconfigPath,
42
+ moduleType
42
43
  });
43
44
  });
44
45
  }
@@ -1,3 +1,4 @@
1
1
  import type { CLIPluginAPI } from '@modern-js/plugin';
2
2
  import type { AppTools } from '../types';
3
- export declare const deploy: (api: CLIPluginAPI<AppTools>, options: any) => Promise<void>;
3
+ import type { DeployOptions } from '../utils/types';
4
+ export declare const deploy: (api: CLIPluginAPI<AppTools>, options?: DeployOptions) => Promise<void>;
@@ -3,13 +3,16 @@ import { initAppContext } from './utils/initAppContext';
3
3
  export * from './defineConfig';
4
4
  export * from './presetUltramodern';
5
5
  export declare const appTools: () => CliPlugin<AppTools>;
6
+ export { build } from './commands/build';
7
+ export { deploy } from './commands/deploy';
6
8
  export { dev } from './commands/dev';
7
9
  export { serve } from './commands/serve';
8
10
  export { defineConfig } from './defineConfig';
9
11
  export { type ResolveModernRsbuildConfigOptions, resolveModernRsbuildConfig, } from './rsbuild';
10
12
  export * from './types';
13
+ export { closeServer } from './utils/createServer';
11
14
  export { generateWatchFiles } from './utils/generateWatchFiles';
12
- export type { DevOptions } from './utils/types';
15
+ export type { BuildOptions, DeployOptions, DevOptions } from './utils/types';
13
16
  export { initAppContext };
14
17
  export default appTools;
15
18
  export { mergeConfig } from '@modern-js/plugin/cli';
@@ -5,6 +5,6 @@ export declare const parseModule: ({ source, filename, }: {
5
5
  filename: string;
6
6
  }) => Promise<readonly [imports: readonly import("es-module-lexer").ImportSpecifier[], exports: readonly import("es-module-lexer").ExportSpecifier[], facade: boolean, hasModuleSyntax: boolean]>;
7
7
  export declare const getServerCombinedModuleFile: (internalDirectory: string, entryName: string) => string;
8
- export declare const checkIsBuildCommands: () => boolean;
8
+ export declare const checkIsBuildCommands: (contextCommand?: string) => boolean;
9
9
  export declare const checkIsServeCommand: () => boolean;
10
10
  export declare const isSubDirOrEqual: (parent: string, child: string) => boolean;
@@ -46,6 +46,12 @@ export interface DevServerUserConfig {
46
46
  * Although its name is the same as in Rsbuild, it is consumed by Modern.js.
47
47
  */
48
48
  export type DevUserConfig = Omit<BuilderDevConfig, 'setupMiddlewares'> & {
49
+ /**
50
+ * Customize the directory containing the Mock API entry file.
51
+ * Relative paths are resolved from the application directory.
52
+ * @default './config/mock'
53
+ */
54
+ mockDir?: string;
49
55
  setupMiddlewares?: SetupMiddlewares;
50
56
  /**
51
57
  * Dev server specific options.
package/docs/_nav.json ADDED
@@ -0,0 +1,36 @@
1
+ [
2
+ {
3
+ "text": "UltraModern Guide",
4
+ "link": "/guides/get-started/ultramodern",
5
+ "activeMatch": "/guides/"
6
+ },
7
+ {
8
+ "text": "configure",
9
+ "link": "/configure/app/usage",
10
+ "activeMatch": "/configure/"
11
+ },
12
+ {
13
+ "text": "plugin-menu",
14
+ "link": "/plugin/introduction",
15
+ "activeMatch": "/plugin/"
16
+ },
17
+ {
18
+ "text": "apis",
19
+ "link": "/apis/app/commands",
20
+ "activeMatch": "/apis/"
21
+ },
22
+ {
23
+ "text": "Examples",
24
+ "link": "/tutorials/foundations/introduction",
25
+ "activeMatch": "/tutorials/"
26
+ },
27
+ {
28
+ "text": "community",
29
+ "link": "/community/showcase",
30
+ "activeMatch": "/community/"
31
+ },
32
+ {
33
+ "text": "Upstream Modern.js 2.x Docs",
34
+ "link": "https://modernjs.dev/v2"
35
+ }
36
+ ]
@@ -0,0 +1,13 @@
1
+ [
2
+ "app/commands",
3
+ {
4
+ "type": "dir",
5
+ "name": "app/hooks",
6
+ "label": "file-conventions"
7
+ },
8
+ {
9
+ "type": "dir",
10
+ "name": "app/runtime",
11
+ "label": "runtime-api"
12
+ }
13
+ ]
@@ -0,0 +1,205 @@
1
+ ---
2
+ sidebar_position: 1
3
+ ---
4
+
5
+ # Commands
6
+
7
+ UltraModern.js has some built-in commands that can help you quickly start a development server, build production environment code, and more.
8
+
9
+ Through this chapter, you can learn about the built-in commands of UltraModern.js and how to use them.
10
+
11
+ ## modern dev
12
+
13
+ The `modern dev` command is used to start a local development server and compile the source code in the development environment.
14
+
15
+ ```bash
16
+ Usage: modern dev [options]
17
+
18
+ Options:
19
+ -e --entry <entry> compiler by entry
20
+ -c --config <config> specify the configuration file, which can be a relative or absolute path
21
+ -h, --help show command help
22
+ --web-only only start web service
23
+ --api-only only start API service
24
+ ```
25
+
26
+ After running `modern dev`, UltraModern.js will watch source file changes and apply hot module replacement.
27
+
28
+ ```bash
29
+ $ modern dev
30
+
31
+ info Starting dev server...
32
+
33
+ > Local: http://localhost:8080/
34
+ > Network: http://192.168.0.1:8080/
35
+ ```
36
+
37
+ ### Compile Partial Pages
38
+
39
+ In multi-page (MPA) projects, the `--entry` option can be added to specify one or more pages to compile. In this way, only part of the code in the project will be compiled, and the dev startup speed will be faster.
40
+
41
+ For example, execute `modern dev --entry`, the entry selector will be displayed in the command line interface:
42
+
43
+ ```text
44
+ $ modern dev --entry
45
+
46
+ ? Please select the entry that needs to be built
47
+ ❯ ◯ foo
48
+ ◯ bar
49
+ ◯ baz
50
+ ```
51
+
52
+ For example, if you select the `foo` entry, only the code related to the `foo` entry will be compiled, and the code of other pages will not be compiled.
53
+
54
+ ### Specify the page by parameter
55
+
56
+ You can also specify the page name through parameters after `--entry`, and the names of multiple pages can be separated by commas.
57
+
58
+ ```bash
59
+ # Compile foo page
60
+ modern dev --entry foo
61
+
62
+ # Compile foo and bar pages
63
+ modern dev --entry foo,bar
64
+ ```
65
+
66
+ ## modern start
67
+
68
+ `modern start` is an alias of `modern dev` command, the usage of the two are exactly the same.
69
+
70
+ ## modern build
71
+
72
+ The `modern build` command will build production-ready artifacts in the `dist/` directory by default. You can specify the output directory by modifying the configuration [`output.distPath`](/configure/app/output/dist-path).
73
+
74
+ ```bash
75
+ Usage: modern build [options]
76
+
77
+ Options:
78
+ -c --config <config> specify the configuration file, which can be a relative or absolute path
79
+ -h, --help show command help
80
+ -w --watch turn on watch mode, watch for changes and rebuild
81
+ ```
82
+
83
+ ## modern runtime status
84
+
85
+ The `modern runtime status` command reads the runtime status endpoint and prints the response. It targets `http://127.0.0.1:8080/_modern/runtime/status` by default.
86
+
87
+ ```bash
88
+ Usage: modern runtime status [options]
89
+
90
+ Options:
91
+ --endpoint <endpoint> runtime status endpoint URL or path
92
+ --token <token> runtime status auth token
93
+ --token-env <name> environment variable name that stores runtime status auth token (default: "MODERN_RUNTIME_SIGNAL_TOKEN")
94
+ --header-name <name> auth header name (default: "x-modernjs-runtime-signal-token")
95
+ --timeout <ms> request timeout in milliseconds (default: "5000")
96
+ --json output as JSON format for machine reading
97
+ -h, --help display help for command
98
+ ```
99
+
100
+ If `--endpoint` is a path, it is resolved against `http://127.0.0.1:8080`. If `--token` is omitted, the command reads the token from the environment variable named by `--token-env`.
101
+
102
+ By default, the command formats the response as readable key/value lines. Add `--json` to print the raw JSON payload.
103
+
104
+ ```bash
105
+ modern runtime status --json
106
+ ```
107
+
108
+ ## modern runtime fallback-signal
109
+
110
+ The `modern runtime fallback-signal` command posts a runtime fallback signal to the canary contract-gate endpoint. It targets `http://127.0.0.1:8080/_modern/contract-gates/runtime-fallback` by default.
111
+
112
+ ```bash
113
+ Usage: modern runtime fallback-signal [options]
114
+
115
+ Options:
116
+ --app <appName> remote app name
117
+ --endpoint <endpoint> runtime fallback signal endpoint URL or path
118
+ --reason <reason> fallback reason (default: "runtime_fallback")
119
+ --phase <phase> fallback phase (default: "load")
120
+ --entry <entry> remote entry URL
121
+ --runtime-digest <digest> runtime digest value
122
+ --metadata <json> metadata JSON object string
123
+ --token <token> runtime signal auth token
124
+ --token-env <name> environment variable name that stores runtime signal auth token (default: "MODERN_RUNTIME_SIGNAL_TOKEN")
125
+ --header-name <name> auth header name (default: "x-modernjs-runtime-signal-token")
126
+ --timeout <ms> request timeout in milliseconds (default: "5000")
127
+ --json output as JSON format for machine reading
128
+ -h, --help display help for command
129
+ ```
130
+
131
+ The request body always includes `appName`, `reason`, and `phase`. It includes `entry`, `runtimeDigest`, and `metadata` only when those options are provided. `--metadata` must be a JSON object string.
132
+
133
+ ```bash
134
+ modern runtime fallback-signal --app crm-shell --reason remote_load_failed --phase load --json
135
+ ```
136
+
137
+ import ServeCommand from '@site-docs-en/components/serve-command';
138
+
139
+ <ServeCommand />
140
+
141
+ ## modern inspect
142
+
143
+ The `modern inspect` command is used to view the UltraModern.js config, [Rsbuild config](https://v2.rsbuild.rs/config/index) and Rspack config of the project.
144
+
145
+ ```bash
146
+ Usage: modern inspect [options]
147
+
148
+ Options:
149
+ --env <env> view the configuration in the target environment (default: "development")
150
+ --output <output> Specify the path to output in the dist (default: "./")
151
+ --verbose Show the full function in the result
152
+ -c --config <config> specify the configuration file, which can be a relative or absolute path
153
+ -h, --help show command help
154
+ ```
155
+
156
+ After executing the command `npx modern inspect` in the project root directory, the following files will be generated in the `dist` directory of the project:
157
+
158
+ - `modern.js.config.mjs`:The Modern.js configuration currently used.
159
+ - `rsbuild.config.mjs`: The Rsbuild config to use at build time.
160
+ - `rspack.config.web.mjs`: The Rspack config used by to use at build time.
161
+
162
+ ```bash
163
+ ➜ npx modern inspect
164
+
165
+ Inspect config succeed, open following files to view the content:
166
+
167
+ - Rsbuild Config: /root/my-project/dist/rsbuild.config.mjs
168
+ - Rspack Config (web): /root/my-project/dist/rspack.config.web.mjs
169
+ - Modern.js Config: /root/my-project/dist/modern.js.config.mjs
170
+ ```
171
+
172
+ ### Configuration Env
173
+
174
+ By default, the inspect command will output the development configs, you can use the `--env production` option to output the production configs:
175
+
176
+ ```bash
177
+ modern inspect --env production
178
+ ```
179
+
180
+ ### Verbose content
181
+
182
+ By default, the inspect command will omit the function content in the config object, you can use the `--verbose` option to output the full content of the function:
183
+
184
+ ```bash
185
+ modern inspect --verbose
186
+ ```
187
+
188
+ ### SSR Configuration
189
+
190
+ If the project has enabled SSR, an additional `rspack.config.node.mjs` file will be generated in the `dist/`, corresponding to the Rspack configuration at SSR build time.
191
+
192
+ ```bash
193
+ ➜ npx modern inspect
194
+
195
+ Inspect config succeed, open following files to view the content:
196
+
197
+ - Rsbuild Config: /root/my-project/dist/rsbuild.config.mjs
198
+ - Rspack Config (web): /root/my-project/dist/rspack.config.web.mjs
199
+ - Rspack Config (node): /root/my-project/dist/rspack.config.node.mjs
200
+ - Modern.js Config: /root/my-project/dist/modern.js.config.mjs
201
+ ```
202
+
203
+ import DeployCommand from '@site-docs-en/components/deploy-command';
204
+
205
+ <DeployCommand />
@@ -0,0 +1,28 @@
1
+ [
2
+ {
3
+ "type": "dir",
4
+ "name": "src",
5
+ "label": "src/",
6
+ "collapsed": true
7
+ },
8
+ {
9
+ "type": "dir",
10
+ "name": "api",
11
+ "label": "api/",
12
+ "collapsed": true
13
+ },
14
+ {
15
+ "type": "dir",
16
+ "name": "server",
17
+ "label": "server/",
18
+ "collapsed": true
19
+ },
20
+ "shared",
21
+ {
22
+ "type": "dir",
23
+ "name": "config",
24
+ "label": "config/",
25
+ "collapsed": true
26
+ },
27
+ "modern-config"
28
+ ]
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: lambda/*.ts
3
+ sidebar_position: 3
4
+ ---
5
+ # lambda/*.ts
6
+
7
+ After enabling BFF, the files under the `lambda/` directory will be registered as BFF routes according to conventions.
8
+
9
+ :::note
10
+ The files can be written in `js` or `ts` languages, but they must use `esm` syntax to export functions.
11
+ :::
12
+
13
+ For detailed information, refer to [BFF API Routes](/guides/advanced-features/bff/function.html#api-routes).
@@ -0,0 +1 @@
1
+ ["html", "favicon", "icon", "mock", "public", "upload"]
@@ -0,0 +1,29 @@
1
+ ---
2
+ title: favicon.*
3
+ sidebar_position: 3
4
+ ---
5
+
6
+ # Favicon
7
+
8
+ When there is a `favicon.*` file in the `config` directory at the root of the project, Modern.js will automatically set the file to the [html.favicon](/configure/app/html/favicon) configuration option for generating the favicon icon on the page:
9
+
10
+ ```
11
+ ./config
12
+ └── favicon.ico
13
+ ```
14
+
15
+ After the build is completed, you can see the following tags automatically generated in HTML:
16
+
17
+ ```html
18
+ <link rel="icon" href="/favicon.ico" />
19
+ ```
20
+
21
+ ## Order
22
+
23
+ When setting up the favicon, Modern.js looks for files in the following order:
24
+
25
+ - `favicon.png`
26
+ - `favicon.jpg`
27
+ - `favicon.jpeg`
28
+ - `favicon.svg`
29
+ - `favicon.ico`
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: html/
3
+ sidebar_position: 1
4
+ ---
5
+ # html/
6
+
7
+ You can inject custom HTML fragments at different locations of the default internal HTML template through the `config/html` directory.
8
+
9
+ For specific usage, please refer to: [Custom HTML](/guides/basic-features/html).
@@ -0,0 +1,29 @@
1
+ ---
2
+ title: icon.*
3
+ sidebar_position: 2
4
+ ---
5
+
6
+ # Apple Touch Icon
7
+
8
+ When there is an `icon.*` file in the `config` directory at the root of the project, Modern.js will automatically set the file to the [html.appIcon](/configure/app/html/app-icon) configuration option for generating the Apple Touch Icon icon under the iOS system.
9
+
10
+ ```
11
+ ./config
12
+ └── icon.png
13
+ ```
14
+
15
+ After the build is completed, you can see the following tags automatically generated in HTML:
16
+
17
+ ```html
18
+ <link rel="apple-touch-icon" sizes="180x180" href="/static/image/icon.png" />
19
+ ```
20
+
21
+ ## Order
22
+
23
+ When setting up the app icon, Modern.js looks for files in the following order:
24
+
25
+ - `icon.png`
26
+ - `icon.jpg`
27
+ - `icon.jpeg`
28
+ - `icon.svg`
29
+ - `icon.ico`
@@ -0,0 +1,10 @@
1
+ ---
2
+ title: mock/
3
+ sidebar_position: 5
4
+ ---
5
+ # mock/
6
+
7
+ When there is a `config/mock/index.ts` or `config/mock/index.js` file in the
8
+ project directory, Modern.js will automatically enable the Mock service during
9
+ development. Use [`dev.mockDir`](/configure/app/dev/mock-dir) to customize
10
+ this directory.
@@ -0,0 +1,30 @@
1
+ ---
2
+ title: public/
3
+ sidebar_position: 3
4
+ ---
5
+ # public/
6
+
7
+ Any static assets can be placed in the `public/` directory, and the files will be deployed to the corresponding application domain by the server.
8
+
9
+ ## Description
10
+
11
+ The file routing is based on the convention of the directory structure, where `public/` is the root directory corresponding to the root path of the Web application.
12
+
13
+ For example, the `config/public/sdk/index.js` file will be deployed under `${domain}/sdk/index.js` after deployment.
14
+
15
+ ## Scenarios
16
+
17
+ For example, authentication files required by third-party systems such as `robots.txt` and `auth.xml`.
18
+
19
+ Or SDKs for other business parties (requiring unchanged routing), or HTML files without entry.
20
+
21
+ :::info
22
+ For static assets (such as SVG images) that need to be imported through import in the source code, it is recommended to manage them in the `src/assets` directory.
23
+
24
+ :::
25
+
26
+ ## Code Compression
27
+
28
+ If the file in the directory is a `.js` file, it will be automatically compressed during production environment construction.
29
+
30
+ If the file ends with `.min.js`, it will not be compressed.
@@ -0,0 +1,54 @@
1
+ ---
2
+ title: upload/
3
+ sidebar_position: 4
4
+ ---
5
+ # upload/
6
+
7
+ Any static assets can be placed in the `upload/` directory.
8
+
9
+ ## Description
10
+
11
+ In the development environment, the static assets in this directory will be hosted under the `/upload` path. After building the application, the files in this directory will be copied to the dist directory.
12
+
13
+ This file convention is mainly used for developers to use plugins to proactively upload static assets to the CDN.
14
+
15
+ ## Scenarios
16
+
17
+ For example, SDKs for project use only, such as `google-analysis.js` (usually requires HTTP caching).
18
+
19
+ Pictures, font files, common CSS, etc.
20
+
21
+ ## Code Compression
22
+
23
+ If the file in the directory is a `.js` file, it will be automatically compressed during production environment construction.
24
+
25
+ If the file ends with `.min.js`, it will not be compressed.
26
+
27
+ ## More Usage
28
+
29
+ In React components, you can add this prefix through [Environment Variables](/guides/basic-features/env-vars.html#asset_prefix):
30
+
31
+ ```tsx
32
+ export default () => {
33
+ return (
34
+ <img src={`${process.env.ASSET_PREFIX}/upload/banner.png`}></img>
35
+ );
36
+ };
37
+ ```
38
+
39
+ In addition, whether it is in [Custom HTML](/guides/basic-features/html) or any HTML file under [`config/public/`](/apis/app/hooks/config/public), you can directly use HTML tags to reference resources in the `config/upload/` directory:
40
+
41
+ ```html
42
+ <script src="/upload/index.js"></script>
43
+ ```
44
+
45
+ If you set the [`dev.assetPrefix`](/configure/app/dev/asset-prefix) or [`output.assetPrefix`](/configure/app/output/asset-prefix) prefix, you can also use template syntax to add the prefix directly:
46
+
47
+ ```html
48
+ <script src="<%=assetPrefix %>/upload/index.js"></script>
49
+ ```
50
+
51
+ :::info
52
+ Modern.js does not support using files under `config/upload/` through URLs in `config/public/*.css` (such as background-image).
53
+
54
+ :::
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: modern.config.ts
3
+ sidebar_position: 8
4
+ ---
5
+ # modern.config.ts
6
+
7
+ The Modern.js configuration file. Through this file, you can personalize the configuration of various aspects of the current project.
8
+
9
+ To learn more about how to use the configuration, please refer to [Configuration Usage](/configure/app/usage).
@@ -0,0 +1,10 @@
1
+ ---
2
+ title: modern.server.ts
3
+ sidebar_position: 1
4
+ ---
5
+
6
+ # modern.server.ts
7
+
8
+ This file extends the Modern.js Server. In this file, you can configure [Middleware](/guides/advanced-features/web-server.html#middleware), [RenderMiddleware](/guides/advanced-features/web-server.html#rendermiddleware), or [Plugin](/guides/advanced-features/web-server.html#plugin) for the Server that starts with the Modern.js project.
9
+
10
+ You can intercept and handle requests and responses, perform authentication and role checks, preprocess requests, and handle exceptions, etc. You can also insert specific business logic into the built-in processing logic (including route matching, resource addressing, header injection, page rendering, and static web hosting).
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: shared/
3
+ sidebar_position: 5
4
+ ---
5
+ # shared/
6
+
7
+ Shared source code directory. When there is common code in `api/`, `server/`, and `src/` in the project, you can put these codes in the `shared` directory instead of directly referencing them.
@@ -0,0 +1,30 @@
1
+ # App.tsx
2
+
3
+ The entry identifier when using [Self-controlled Routing](/guides/concept/entries.html#self-controlled-routing) in the application.
4
+
5
+ `App.tsx` is not the actual application entry; Modern.js will automatically generate the real entry file, which is roughly as follows:
6
+
7
+ ```js
8
+ // runtime-global-context
9
+ import { setGlobalContext } from '@modern-js/runtime/context';
10
+ import App from '@_modern_js_src/App';
11
+
12
+ setGlobalContext({
13
+ App,
14
+ });
15
+
16
+ // index.tsx
17
+ import './runtime-global-context';
18
+ import { createRoot } from '@modern-js/runtime/react';
19
+ import { render } from '@modern-js/runtime/browser';
20
+
21
+ const ModernRoot = createRoot();
22
+
23
+ render(<ModernRoot />, 'root');
24
+ ```
25
+
26
+ When `createRoot` is executed, it will retrieve the registered Global App and generate the actual React component.
27
+
28
+ :::note
29
+ In scenarios with multiple entry points, each entry can have its own independent `App.tsx`. For more details, see [Entry Points](/guides/concept/entries).
30
+ :::