@modern-js/main-doc 0.0.0-nightly-20240807170755 → 0.0.0-nightly-20240808170645

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 (446) hide show
  1. package/docs/en/_meta.json +27 -0
  2. package/docs/en/apis/_meta.json +13 -0
  3. package/docs/en/apis/app/hooks/_meta.json +28 -0
  4. package/docs/en/apis/app/runtime/_meta.json +50 -0
  5. package/docs/en/community/_meta.json +11 -0
  6. package/docs/en/community/blog/2022-0708-updates.md +95 -0
  7. package/docs/en/community/blog/2022-0910-updates.md +80 -0
  8. package/docs/en/community/blog/_meta.json +6 -0
  9. package/docs/en/community/blog/v2-release-note.mdx +246 -0
  10. package/docs/en/components/debug-app.mdx +1 -1
  11. package/docs/en/configure/_meta.json +78 -0
  12. package/docs/en/configure/app/bff/prefix.mdx +1 -1
  13. package/docs/en/configure/app/deploy/microFrontend.mdx +1 -1
  14. package/docs/en/configure/app/dev/asset-prefix.mdx +1 -1
  15. package/docs/en/configure/app/dev/before-start-url.mdx +1 -1
  16. package/docs/en/configure/app/dev/client.mdx +1 -1
  17. package/docs/en/configure/app/dev/hmr.mdx +1 -1
  18. package/docs/en/configure/app/dev/host.mdx +1 -1
  19. package/docs/en/configure/app/dev/https.mdx +1 -1
  20. package/docs/en/configure/app/dev/live-reload.mdx +1 -1
  21. package/docs/en/configure/app/dev/port.mdx +1 -1
  22. package/docs/en/configure/app/dev/progress-bar.mdx +1 -1
  23. package/docs/en/configure/app/dev/proxy.mdx +1 -1
  24. package/docs/en/configure/app/dev/setup-middlewares.mdx +1 -1
  25. package/docs/en/configure/app/dev/start-url.mdx +1 -1
  26. package/docs/en/configure/app/dev/watch-files.mdx +1 -1
  27. package/docs/en/configure/app/dev/write-to-disk.mdx +1 -1
  28. package/docs/en/configure/app/experiments/lazy-compilation.mdx +1 -1
  29. package/docs/en/configure/app/experiments/source-build.mdx +1 -1
  30. package/docs/en/configure/app/html/app-icon.mdx +1 -1
  31. package/docs/en/configure/app/html/crossorigin.mdx +1 -1
  32. package/docs/en/configure/app/html/disable-html-folder.mdx +1 -1
  33. package/docs/en/configure/app/html/favicon-by-entries.mdx +1 -1
  34. package/docs/en/configure/app/html/favicon.mdx +1 -1
  35. package/docs/en/configure/app/html/inject-by-entries.mdx +1 -1
  36. package/docs/en/configure/app/html/inject.mdx +1 -1
  37. package/docs/en/configure/app/html/meta-by-entries.mdx +1 -1
  38. package/docs/en/configure/app/html/meta.mdx +1 -1
  39. package/docs/en/configure/app/html/mount-id.mdx +1 -1
  40. package/docs/en/configure/app/html/script-loading.mdx +1 -1
  41. package/docs/en/configure/app/html/tags-by-entries.mdx +1 -1
  42. package/docs/en/configure/app/html/tags.mdx +1 -1
  43. package/docs/en/configure/app/html/template-by-entries.mdx +1 -1
  44. package/docs/en/configure/app/html/template-parameters-by-entries.mdx +1 -1
  45. package/docs/en/configure/app/html/template-parameters.mdx +1 -1
  46. package/docs/en/configure/app/html/template.mdx +1 -1
  47. package/docs/en/configure/app/html/title-by-entries.mdx +1 -1
  48. package/docs/en/configure/app/html/title.mdx +1 -1
  49. package/docs/en/configure/app/output/asset-prefix.mdx +1 -1
  50. package/docs/en/configure/app/output/assets-retry.mdx +1 -1
  51. package/docs/en/configure/app/output/charset.mdx +1 -1
  52. package/docs/en/configure/app/output/clean-dist-path.mdx +1 -1
  53. package/docs/en/configure/app/output/convert-to-rem.mdx +1 -1
  54. package/docs/en/configure/app/output/copy.mdx +1 -1
  55. package/docs/en/configure/app/output/css-module-local-ident-name.mdx +1 -1
  56. package/docs/en/configure/app/output/css-modules.mdx +1 -1
  57. package/docs/en/configure/app/output/data-uri-limit.mdx +1 -1
  58. package/docs/en/configure/app/output/disable-css-extract.mdx +1 -1
  59. package/docs/en/configure/app/output/disable-css-module-extension.mdx +1 -1
  60. package/docs/en/configure/app/output/disable-filename-hash.mdx +1 -1
  61. package/docs/en/configure/app/output/disable-inline-runtime-chunk.mdx +1 -1
  62. package/docs/en/configure/app/output/disable-minimize.mdx +1 -1
  63. package/docs/en/configure/app/output/disable-node-polyfill.mdx +1 -1
  64. package/docs/en/configure/app/output/disable-source-map.mdx +1 -1
  65. package/docs/en/configure/app/output/disable-svgr.mdx +1 -1
  66. package/docs/en/configure/app/output/disable-ts-checker.mdx +1 -1
  67. package/docs/en/configure/app/output/dist-path.mdx +1 -1
  68. package/docs/en/configure/app/output/enable-asset-fallback.mdx +1 -1
  69. package/docs/en/configure/app/output/enable-asset-manifest.mdx +1 -1
  70. package/docs/en/configure/app/output/enable-css-module-tsdeclaration.mdx +1 -1
  71. package/docs/en/configure/app/output/enable-inline-route-manifests.mdx +1 -1
  72. package/docs/en/configure/app/output/enable-inline-scripts.mdx +1 -1
  73. package/docs/en/configure/app/output/enable-inline-styles.mdx +1 -1
  74. package/docs/en/configure/app/output/enable-latest-decorators.mdx +1 -1
  75. package/docs/en/configure/app/output/externals.mdx +1 -1
  76. package/docs/en/configure/app/output/filename-hash.mdx +1 -1
  77. package/docs/en/configure/app/output/filename.mdx +1 -1
  78. package/docs/en/configure/app/output/legal-comments.mdx +1 -1
  79. package/docs/en/configure/app/output/override-browserslist.mdx +1 -1
  80. package/docs/en/configure/app/output/polyfill.mdx +1 -1
  81. package/docs/en/configure/app/output/splitRouteChunks.mdx +1 -1
  82. package/docs/en/configure/app/output/ssg.mdx +1 -1
  83. package/docs/en/configure/app/output/svg-default-export.mdx +1 -1
  84. package/docs/en/configure/app/output/temp-dir.mdx +1 -1
  85. package/docs/en/configure/app/performance/build-cache.mdx +1 -1
  86. package/docs/en/configure/app/performance/bundle-analyze.mdx +1 -1
  87. package/docs/en/configure/app/performance/chunk-split.mdx +1 -1
  88. package/docs/en/configure/app/performance/dns-prefetch.mdx +1 -1
  89. package/docs/en/configure/app/performance/preconnect.mdx +1 -1
  90. package/docs/en/configure/app/performance/prefetch.mdx +1 -1
  91. package/docs/en/configure/app/performance/preload.mdx +1 -1
  92. package/docs/en/configure/app/performance/print-file-size.mdx +1 -1
  93. package/docs/en/configure/app/performance/profile.mdx +1 -1
  94. package/docs/en/configure/app/performance/remove-console.mdx +1 -1
  95. package/docs/en/configure/app/performance/remove-moment-locale.mdx +1 -1
  96. package/docs/en/configure/app/performance/transform-lodash.mdx +1 -1
  97. package/docs/en/configure/app/runtime/{intro.mdx → 0-intro.mdx} +1 -1
  98. package/docs/en/configure/app/runtime/master-app.mdx +1 -1
  99. package/docs/en/configure/app/runtime/router.mdx +3 -1
  100. package/docs/en/configure/app/runtime/state.mdx +1 -1
  101. package/docs/en/configure/app/security/check-syntax.mdx +1 -1
  102. package/docs/en/configure/app/security/nonce.mdx +1 -1
  103. package/docs/en/configure/app/security/sri.mdx +1 -1
  104. package/docs/en/configure/app/server/base-url.mdx +1 -1
  105. package/docs/en/configure/app/server/enable-framework-ext.mdx +1 -1
  106. package/docs/en/configure/app/server/port.mdx +1 -1
  107. package/docs/en/configure/app/server/public-routes.mdx +1 -1
  108. package/docs/en/configure/app/server/routes.mdx +1 -1
  109. package/docs/en/configure/app/server/ssr-by-entries.mdx +1 -1
  110. package/docs/en/configure/app/server/ssr.mdx +1 -1
  111. package/docs/en/configure/app/source/alias-strategy.mdx +1 -1
  112. package/docs/en/configure/app/source/alias.mdx +1 -1
  113. package/docs/en/configure/app/source/config-dir.mdx +1 -1
  114. package/docs/en/configure/app/source/decorators.mdx +1 -1
  115. package/docs/en/configure/app/source/define.mdx +1 -1
  116. package/docs/en/configure/app/source/disable-default-entries.mdx +1 -1
  117. package/docs/en/configure/app/source/disable-entry-dirs.mdx +1 -1
  118. package/docs/en/configure/app/source/enable-async-entry.mdx +1 -1
  119. package/docs/en/configure/app/source/enable-custom-entry.mdx +1 -1
  120. package/docs/en/configure/app/source/entries-dir.mdx +1 -1
  121. package/docs/en/configure/app/source/entries.mdx +1 -1
  122. package/docs/en/configure/app/source/exclude.mdx +1 -1
  123. package/docs/en/configure/app/source/global-vars.mdx +1 -1
  124. package/docs/en/configure/app/source/include.mdx +1 -1
  125. package/docs/en/configure/app/source/mainEntryName.mdx +1 -1
  126. package/docs/en/configure/app/source/module-scopes.mdx +1 -1
  127. package/docs/en/configure/app/source/pre-entry.mdx +1 -1
  128. package/docs/en/configure/app/source/resolve-extension-prefix.mdx +1 -1
  129. package/docs/en/configure/app/source/resolve-main-fields.mdx +1 -1
  130. package/docs/en/configure/app/source/transform-import.mdx +1 -1
  131. package/docs/en/configure/app/tools/autoprefixer.mdx +1 -1
  132. package/docs/en/configure/app/tools/babel.mdx +1 -1
  133. package/docs/en/configure/app/tools/bundler-chain.mdx +1 -1
  134. package/docs/en/configure/app/tools/css-extract.mdx +1 -1
  135. package/docs/en/configure/app/tools/css-loader.mdx +1 -1
  136. package/docs/en/configure/app/tools/dev-server.mdx +1 -1
  137. package/docs/en/configure/app/tools/esbuild.mdx +1 -1
  138. package/docs/en/configure/app/tools/html-plugin.mdx +1 -1
  139. package/docs/en/configure/app/tools/less.mdx +1 -1
  140. package/docs/en/configure/app/tools/minify-css.mdx +1 -1
  141. package/docs/en/configure/app/tools/postcss.mdx +1 -1
  142. package/docs/en/configure/app/tools/pug.mdx +1 -1
  143. package/docs/en/configure/app/tools/rspack.mdx +1 -1
  144. package/docs/en/configure/app/tools/sass.mdx +1 -1
  145. package/docs/en/configure/app/tools/style-loader.mdx +1 -1
  146. package/docs/en/configure/app/tools/styled-components.mdx +1 -1
  147. package/docs/en/configure/app/tools/swc.mdx +1 -1
  148. package/docs/en/configure/app/tools/tailwindcss.mdx +1 -1
  149. package/docs/en/configure/app/tools/terser.mdx +1 -1
  150. package/docs/en/configure/app/tools/ts-checker.mdx +1 -1
  151. package/docs/en/configure/app/tools/ts-loader.mdx +1 -1
  152. package/docs/en/configure/app/tools/webpack-chain.mdx +1 -1
  153. package/docs/en/configure/app/tools/webpack.mdx +1 -1
  154. package/docs/en/guides/_meta.json +33 -0
  155. package/docs/en/guides/advanced-features/_meta.json +26 -0
  156. package/docs/en/guides/advanced-features/bff/_meta.json +6 -0
  157. package/docs/en/guides/advanced-features/ssr/_meta.json +5 -0
  158. package/docs/en/guides/basic-features/_meta.json +22 -0
  159. package/docs/en/guides/basic-features/data/_meta.json +4 -0
  160. package/docs/en/guides/concept/_meta.json +4 -0
  161. package/docs/en/guides/{deprecat.md → deprecated.md} +1 -1
  162. package/docs/en/guides/get-started/_meta.json +7 -0
  163. package/docs/en/guides/get-started/quick-start.mdx +2 -2
  164. package/docs/en/guides/get-started/upgrade.mdx +1 -1
  165. package/docs/en/guides/topic-detail/_meta.json +26 -0
  166. package/docs/en/guides/topic-detail/framework-plugin/_meta.json +10 -0
  167. package/docs/en/guides/topic-detail/generator/_meta.json +17 -0
  168. package/docs/en/guides/topic-detail/generator/create/_meta.json +5 -0
  169. package/docs/en/guides/topic-detail/generator/new/_meta.json +5 -0
  170. package/docs/en/guides/topic-detail/generator/plugin/_meta.json +11 -0
  171. package/docs/en/guides/topic-detail/model/_meta.json +14 -0
  172. package/docs/en/guides/troubleshooting/_meta.json +6 -0
  173. package/docs/en/guides/troubleshooting/dependencies.mdx +4 -4
  174. package/docs/en/tutorials/_meta.json +17 -0
  175. package/docs/zh/_meta.json +27 -0
  176. package/docs/zh/apis/_meta.json +13 -0
  177. package/docs/zh/apis/app/hooks/_meta.json +28 -0
  178. package/docs/zh/apis/app/runtime/_meta.json +50 -0
  179. package/docs/zh/community/_meta.json +11 -0
  180. package/docs/zh/community/blog/_meta.json +6 -0
  181. package/docs/zh/community/blog/v2-release-note.mdx +1 -2
  182. package/docs/zh/components/debug-app.mdx +1 -1
  183. package/docs/zh/configure/_meta.json +78 -0
  184. package/docs/zh/configure/app/auto-load-plugin.mdx +1 -1
  185. package/docs/zh/configure/app/bff/prefix.mdx +1 -1
  186. package/docs/zh/configure/app/builder-plugins.mdx +1 -1
  187. package/docs/zh/configure/app/deploy/microFrontend.mdx +1 -1
  188. package/docs/zh/configure/app/dev/asset-prefix.mdx +1 -1
  189. package/docs/zh/configure/app/dev/before-start-url.mdx +1 -1
  190. package/docs/zh/configure/app/dev/client.mdx +1 -1
  191. package/docs/zh/configure/app/dev/hmr.mdx +1 -1
  192. package/docs/zh/configure/app/dev/host.mdx +1 -1
  193. package/docs/zh/configure/app/dev/https.mdx +1 -1
  194. package/docs/zh/configure/app/dev/live-reload.mdx +1 -1
  195. package/docs/zh/configure/app/dev/port.mdx +1 -1
  196. package/docs/zh/configure/app/dev/progress-bar.mdx +1 -1
  197. package/docs/zh/configure/app/dev/proxy.mdx +1 -1
  198. package/docs/zh/configure/app/dev/setup-middlewares.mdx +1 -1
  199. package/docs/zh/configure/app/dev/start-url.mdx +1 -1
  200. package/docs/zh/configure/app/dev/watch-files.mdx +1 -1
  201. package/docs/zh/configure/app/dev/write-to-disk.mdx +1 -1
  202. package/docs/zh/configure/app/experiments/lazy-compilation.mdx +1 -1
  203. package/docs/zh/configure/app/experiments/source-build.mdx +1 -1
  204. package/docs/zh/configure/app/html/app-icon.mdx +1 -1
  205. package/docs/zh/configure/app/html/crossorigin.mdx +1 -1
  206. package/docs/zh/configure/app/html/disable-html-folder.mdx +1 -1
  207. package/docs/zh/configure/app/html/favicon-by-entries.mdx +1 -1
  208. package/docs/zh/configure/app/html/favicon.mdx +1 -1
  209. package/docs/zh/configure/app/html/inject-by-entries.mdx +1 -1
  210. package/docs/zh/configure/app/html/inject.mdx +1 -1
  211. package/docs/zh/configure/app/html/meta-by-entries.mdx +1 -1
  212. package/docs/zh/configure/app/html/meta.mdx +1 -1
  213. package/docs/zh/configure/app/html/mount-id.mdx +1 -1
  214. package/docs/zh/configure/app/html/script-loading.mdx +1 -1
  215. package/docs/zh/configure/app/html/tags-by-entries.mdx +1 -1
  216. package/docs/zh/configure/app/html/tags.mdx +1 -1
  217. package/docs/zh/configure/app/html/template-by-entries.mdx +1 -1
  218. package/docs/zh/configure/app/html/template-parameters-by-entries.mdx +1 -1
  219. package/docs/zh/configure/app/html/template-parameters.mdx +1 -1
  220. package/docs/zh/configure/app/html/template.mdx +1 -1
  221. package/docs/zh/configure/app/html/title-by-entries.mdx +1 -1
  222. package/docs/zh/configure/app/html/title.mdx +1 -1
  223. package/docs/zh/configure/app/output/asset-prefix.mdx +1 -1
  224. package/docs/zh/configure/app/output/assets-retry.mdx +1 -1
  225. package/docs/zh/configure/app/output/charset.mdx +1 -1
  226. package/docs/zh/configure/app/output/clean-dist-path.mdx +1 -1
  227. package/docs/zh/configure/app/output/convert-to-rem.mdx +1 -1
  228. package/docs/zh/configure/app/output/copy.mdx +1 -1
  229. package/docs/zh/configure/app/output/css-module-local-ident-name.mdx +1 -1
  230. package/docs/zh/configure/app/output/css-modules.mdx +1 -1
  231. package/docs/zh/configure/app/output/data-uri-limit.mdx +1 -1
  232. package/docs/zh/configure/app/output/disable-css-extract.mdx +1 -1
  233. package/docs/zh/configure/app/output/disable-css-module-extension.mdx +1 -1
  234. package/docs/zh/configure/app/output/disable-filename-hash.mdx +1 -1
  235. package/docs/zh/configure/app/output/disable-inline-runtime-chunk.mdx +1 -1
  236. package/docs/zh/configure/app/output/disable-minimize.mdx +1 -1
  237. package/docs/zh/configure/app/output/disable-node-polyfill.mdx +1 -1
  238. package/docs/zh/configure/app/output/disable-source-map.mdx +1 -1
  239. package/docs/zh/configure/app/output/disable-svgr.mdx +1 -1
  240. package/docs/zh/configure/app/output/disable-ts-checker.mdx +1 -1
  241. package/docs/zh/configure/app/output/dist-path.mdx +1 -1
  242. package/docs/zh/configure/app/output/enable-asset-fallback.mdx +1 -1
  243. package/docs/zh/configure/app/output/enable-asset-manifest.mdx +1 -1
  244. package/docs/zh/configure/app/output/enable-css-module-tsdeclaration.mdx +1 -1
  245. package/docs/zh/configure/app/output/enable-inline-route-manifests.mdx +1 -1
  246. package/docs/zh/configure/app/output/enable-inline-scripts.mdx +1 -1
  247. package/docs/zh/configure/app/output/enable-inline-styles.mdx +1 -1
  248. package/docs/zh/configure/app/output/enable-latest-decorators.mdx +1 -1
  249. package/docs/zh/configure/app/output/externals.mdx +1 -1
  250. package/docs/zh/configure/app/output/filename-hash.mdx +1 -1
  251. package/docs/zh/configure/app/output/filename.mdx +1 -1
  252. package/docs/zh/configure/app/output/legal-comments.mdx +1 -1
  253. package/docs/zh/configure/app/output/override-browserslist.mdx +1 -1
  254. package/docs/zh/configure/app/output/polyfill.mdx +1 -1
  255. package/docs/zh/configure/app/output/splitRouteChunks.mdx +1 -1
  256. package/docs/zh/configure/app/output/ssg.mdx +1 -1
  257. package/docs/zh/configure/app/output/svg-default-export.mdx +1 -1
  258. package/docs/zh/configure/app/output/temp-dir.mdx +1 -1
  259. package/docs/zh/configure/app/performance/build-cache.mdx +1 -1
  260. package/docs/zh/configure/app/performance/bundle-analyze.mdx +1 -1
  261. package/docs/zh/configure/app/performance/chunk-split.mdx +1 -1
  262. package/docs/zh/configure/app/performance/dns-prefetch.mdx +1 -1
  263. package/docs/zh/configure/app/performance/preconnect.mdx +1 -1
  264. package/docs/zh/configure/app/performance/prefetch.mdx +1 -1
  265. package/docs/zh/configure/app/performance/preload.mdx +1 -1
  266. package/docs/zh/configure/app/performance/print-file-size.mdx +1 -1
  267. package/docs/zh/configure/app/performance/profile.mdx +1 -1
  268. package/docs/zh/configure/app/performance/remove-console.mdx +1 -1
  269. package/docs/zh/configure/app/performance/remove-moment-locale.mdx +1 -1
  270. package/docs/zh/configure/app/performance/transform-lodash.mdx +1 -1
  271. package/docs/zh/configure/app/plugins.mdx +1 -1
  272. package/docs/zh/configure/app/runtime/{intro.mdx → 0-intro.mdx} +1 -1
  273. package/docs/zh/configure/app/runtime/master-app.mdx +1 -1
  274. package/docs/zh/configure/app/runtime/router.mdx +3 -1
  275. package/docs/zh/configure/app/runtime/state.mdx +1 -1
  276. package/docs/zh/configure/app/security/check-syntax.mdx +1 -1
  277. package/docs/zh/configure/app/security/nonce.mdx +1 -1
  278. package/docs/zh/configure/app/security/sri.mdx +1 -1
  279. package/docs/zh/configure/app/server/base-url.mdx +1 -1
  280. package/docs/zh/configure/app/server/enable-framework-ext.mdx +1 -1
  281. package/docs/zh/configure/app/server/port.mdx +1 -1
  282. package/docs/zh/configure/app/server/public-routes.mdx +1 -1
  283. package/docs/zh/configure/app/server/routes.mdx +1 -1
  284. package/docs/zh/configure/app/server/ssr-by-entries.mdx +1 -1
  285. package/docs/zh/configure/app/server/ssr.mdx +1 -1
  286. package/docs/zh/configure/app/source/alias-strategy.mdx +1 -1
  287. package/docs/zh/configure/app/source/alias.mdx +1 -1
  288. package/docs/zh/configure/app/source/config-dir.mdx +1 -1
  289. package/docs/zh/configure/app/source/decorators.mdx +1 -1
  290. package/docs/zh/configure/app/source/define.mdx +1 -1
  291. package/docs/zh/configure/app/source/disable-default-entries.mdx +1 -1
  292. package/docs/zh/configure/app/source/disable-entry-dirs.mdx +1 -1
  293. package/docs/zh/configure/app/source/enable-async-entry.mdx +1 -1
  294. package/docs/zh/configure/app/source/enable-custom-entry.mdx +1 -1
  295. package/docs/zh/configure/app/source/entries-dir.mdx +1 -1
  296. package/docs/zh/configure/app/source/entries.mdx +1 -1
  297. package/docs/zh/configure/app/source/exclude.mdx +1 -1
  298. package/docs/zh/configure/app/source/global-vars.mdx +1 -1
  299. package/docs/zh/configure/app/source/include.mdx +1 -1
  300. package/docs/zh/configure/app/source/mainEntryName.mdx +1 -1
  301. package/docs/zh/configure/app/source/module-scopes.mdx +1 -1
  302. package/docs/zh/configure/app/source/pre-entry.mdx +1 -1
  303. package/docs/zh/configure/app/source/resolve-extension-prefix.mdx +1 -1
  304. package/docs/zh/configure/app/source/resolve-main-fields.mdx +1 -1
  305. package/docs/zh/configure/app/source/transform-import.mdx +1 -1
  306. package/docs/zh/configure/app/tools/autoprefixer.mdx +1 -1
  307. package/docs/zh/configure/app/tools/babel.mdx +1 -1
  308. package/docs/zh/configure/app/tools/bundler-chain.mdx +1 -1
  309. package/docs/zh/configure/app/tools/css-extract.mdx +1 -1
  310. package/docs/zh/configure/app/tools/css-loader.mdx +1 -1
  311. package/docs/zh/configure/app/tools/dev-server.mdx +1 -1
  312. package/docs/zh/configure/app/tools/esbuild.mdx +1 -1
  313. package/docs/zh/configure/app/tools/html-plugin.mdx +1 -1
  314. package/docs/zh/configure/app/tools/less.mdx +1 -1
  315. package/docs/zh/configure/app/tools/minify-css.mdx +1 -1
  316. package/docs/zh/configure/app/tools/postcss.mdx +1 -1
  317. package/docs/zh/configure/app/tools/pug.mdx +1 -1
  318. package/docs/zh/configure/app/tools/rspack.mdx +1 -1
  319. package/docs/zh/configure/app/tools/sass.mdx +1 -1
  320. package/docs/zh/configure/app/tools/style-loader.mdx +1 -1
  321. package/docs/zh/configure/app/tools/styled-components.mdx +1 -1
  322. package/docs/zh/configure/app/tools/swc.mdx +1 -1
  323. package/docs/zh/configure/app/tools/tailwindcss.mdx +1 -1
  324. package/docs/zh/configure/app/tools/terser.mdx +1 -1
  325. package/docs/zh/configure/app/tools/ts-checker.mdx +1 -1
  326. package/docs/zh/configure/app/tools/ts-loader.mdx +1 -1
  327. package/docs/zh/configure/app/tools/webpack-chain.mdx +1 -1
  328. package/docs/zh/configure/app/tools/webpack.mdx +1 -1
  329. package/docs/zh/guides/_meta.json +33 -0
  330. package/docs/zh/guides/advanced-features/_meta.json +26 -0
  331. package/docs/zh/guides/advanced-features/bff/_meta.json +6 -0
  332. package/docs/zh/guides/advanced-features/ssr/_meta.json +5 -0
  333. package/docs/zh/guides/basic-features/_meta.json +22 -0
  334. package/docs/zh/guides/basic-features/data/_meta.json +4 -0
  335. package/docs/zh/guides/concept/_meta.json +4 -0
  336. package/docs/zh/guides/get-started/_meta.json +7 -0
  337. package/docs/zh/guides/get-started/quick-start.mdx +2 -2
  338. package/docs/zh/guides/get-started/upgrade.mdx +1 -1
  339. package/docs/zh/guides/topic-detail/_meta.json +26 -0
  340. package/docs/zh/guides/topic-detail/framework-plugin/_meta.json +10 -0
  341. package/docs/zh/guides/topic-detail/generator/_meta.json +17 -0
  342. package/docs/zh/guides/topic-detail/generator/create/_meta.json +5 -0
  343. package/docs/zh/guides/topic-detail/generator/new/_meta.json +5 -0
  344. package/docs/zh/guides/topic-detail/generator/plugin/_meta.json +11 -0
  345. package/docs/zh/guides/topic-detail/model/_meta.json +14 -0
  346. package/docs/zh/guides/troubleshooting/_meta.json +6 -0
  347. package/docs/zh/guides/troubleshooting/dependencies.mdx +4 -4
  348. package/docs/zh/tutorials/_meta.json +17 -0
  349. package/i18n.json +110 -0
  350. package/package.json +6 -7
  351. package/rspress.config.ts +3 -20
  352. package/docs/en/apis/app/hooks/_category_.json +0 -5
  353. package/docs/en/apis/app/hooks/api/_category_.json +0 -4
  354. package/docs/en/apis/app/hooks/config/_category_.json +0 -4
  355. package/docs/en/apis/app/hooks/server/_category_.json +0 -4
  356. package/docs/en/apis/app/hooks/src/_category_.json +0 -4
  357. package/docs/en/apis/app/runtime/_category_.json +0 -5
  358. package/docs/en/apis/app/runtime/app/_category_.json +0 -4
  359. package/docs/en/apis/app/runtime/bff/_category_.json +0 -4
  360. package/docs/en/apis/app/runtime/core/_category_.json +0 -5
  361. package/docs/en/apis/app/runtime/model/_category_.json +0 -4
  362. package/docs/en/apis/app/runtime/router/_category_.json +0 -4
  363. package/docs/en/apis/app/runtime/ssr/_category_.json +0 -4
  364. package/docs/en/apis/app/runtime/utility/_category_.json +0 -4
  365. package/docs/en/apis/app/runtime/web-server/_category_.json +0 -4
  366. package/docs/en/community/blog/_category_.json +0 -6
  367. package/docs/en/configure/app/bff/_category_.json +0 -4
  368. package/docs/en/configure/app/deploy/_category_.json +0 -4
  369. package/docs/en/configure/app/dev/_category_.json +0 -4
  370. package/docs/en/configure/app/experiments/_category_.json +0 -4
  371. package/docs/en/configure/app/html/_category_.json +0 -4
  372. package/docs/en/configure/app/output/_category_.json +0 -4
  373. package/docs/en/configure/app/performance/_category_.json +0 -4
  374. package/docs/en/configure/app/runtime/_category_.json +0 -4
  375. package/docs/en/configure/app/security/_category_.json +0 -4
  376. package/docs/en/configure/app/server/_category_.json +0 -4
  377. package/docs/en/configure/app/source/_category_.json +0 -4
  378. package/docs/en/configure/app/tools/_category_.json +0 -4
  379. package/docs/en/guides/advanced-features/_category_.json +0 -5
  380. package/docs/en/guides/advanced-features/bff/_category_.json +0 -8
  381. package/docs/en/guides/advanced-features/ssr/_category_.json +0 -8
  382. package/docs/en/guides/basic-features/_category_.json +0 -5
  383. package/docs/en/guides/basic-features/data/_category_.json +0 -4
  384. package/docs/en/guides/concept/_category_.json +0 -5
  385. package/docs/en/guides/get-started/_category_.json +0 -5
  386. package/docs/en/guides/topic-detail/_category_.json +0 -5
  387. package/docs/en/guides/topic-detail/framework-plugin/_category_.json +0 -4
  388. package/docs/en/guides/topic-detail/generator/_category_.json +0 -4
  389. package/docs/en/guides/topic-detail/generator/create/_category_.json +0 -4
  390. package/docs/en/guides/topic-detail/generator/new/_category_.json +0 -4
  391. package/docs/en/guides/topic-detail/generator/plugin/_category_.json +0 -4
  392. package/docs/en/guides/topic-detail/generator/plugin/api/_category_.json +0 -4
  393. package/docs/en/guides/topic-detail/micro-frontend/_category_.json +0 -4
  394. package/docs/en/guides/topic-detail/model/_category_.json +0 -4
  395. package/docs/en/guides/troubleshooting/_category_.json +0 -5
  396. package/docs/en/tutorials/examples/_category_.json +0 -5
  397. package/docs/en/tutorials/first-app/_category_.json +0 -5
  398. package/docs/en/tutorials/foundations/_category_.json +0 -5
  399. package/docs/zh/apis/app/hooks/_category_.json +0 -5
  400. package/docs/zh/apis/app/hooks/api/_category_.json +0 -4
  401. package/docs/zh/apis/app/hooks/config/_category_.json +0 -4
  402. package/docs/zh/apis/app/hooks/server/_category_.json +0 -4
  403. package/docs/zh/apis/app/hooks/src/_category_.json +0 -4
  404. package/docs/zh/apis/app/runtime/_category_.json +0 -5
  405. package/docs/zh/apis/app/runtime/app/_category_.json +0 -4
  406. package/docs/zh/apis/app/runtime/bff/_category_.json +0 -4
  407. package/docs/zh/apis/app/runtime/core/_category_.json +0 -4
  408. package/docs/zh/apis/app/runtime/model/_category_.json +0 -4
  409. package/docs/zh/apis/app/runtime/router/_category_.json +0 -4
  410. package/docs/zh/apis/app/runtime/ssr/_category_.json +0 -4
  411. package/docs/zh/apis/app/runtime/utility/_category_.json +0 -4
  412. package/docs/zh/apis/app/runtime/web-server/_category_.json +0 -4
  413. package/docs/zh/community/blog/_category_.json +0 -6
  414. package/docs/zh/configure/app/bff/_category_.json +0 -4
  415. package/docs/zh/configure/app/deploy/_category_.json +0 -4
  416. package/docs/zh/configure/app/dev/_category_.json +0 -4
  417. package/docs/zh/configure/app/experiments/_category_.json +0 -4
  418. package/docs/zh/configure/app/html/_category_.json +0 -4
  419. package/docs/zh/configure/app/output/_category_.json +0 -4
  420. package/docs/zh/configure/app/performance/_category_.json +0 -4
  421. package/docs/zh/configure/app/runtime/_category_.json +0 -4
  422. package/docs/zh/configure/app/security/_category_.json +0 -4
  423. package/docs/zh/configure/app/server/_category_.json +0 -4
  424. package/docs/zh/configure/app/source/_category_.json +0 -4
  425. package/docs/zh/configure/app/tools/_category_.json +0 -4
  426. package/docs/zh/guides/advanced-features/_category_.json +0 -5
  427. package/docs/zh/guides/advanced-features/bff/_category_.json +0 -8
  428. package/docs/zh/guides/advanced-features/ssr/_category_.json +0 -8
  429. package/docs/zh/guides/basic-features/_category_.json +0 -5
  430. package/docs/zh/guides/basic-features/data/_category_.json +0 -4
  431. package/docs/zh/guides/concept/_category_.json +0 -5
  432. package/docs/zh/guides/get-started/_category_.json +0 -5
  433. package/docs/zh/guides/topic-detail/_category_.json +0 -5
  434. package/docs/zh/guides/topic-detail/framework-plugin/_category_.json +0 -4
  435. package/docs/zh/guides/topic-detail/generator/_category_.json +0 -4
  436. package/docs/zh/guides/topic-detail/generator/create/_category_.json +0 -4
  437. package/docs/zh/guides/topic-detail/generator/new/_category_.json +0 -4
  438. package/docs/zh/guides/topic-detail/generator/plugin/_category_.json +0 -4
  439. package/docs/zh/guides/topic-detail/generator/plugin/api/_category_.json +0 -4
  440. package/docs/zh/guides/topic-detail/micro-frontend/_category_.json +0 -4
  441. package/docs/zh/guides/topic-detail/model/_category_.json +0 -4
  442. package/docs/zh/guides/troubleshooting/_category_.json +0 -5
  443. package/docs/zh/tutorials/examples/_category_.json +0 -5
  444. package/docs/zh/tutorials/first-app/_category_.json +0 -5
  445. package/docs/zh/tutorials/foundations/_category_.json +0 -5
  446. /package/docs/zh/guides/{deprecat.md → deprecated.md} +0 -0
@@ -0,0 +1,27 @@
1
+ [
2
+ {
3
+ "text": "guide",
4
+ "link": "/guides/get-started/introduction",
5
+ "activeMatch": "/guides/"
6
+ },
7
+ {
8
+ "text": "tutorials",
9
+ "link": "/tutorials/foundations/introduction",
10
+ "activeMatch": "/tutorials/"
11
+ },
12
+ {
13
+ "text": "configure",
14
+ "link": "/configure/app/usage",
15
+ "activeMatch": "/configure/"
16
+ },
17
+ {
18
+ "text": "apis",
19
+ "link": "/apis/app/commands",
20
+ "activeMatch": "/apis/"
21
+ },
22
+ {
23
+ "text": "community",
24
+ "link": "/community/showcase",
25
+ "activeMatch": "/community/"
26
+ }
27
+ ]
@@ -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,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,50 @@
1
+ [
2
+ {
3
+ "type": "dir",
4
+ "name": "core",
5
+ "label": "Core",
6
+ "collapsed": true
7
+ },
8
+ {
9
+ "type": "dir",
10
+ "name": "app",
11
+ "label": "App",
12
+ "collapsed": true
13
+ },
14
+ {
15
+ "type": "dir",
16
+ "name": "router",
17
+ "label": "Router",
18
+ "collapsed": true
19
+ },
20
+ {
21
+ "type": "dir",
22
+ "name": "model",
23
+ "label": "Model",
24
+ "collapsed": true
25
+ },
26
+ {
27
+ "type": "dir",
28
+ "name": "ssr",
29
+ "label": "SSR",
30
+ "collapsed": true
31
+ },
32
+ {
33
+ "type": "dir",
34
+ "name": "bff",
35
+ "label": "BFF",
36
+ "collapsed": true
37
+ },
38
+ {
39
+ "type": "dir",
40
+ "name": "web-server",
41
+ "label": "Web Server",
42
+ "collapsed": true
43
+ },
44
+ {
45
+ "type": "dir",
46
+ "name": "utility",
47
+ "label": "Utility",
48
+ "collapsed": true
49
+ }
50
+ ]
@@ -0,0 +1,11 @@
1
+ [
2
+ "showcase",
3
+ "team",
4
+ "releases",
5
+ "contributing-guide",
6
+ {
7
+ "type": "dir",
8
+ "name": "blog",
9
+ "label": "blog"
10
+ }
11
+ ]
@@ -0,0 +1,95 @@
1
+ ---
2
+ sidebar_position: 99
3
+ ---
4
+
5
+ # 2022 年 7 ~ 8 月更新内容
6
+
7
+ > 发表于 2022.09.05
8
+
9
+ Modern.js 7 ~ 8 月的最新版本为 v1.17.0,本双月的主要更新有:
10
+
11
+ - **支持 React 18**:完成框架和插件对 React 18 的适配。
12
+ - **包版本统一**:Modern.js 所有组成包的版本号进行统一,提供升级命令。
13
+ - **Modern.js Module 支持 bundle 构建**:Modern.js Module 项目,支持对产物做 bundle 构建。
14
+ - **Reduck v1.1**:发布 Reduck v1.1,使用文档全面更新。
15
+
16
+ ## 支持 React 18
17
+
18
+ Modern.js 框架和相关插件完成对 React 18 的适配。现在,只需要将项目中的 `react`、`react-dom` 两个包的版本,升级到最新的 React 18 大版本,就可以使用 React 18 的新功能。
19
+
20
+ 注意,使用 `@modern-js/create` 命令默认创建的项目,安装的依赖 `react`、`react-dom` 的版本仍然为 17,如果希望使用 React 18,请手动升级这两个包的版本。
21
+
22
+ 另外,SSR 流式渲染功能,目前尚在开发中,暂不支持。
23
+
24
+ ## Modern.js 包版本统一
25
+
26
+ 之前,组成 Modern.js 的各个包的版本号并不统一,Modern.js 自身的版本和这些包的版本缺少明确的对应关系。这不仅增加了我们的维护成本,而且给用户的使用和升级带来了很多困扰。
27
+
28
+ 从 v1.15.0 版本开始,Modern.js 自身的版本号和所有组成包的版本号,进行了统一。例如,Modern.js v1.15.0,意味着所有组成包的版本号也是 v1.15.0。 每次发布新版本,Modern.js 所有包都会使用统一的版本号执行发布。 Github 上仓库的 [tag](https://github.com/modern-js-dev/modern.js/tags) 编号和 Modern.js 所有组成包的版本号是一一对应的。
29
+
30
+ 我们提供了专门的升级工具: `@modern-js/upgrade`,可以自动升级 Modern.js 到当前的最新版本。使用方式为,在项目根路径下执行:
31
+
32
+ ```bash
33
+ npx @modern-js/upgrade
34
+ ```
35
+
36
+ ## Modern.js Module 支持 bundle 构建
37
+
38
+ Modern.js Module 对底层实现进行重构,新增 [`output.buildConfig`](https://modernjs.dev/v1/docs/apis/module/config/output/build-config/) 配置,用于提供更加丰富的构建功能。
39
+
40
+ 新的 Modern.js Module 项目,不仅支持对产物做 bundless 构建,也支持 bundle 构建。通过配置 `buildConfig` 下的 [`buildType`](https://modernjs.dev/v1/docs/apis/module/config/output/build-config/build-type) ,即可进行 bundle 构建:
41
+
42
+ ```ts title="modern.config.ts"
43
+ import { defineConfig } from '@modern-js/module-tools';
44
+
45
+ export default defineConfig({
46
+ output: {
47
+ buildConfig: {
48
+ buildType: 'bundle', // 采用 bundle 构建
49
+ },
50
+ },
51
+ });
52
+ ```
53
+
54
+ `buildConfig` 下还支持 [`bundleOptions`](https://modernjs.dev/v1/docs/apis/module/config/output/build-config/bundle-options) 配置,可以对构建行为做更多的自定义:如设置产物文件名、是否进行代码分片、设置代码压缩方式等。
55
+
56
+ ## Reduck v1.1
57
+
58
+ Reduck 作为 Modern.js 的第一方状态管理方案,发布 v1.1 版本,增加对 React 18 Concurrent Rendering 的支持,并对开发体验和功能稳定性做了大量优化。
59
+
60
+ 新增 API:
61
+
62
+ - [`useStore`](https://modernjs.dev/v1/docs/apis/app/runtime/model/use-store) :可以在组件内获取当前组件树共享的 Store,满足在组件外访问 Model 的场景需求。
63
+ - [`handleEffect`](https://modernjs.dev/v1/docs/apis/app/runtime/model/handle-effect):一个工具函数,可以极大地简化异步数据获取的逻辑代码。
64
+ - [`connect`](https://modernjs.dev/v1/docs/apis/app/runtime/model/connect): HOC 风格的 API,用于访问 Model。
65
+
66
+ 开发体验方面,优化 Reduck 组成包的组织结构,减少用户侧依赖数量,现在只需要引入 `@modern-js-reduck/react` 一个包(Modern.js 中 Reduck 功能已内置,无需手动引入包);优化 API 的 TS 类型定义,改进类型信息的自动推导,整体达到 TS 支持开箱即用。
67
+
68
+ 此外,对 Reduck [使用文档](https://modernjs.dev/v1/docs/guides/features/model/quick-start) 和 [API 文档](https://modernjs.dev/v1/docs/apis/app/runtime/model/model_) 做了全面更新,提供了更加丰富和详尽的内容。
69
+
70
+ ## 其他更新
71
+
72
+ ### 命令和配置
73
+
74
+ **新增命令**
75
+
76
+ - [`upgrade`](https://modernjs.dev/v1/docs/apis/app/commands/upgrade):自动升级 Modern.js 版本。功能同执行 `npx @modern-js/upgrade` 命令。
77
+ - [`inspect`](https://modernjs.dev/v1/docs/apis/app/commands/inspect):通过该命令可以输出当前项目使用的完整 webpack 配置。
78
+ - [`gen-release-note`](https://modernjs.dev/v1/docs/apis/module/commands/gen-release-note):自动根据当前仓库的 [changesets](https://github.com/changesets/changesets) 信息生成发布日志。此外,我们提供了[包版本管理专题文档](https://modernjs.dev/v1/docs/guides/features/changesets/introduce),方便大家更好的认识和使用 changesets 及相关功能。
79
+
80
+ **新增配置**
81
+
82
+ - [`source.preEntry`](https://modernjs.dev/v1/docs/apis/app/config/source/pre-entry):用于配置全局脚本,这段脚本会早于页面的代码执行。
83
+
84
+ ### BFF
85
+
86
+ - 新增 [`afterLambdaRegisted`](https://modernjs.dev/v1/docs/apis/app/runtime/bff-server/after-lambda-registed) hook。用于使用 Express 框架时,在 BFF 函数注册路由之后执行。可以用来添加错误处理逻辑,新增路由等。
87
+ - 优化使用 Express 框架开发场景下的热更新性能。在比较大的项目中,BFF 函数更改,热更新也可以在几十毫秒内完成。
88
+
89
+ ### SSR
90
+
91
+ - SSR 产物添加 Sourcemap,优化服务端调试 SSR 代码的体验。
92
+
93
+ ### Web Server
94
+
95
+ - 支持按入口设置响应头,使用方式请参考[文档](https://modernjs.dev/v1/docs/apis/app/config/server/routes#自定义响应头)。
@@ -0,0 +1,80 @@
1
+ ---
2
+ sidebar_position: 98
3
+ ---
4
+
5
+ # 2022 年 9 ~ 10 月更新内容
6
+
7
+ > 发表于 2022.11.01
8
+
9
+ Modern.js 9 ~ 10 月的最新版本为 v1.21.0,本双月的主要更新有:
10
+
11
+ - **支持 pnpm v7**:完成框架对 pnpm v7 的支持。
12
+ - **服务端增加 Typescript 作为 ts 文件编译器**。
13
+
14
+ ## 支持 pnpm v7
15
+
16
+ Modern.js 框架完成了对 pnpm v7 的变更适配。
17
+
18
+ 使用 `npx @modern-js/create@modern-1` 创建项目时会根据用户当前环境的 pnpm 版本进行安装依赖操作,并且在初始化项目中会在 `.npmrc` 中添加
19
+ `strict-peer-dependencies=false` 配置,避免安装时由于 `peerDependencies` 缺失导致安装依赖失败问题。
20
+ 同时适配 `release`、`deploy` 命令对 pnpm v7 的支持。
21
+
22
+ pnpm v7 在命令传参方面姿势发生了变化,需注意:
23
+
24
+ 在使用 pnpm 调用 `package.json` 中的命令时,如果需要传递参数至 pnpm,需要将参数放到命令前。
25
+
26
+ 例如使用 pnpm `--filter` 参数执行 prepare 命令:
27
+
28
+ ```bash
29
+ pnpm run --filter "./packages/**" prepare
30
+ ```
31
+
32
+ 如果需要传递参数至命令,需要将参数放到命令后。
33
+
34
+ 例如,在如下 `package.json` 配置中:
35
+
36
+ ```json
37
+ {
38
+ "scripts": {
39
+ "command": "modern command"
40
+ }
41
+ }
42
+ ```
43
+
44
+ 执行 command 命令时携带参数方式为:
45
+
46
+ ```bash
47
+ pnpm run command --options
48
+ ```
49
+
50
+ ## 服务端增加 Typescript 作为 ts 文件编译器
51
+
52
+ 在 Modernjs 之前的版本中,我们为了保证前后端编译器的统一,使用了 Babel 作为前后端默认的编译器,并保持相同的编译逻辑,但随着使用的项目增多,我们发现在一些服务端常用的语法场景下,Babel 编译 ts 有一些问题。
53
+
54
+ 因此,我们将服务端编译 ts 的编译器由 Babel 改为了 Typescript,在别名解析逻辑上与 Babel 版本保持一致,同样支持使用 `tsconfig.json` 或者插件设置别名。
55
+
56
+ 在执行 build 命令时,已默认使用 Typescript 编译,并默认开启了类型校验,很多项目在 9、10 双月已经在使用。
57
+
58
+ 执行 dev 命令时,如果希望使用 Typescript 编译,需要安装 `ts-node`,`tsconfig-paths` 到 `devDependencies`,否则默认仍然使用 Babel 编译。在 Modern.js 2.0 中,我们将使用 ts-node 作为默认的编译器。
59
+
60
+ ## 其他更新
61
+
62
+ ### 配置更新
63
+
64
+ - 支持在 `tools.webpackChain` 中获取 `HtmlWebpackPlugin` 对象,使用方式请参考[文档](https://modernjs.dev/v1/docs/apis/app/config/tools/webpack-chain#htmlwebpackplugin)。
65
+
66
+ ### 底层依赖升级
67
+
68
+ - husky 升级至 v8
69
+
70
+ 使用 `npx @modern-js/create@modern-1` 创建项目时,husky 会默认安装 v8 版本,并移除 `package.json` 中 husky 的配置,使用 `.husky` 文件夹的形式管理 husky 配置。
71
+
72
+ 在初次安装依赖时需要执行 `npx husky install` 进行 husky 初始化,默认项目会在 prepare 命令中完成,如果 husky 配置未生效,可通过手动执行完成 husky 配置。
73
+
74
+ ## 功能预告
75
+
76
+ Modern.js 团队目前除了正常开发维护 Modern 1.0 外,正在全力打造 Modern.js 2.0。
77
+
78
+ Modern.js 2.0 将带来新的构建体系,除了支持使用稳定的 webpack 进行构建,还即将支持将底层构建工具切换为自研的 Rust bundler,提供更流畅的编译速度。
79
+
80
+ Modern.js 2.0 将基于 [React-Router v6](https://reactrouter.com) 推荐嵌套路由作为新的路由方式;将默认支持 React 18 并提供 Streaming SSR 的支持,使用户体验更加流畅。
@@ -0,0 +1,6 @@
1
+ [
2
+ "overview",
3
+ "v2-release-note",
4
+ "2022-0910-updates",
5
+ "2022-0708-updates"
6
+ ]
@@ -0,0 +1,246 @@
1
+ ---
2
+ title: Modern.js v2 发布
3
+ ---
4
+
5
+ # Modern.js v2 发布:支持 Rspack 构建
6
+
7
+ > 发表于 2023.03.16
8
+
9
+ 大家好,很高兴地向大家宣布,Modern.js v2 版本已经正式发布了!
10
+
11
+ **Modern.js 是字节跳动 Web Infra 团队开源的一套 Web 工程体系**。在开源以来的一年多时间里,Modern.js 保持稳定的迭代节奏,数十位贡献者参与了开发,累计提交 2000+ 个 Pull Request,并支持了 Rspack 构建、嵌套路由、流式渲染等新特性。
12
+
13
+ 在这篇文章里,我们会和大家一起聊一聊 Modern.js 在过去一年多时间里的变化。
14
+
15
+ ![Modern.js v2 官网](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/v2-release/Framework-Home.png)
16
+
17
+ <div style={{ textAlign: 'center', fontStyle: 'italic' }}>
18
+ Modern.js v2 官网
19
+ </div>
20
+
21
+ ## 背景
22
+
23
+ 首先介绍一下我们为什么要做 Modern.js v2 版本,主要有以下几个原因:
24
+
25
+ 1. **下沉更多能力**:在字节跳动内部,Web Infra 团队整合了多个 Web 开发框架和解决方案,收敛技术栈,将通用能力下沉到底层的 Modern.js 工程体系中。
26
+ 2. **拥抱 Rust 生态**:随着社区中更多的前端工具链基于 Rust 重写,Modern.js 正在积极拥抱这一变化,将底层工具逐步替换为 Rust 实现。
27
+ 3. **底层依赖升级**:为了对 Modern.js 的底层依赖进行大版本升级,包括 React v18、React Router v6 等,从而引入流式渲染、嵌套路由等新能力。
28
+ 4. **定位调整**:从 2021 年开源以来,社区中的伙伴们给予我们很多有价值的反馈,这帮助我们对 Modern.js 的定位和架构进行更多地思考(详见下文)。
29
+
30
+ 以上因素促使我们完成了 Modern.js v2 版本。
31
+
32
+ ## 定位
33
+
34
+ 在 v2 版本中,我们重新明确了 Modern.js 的定位:**Modern.js 是字节跳动 Web 工程体系的开源版本,它提供多个解决方案,来帮助开发者解决不同研发场景下的问题。**
35
+
36
+ 目前我们开源了三个解决方案,分别面向 Web 应用开发场景、npm 包开发场景和文档站开发场景:
37
+
38
+ ![Modern.js 解决方案](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/v2-release/Solutions.png)
39
+
40
+ <div style={{ textAlign: 'center', fontStyle: 'italic' }}>
41
+ Modern.js 解决方案
42
+ </div>
43
+
44
+ 作为 Modern.js 工程体系的一部分,以上每个解决方案都可以被单独使用,并且各自部署了独立的文档站点。开发者可以按需选择其中的一个或多个解决方案来使用。
45
+
46
+ 在代码层面,这三个解决方案按照统一的研发规范迭代,并复用同一套插件机制,因此,它们提供的研发体验也较为一致。大家如果对内部实现感兴趣,可以在 GitHub 上的 [Modern.js 仓库](https://github.com/web-infra-dev/modern.js) 中找到它们的源代码。
47
+
48
+ 下面让我们来了解一下这三个解决方案提供的最新能力。
49
+
50
+ ## Modern.js 框架
51
+
52
+ **Modern.js 框架是一个基于 React 的渐进式 Web 开发框架**。在字节跳动内部,我们将 Modern.js 封装为上层框架,并支撑了数千个 Web 应用的研发。
53
+
54
+ > 由于 Modern.js 框架的使用最为广泛,在下文中,我们会省略「框架」,直接称其为 Modern.js。
55
+
56
+ 在 Modern.js 落地的过程中,我们收到很多业务同学提出的诉求,包括构建性能、框架的灵活性和可扩展性、页面加载性能等方面,相信社区中的开发者也会面临相似的问题。
57
+
58
+ 为了更好地满足这些诉求,Modern.js v2 提供了以下特性:
59
+
60
+ - 通过引入 Rust 构建工具 —— Rspack 来提升构建性能。
61
+ - 通过渐进式设计来保证框架的灵活性。
62
+ - 通过插件系统来提供更好的可扩展性。
63
+ - 通过嵌套路由来改善开发效率、优化加载性能。
64
+
65
+ ### Rspack 构建模式
66
+
67
+ **Modern.js v2 提供开箱即用的双构建工具支持**,开发者可以在成熟的 Webpack 和更快的 Rspack 之间进行切换。大家对 Rspack 可能还不太了解,Rspack 是由字节跳动开源的 Web 构建工具,基于 Rust 语言开发,具有高性能、可定制、兼容 Webpack 生态等特性。
68
+
69
+ ![](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/v2-release/rspack-logo.png)
70
+
71
+ <div style={{ textAlign: 'center', fontStyle: 'italic' }}>Rspack Logo</div>
72
+
73
+ 相较于 webpack,Rspack 的构建性能有明显提升,除了 Rust 带来的语言优势,这也来自于它的并行架构和增量编译等特性。经过 benchmark 验证,**Rspack 可以给 Modern.js 项目带来 5 ~ 10 倍编译性能的提升。**
74
+
75
+ ![](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/v2-release/rspack-benchmark.png)
76
+
77
+ <div style={{ textAlign: 'center', fontStyle: 'italic' }}>Rspack Benchmark</div>
78
+
79
+ **Modern.js 已支持在 Rspack 模式下使用框架的 70% 功能和配置项**,包括服务器端渲染(SSR),静态站点生成(SSG)、嵌套路由、CSS Modules 和 Tailwind CSS 等功能。除了功能,Modern.js 在 Rspack 模式下的配置项也与 Webpack 模式基本一致,在我们的实际验证中,一个小型项目花几分钟就可以平滑切换到 Rspack 模式。
80
+
81
+ 目前,Rspack 项目以及 Modern.js 的 Rspack 模式仍在快速迭代中。在未来几个月内,我们将逐步对齐 Webpack 模式和 Rspack 模式的绝大多数功能和配置,使更多项目能从 Webpack 平滑地过渡到 Rspack。
82
+
83
+ > Rspack 已于 2023.03.10 号正式开源,你也可以在非 Modern.js 的项目中直接使用 Rspack 进行构建。如果你对 Rspack 感兴趣,请阅读 [「Rspack 正式发布了」](https://www.rspack.dev/zh/blog/announcement.html)来了解更多。
84
+
85
+ ### 渐进式设计
86
+
87
+ 大家对 Modern.js 框架的第一印象可能是「一个大而全的框架」,但事实上,为了避免变得臃肿,**Modern.js 采取了渐进式设计**,将所有功能建立在灵活的插件系统之上,因此具备按需启用和可插拔的能力。
88
+
89
+ Modern.js 期望能支持不同规模的项目研发,考虑到中大型项目和小型项目对功能的诉求存在差异,**Modern.js 的大多数功能都是按需启用的**。在创建项目时,Modern.js 默认只安装核心模块,使 npm 依赖保持轻量;当需要用到额外功能时,你可以通过 modern new 命令一键开启,并自动安装相关依赖。
90
+
91
+ ![modern new 命令](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/v2-release/modern-new-code.png)
92
+
93
+ <div style={{ textAlign: 'center', fontStyle: 'italic' }}>modern new 命令</div>
94
+
95
+ 比如:
96
+
97
+ - 对于基础的开发场景,项目中只需安装 Modern.js 的 CLI 工具 `@modern-js/app-tools`,即具备了开发调试、生产构建的能力。
98
+ - 当你需要在应用中增加一些 BFF 接口时,可以执行 modern new 命令来启用 BFF 功能。启用后,Modern.js 会自动安装所需的 BFF 插件,以及某个 Node.js 框架对应的插件(如 Koa / Express):
99
+
100
+ ![](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/v2-release/bff-plugins.png)
101
+
102
+ 目前,你可以通过 `modern new` 命令来按需开启以下功能,未来我们也会将更多功能加入到 `new` 命令中,使其能够被便捷地集成。
103
+
104
+ ![](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/v2-release/modern-new.png)
105
+
106
+ ### 插件系统
107
+
108
+ 开发者在实际项目中使用 Web 研发框架时,除了使用开箱即用的能力,也会有很强的定制化诉求。因此,Modern.js 设计了一套灵活的插件系统来满足这一点。
109
+
110
+ Modern.js 可以划分为三个核心部分:**CLI 工具、服务端和运行时**。其中,CLI 工具负责提供 CLI 命令和打包构建能力;服务端提供 SSR、BFF 等能力;运行时提供状态管理、路由等能力。
111
+
112
+ ![Modern.js 核心模块](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/v2-release/modern-parts.png)
113
+
114
+ <div style={{ textAlign: 'center', fontStyle: 'italic' }}>
115
+ Modern.js 核心模块
116
+ </div>
117
+
118
+ 我们为这三者分别设计了插件:
119
+
120
+ - **CLI 插件**:对应 CLI 工具,负责控制 CLI 命令、打包构建流程。
121
+ - **Server 插件**:对应服务端,用于处理服务端的生命周期以及客户端请求。
122
+ - **Runtime 插件**:对应运行时,用于处理 React 组件渲染逻辑。
123
+
124
+ 这三种插件使用统一的 Hook 模型,并提供丰富的插件 API。比如,你可以使用插件做到:
125
+
126
+ - 注册自定义的 CLI 命令
127
+ - 修改 Rspack、PostCSS、Less、Sass 等基础工具的配置
128
+ - 修改运行时需要渲染的 React 组件
129
+ - 自定义控制台日志
130
+ - 自定义 Node.js 服务器框架
131
+ - ...
132
+
133
+ 在字节跳动内部,我们借助这些插件 API,结合公司内的基建和平台,封装出内部的企业级框架。如果你需要对 Modern.js 框架进行深度定制,也可以借助这些插件 API 来完成。
134
+
135
+ > 如果你对 Modern.js 的插件系统感兴趣,请阅读 [「Modern.js - 自定义插件」](https://modernjs.dev/guides/topic-detail/framework-plugin/introduction.html)文档。
136
+
137
+ ### 嵌套路由
138
+
139
+ **Modern.js v2 基于 React Router v6 提供了新的路由方式 —— 嵌套路由(Nested Routes)。**
140
+
141
+ 如果大家了解过 Remix 或 Next.js 13,应该对嵌套路由不陌生了。嵌套路由与 Modern.js v1 提供的约定式路由相似,也是一种基于文件系统的路由。
142
+
143
+ 在 Modern.js v2 中,我们约定在 `src/routes` 目录下的文件,在应用启动时会自动生成对应的路由结构,页面的路由与文件结构是相呼应的,并且可以为资源加载带来一些性能优化。
144
+
145
+ Modern.js 的嵌套路由包含以下功能:
146
+
147
+ - **资源加载**:基于路由结构,并行加载多级路由资源,子组件资源加载不再受父组件渲染影响。并且将路由资源进一步细分,保证路由跳转时的最小资源加载。
148
+ - **共享布局**:在路由之间轻松共享 UI,同时保持状态,并避免多余的重新渲染。
149
+ - **数据获取**:基于路由结构完成多级路由的数据并行获取。
150
+
151
+ 在 Modern.js v2 中,只需要配置 `runtime.router`,即可开启嵌套路由:
152
+
153
+ ![](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/v2-release/runtime-router.png)
154
+
155
+ > 如果你对嵌套路由的细节感兴趣,请阅读[「Modern.js - 路由」](https://modernjs.dev/guides/basic-features/routes.html#%E8%B7%AF%E7%94%B1)文档。
156
+
157
+ ### 流式渲染
158
+
159
+ **Modern.js v2 基于 React v18 的全新 API 支持了流式渲染(Streaming SSR)。**
160
+
161
+ 如果大家关注去年 React v18 的版本更新,可能会注意到它提供了新的 Server Side APIs,并对 Suspense 做了完整支持。在 Modern.js v2 中,我们通过 React Router v6 暴露的能力,在框架层面支持了流式渲染。
162
+
163
+ ![](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/v2-release/suspense.png)
164
+
165
+ 流式渲染利用 HTTP 的能力,允许将页面的 HTML 分割成较小的块,并逐步将这些块从服务器发送到客户端。页面无需等待所有数据加载完成,即可呈现完整用户界面,因此与数据无关的局部内容能够更早地显示出来。
166
+
167
+ 在 Modern.js v2 中,只需要配置 `server.ssr.mode`,即可开启流式渲染:
168
+
169
+ ![](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/v2-release/enable-streaming.png)
170
+
171
+ > 如果你想在 Modern.js 中使用 SSR 和流式渲染,请阅读[「 Modern.js 服务端渲染(SSR)」](https://modernjs.dev/guides/advanced-features/ssr.html)文档。
172
+
173
+ ## Modern.js Module
174
+
175
+ Modern.js Module 是我们针对 npm 包开发场景提供的解决方案,它为开发者提供了专业的 npm 包开发工具,能够更轻松地构建、调试和发布一个 npm 包。
176
+
177
+ ![Modern.js Module 首页](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/v2-release/module-home.png)
178
+
179
+ <div style={{ textAlign: 'center', fontStyle: 'italic' }}>
180
+ Modern.js Module 首页
181
+ </div>
182
+
183
+ Modern.js Module 的核心能力包括:
184
+
185
+ - **构建能力**:基于 esbuild 实现的构建工具,提供类型生成能力,能够高度定制构建产物。
186
+ - **调试能力**:基于 Storybook 调试项目,可以测试代码功能、验证构建产物可用性。
187
+ - **版本管理能力**:基于 Changeset 提供版本管理命令,涵盖从开发到发布的过程。
188
+ - **扩展能力**:提供包含丰富 Hooks 的插件机制,支持扩展调试能力,或对流程进行自定义。
189
+
190
+ ### 基于 esbuild 构建
191
+
192
+ 在 v2 版本中,我们以 esbuild 为核心,扩展其插件机制,并结合 SWC 实现了一个通用的模块构建工具,它的特性包括:
193
+
194
+ - **支持 bundle 和 bundleless 两种模式的构建**。你可以选择构建产物的形式 —— 是打包处理后的 bundle 产物,还是直接通过 transform 处理的 bundleless 产物。
195
+ - **相较于 esbuild,提供更丰富的构建能力和插件 Hook**。例如,在样式方面,默认支持 Less、Sass、PostCSS 和 CSS Modules,并支持静态资源处理、SVGR 等常用能力。这些能力在 bundle 和 bundleless 模式下均可使用。
196
+
197
+ 在生成 TS 类型文件上,Modern.js Module v2 也支持新的方式:
198
+
199
+ - **类型文件的 bundle 处理**:对生成的类型文件进行打包处理,生成一个单独的类型文件。
200
+ - **类型文件里的别名处理**:对生成的类型文件里包含的别名路径进行转换。
201
+
202
+ 总的来说,相较于 v1 版本,Modern.js Module v2 提供了更完整的构建能力,同时构建效率也有明显提升。
203
+
204
+ > 如果你对 Modern.js Module 感兴趣,请移步[「Modern.js Module 文档」](https://modernjs.dev/module-tools)来了解更多。
205
+
206
+ ## Rspress
207
+
208
+ Rspress 是一个面向文档站场景的框架,它的目标是给开发者提供一个简单、高效、可扩展的文档站解决方案。
209
+
210
+ ![Rspress 官网介绍页](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/v2-release/doc-tools.png)
211
+
212
+ <div style={{ textAlign: 'center', fontStyle: 'italic' }}>
213
+ Rspress 官网介绍页
214
+ </div>
215
+
216
+ 目前,Rspress 包含如下能力:
217
+
218
+ - **基于 Rspack 构建**:项目构建和 HMR 速度飞快,提供愉悦的开发和生产部署体验。
219
+ - **支持 MDX 语法**:在普通 Markdown 语法的基础上可以嵌入 React 组件和 JSX 语法。
220
+ - **全文搜索**:内置开箱即用的全文搜索能力,基于 FlexSearch 实现。
221
+ - **支持国际化**:提供多语言文档切换功能,且支持多语言内容搜索。
222
+ - **自定义主题**:内置一套默认主题,你可以基于这套主题进行扩展,也可以从零定制一套自定义主题。
223
+ - **插件机制**:提供丰富的插件钩子能力,让你能够充分自定义扩展框架功能。
224
+
225
+ 我们做 Rspress 的初心,是为了解决我们团队内的文档站搭建需求。随着 Rspress 的功能逐渐完整,我们也将它开放给社区使用,使它能发挥更大的价值。
226
+
227
+ 目前,Rspress 仍处于 beta 测试状态,相关源代码已经开放在 [Rspress 仓库](https://github.com/web-infra-dev/rspress) 中,并提供了基础的 [使用文档](https://rspress.dev/)。在未来,我们将继续投入,使之成为一个完成度更高的文档解决方案。
228
+
229
+ ## 致谢
230
+
231
+ Modern.js 中的部分代码实现参考了社区中的开源项目,我们对这些项目表示衷心的感谢:
232
+
233
+ - `@modern-js/bundle-require`: 修改自 [bundle-require](https://github.com/egoist/bundle-require)。
234
+ - `@modern-js/plugin`: hook API 的实现参考了 [farrow-pipeline](https://github.com/farrow-js/farrow/tree/master/packages/farrow-pipeline)。
235
+ - `@modern-js/builder`: moduleScope 和 fileSize 插件参考了 [create-react-app](https://github.com/facebook/create-react-app),TsConfigPathsPlugin 参考了 [tsconfig-paths-webpack-plugin](https://github.com/dividab/tsconfig-paths-webpack-plugin),generateMetaTags 函数参考了 [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin)。
236
+ - `@modern-js/plugin-testing`: jest runner 参考了 [jest-cli](https://github.com/facebook/jest/blob/fdc74af37235354e077edeeee8aa2d1a4a863032/packages/jest-cli/src/cli/index.ts#L21)。
237
+ - `@modern-js/plugin-data-loader`: 部分实现参考了 [remix](https://github.com/remix-run/remix)。
238
+
239
+ ## 最后
240
+
241
+ 现阶段 Modern.js 仍是一个很年轻的开源项目,在未来,我们将继续拥抱长期主义,持续打磨功能和文档,并以更透明的方式与社区共同协作。
242
+
243
+ 如果你有兴趣尝试一下 Modern.js,欢迎试用并留下你的反馈意见~
244
+
245
+ - 官网:[modernjs.dev](https://modernjs.dev)
246
+ - GitHub 仓库:[github.com/web-infra-dev/modern.js](https://github.com/web-infra-dev/modern.js)
@@ -4,7 +4,7 @@ Run `pnpm run dev` in the project to start the project:
4
4
  $ pnpm run dev
5
5
  > modern dev
6
6
 
7
- Modern.js Framework v2.55.0
7
+ Modern.js Framework
8
8
 
9
9
  ready Client compiled in 0.86 s
10
10
 
@@ -0,0 +1,78 @@
1
+ [
2
+ "app/usage",
3
+ {
4
+ "type": "dir",
5
+ "name": "app/dev",
6
+ "label": "dev",
7
+ "collapsed": true
8
+ },
9
+ {
10
+ "type": "dir",
11
+ "name": "app/bff",
12
+ "label": "bff",
13
+ "collapsed": true
14
+ },
15
+ {
16
+ "type": "dir",
17
+ "name": "app/html",
18
+ "label": "html",
19
+ "collapsed": true
20
+ },
21
+ {
22
+ "type": "dir",
23
+ "name": "app/tools",
24
+ "label": "tools",
25
+ "collapsed": true
26
+ },
27
+ {
28
+ "type": "dir",
29
+ "name": "app/source",
30
+ "label": "source",
31
+ "collapsed": true
32
+ },
33
+ {
34
+ "type": "dir",
35
+ "name": "app/server",
36
+ "label": "server",
37
+ "collapsed": true
38
+ },
39
+ {
40
+ "type": "dir",
41
+ "name": "app/output",
42
+ "label": "output",
43
+ "collapsed": true
44
+ },
45
+ {
46
+ "type": "dir",
47
+ "name": "app/deploy",
48
+ "label": "deploy",
49
+ "collapsed": true
50
+ },
51
+ "app/plugins",
52
+ {
53
+ "type": "dir",
54
+ "name": "app/security",
55
+ "label": "security",
56
+ "collapsed": true
57
+ },
58
+ {
59
+ "type": "dir",
60
+ "name": "app/runtime",
61
+ "label": "runtime",
62
+ "collapsed": true
63
+ },
64
+ {
65
+ "type": "dir",
66
+ "name": "app/performance",
67
+ "label": "performance",
68
+ "collapsed": true
69
+ },
70
+ {
71
+ "type": "dir",
72
+ "name": "app/experiments",
73
+ "label": "experiments",
74
+ "collapsed": true
75
+ },
76
+ "app/builder-plugins",
77
+ "app/auto-load-plugin"
78
+ ]
@@ -1,5 +1,5 @@
1
1
  ---
2
- sidebar_label: prefix
2
+ title: prefix
3
3
  ---
4
4
 
5
5
  # bff.prefix