@modern-js/main-doc 2.58.0 → 2.58.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (449) 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/rsbuild-plugin.mdx +9 -9
  158. package/docs/en/guides/advanced-features/ssr/_meta.json +5 -0
  159. package/docs/en/guides/basic-features/_meta.json +22 -0
  160. package/docs/en/guides/basic-features/data/_meta.json +4 -0
  161. package/docs/en/guides/concept/_meta.json +4 -0
  162. package/docs/en/guides/{deprecat.md → deprecated.md} +1 -1
  163. package/docs/en/guides/get-started/_meta.json +7 -0
  164. package/docs/en/guides/get-started/quick-start.mdx +2 -2
  165. package/docs/en/guides/get-started/upgrade.mdx +1 -1
  166. package/docs/en/guides/topic-detail/_meta.json +26 -0
  167. package/docs/en/guides/topic-detail/framework-plugin/_meta.json +10 -0
  168. package/docs/en/guides/topic-detail/generator/_meta.json +17 -0
  169. package/docs/en/guides/topic-detail/generator/create/_meta.json +5 -0
  170. package/docs/en/guides/topic-detail/generator/new/_meta.json +5 -0
  171. package/docs/en/guides/topic-detail/generator/plugin/_meta.json +11 -0
  172. package/docs/en/guides/topic-detail/model/_meta.json +14 -0
  173. package/docs/en/guides/troubleshooting/_meta.json +6 -0
  174. package/docs/en/guides/troubleshooting/dependencies.mdx +4 -4
  175. package/docs/en/tutorials/_meta.json +17 -0
  176. package/docs/zh/_meta.json +27 -0
  177. package/docs/zh/apis/_meta.json +13 -0
  178. package/docs/zh/apis/app/hooks/_meta.json +28 -0
  179. package/docs/zh/apis/app/runtime/_meta.json +50 -0
  180. package/docs/zh/community/_meta.json +11 -0
  181. package/docs/zh/community/blog/_meta.json +6 -0
  182. package/docs/zh/community/blog/v2-release-note.mdx +1 -2
  183. package/docs/zh/components/debug-app.mdx +1 -1
  184. package/docs/zh/configure/_meta.json +78 -0
  185. package/docs/zh/configure/app/auto-load-plugin.mdx +1 -1
  186. package/docs/zh/configure/app/bff/prefix.mdx +1 -1
  187. package/docs/zh/configure/app/builder-plugins.mdx +1 -1
  188. package/docs/zh/configure/app/deploy/microFrontend.mdx +1 -1
  189. package/docs/zh/configure/app/dev/asset-prefix.mdx +1 -1
  190. package/docs/zh/configure/app/dev/before-start-url.mdx +1 -1
  191. package/docs/zh/configure/app/dev/client.mdx +1 -1
  192. package/docs/zh/configure/app/dev/hmr.mdx +1 -1
  193. package/docs/zh/configure/app/dev/host.mdx +1 -1
  194. package/docs/zh/configure/app/dev/https.mdx +1 -1
  195. package/docs/zh/configure/app/dev/live-reload.mdx +1 -1
  196. package/docs/zh/configure/app/dev/port.mdx +1 -1
  197. package/docs/zh/configure/app/dev/progress-bar.mdx +1 -1
  198. package/docs/zh/configure/app/dev/proxy.mdx +1 -1
  199. package/docs/zh/configure/app/dev/setup-middlewares.mdx +1 -1
  200. package/docs/zh/configure/app/dev/start-url.mdx +1 -1
  201. package/docs/zh/configure/app/dev/watch-files.mdx +1 -1
  202. package/docs/zh/configure/app/dev/write-to-disk.mdx +1 -1
  203. package/docs/zh/configure/app/experiments/lazy-compilation.mdx +1 -1
  204. package/docs/zh/configure/app/experiments/source-build.mdx +1 -1
  205. package/docs/zh/configure/app/html/app-icon.mdx +1 -1
  206. package/docs/zh/configure/app/html/crossorigin.mdx +1 -1
  207. package/docs/zh/configure/app/html/disable-html-folder.mdx +1 -1
  208. package/docs/zh/configure/app/html/favicon-by-entries.mdx +1 -1
  209. package/docs/zh/configure/app/html/favicon.mdx +1 -1
  210. package/docs/zh/configure/app/html/inject-by-entries.mdx +1 -1
  211. package/docs/zh/configure/app/html/inject.mdx +1 -1
  212. package/docs/zh/configure/app/html/meta-by-entries.mdx +1 -1
  213. package/docs/zh/configure/app/html/meta.mdx +1 -1
  214. package/docs/zh/configure/app/html/mount-id.mdx +1 -1
  215. package/docs/zh/configure/app/html/script-loading.mdx +1 -1
  216. package/docs/zh/configure/app/html/tags-by-entries.mdx +1 -1
  217. package/docs/zh/configure/app/html/tags.mdx +1 -1
  218. package/docs/zh/configure/app/html/template-by-entries.mdx +1 -1
  219. package/docs/zh/configure/app/html/template-parameters-by-entries.mdx +1 -1
  220. package/docs/zh/configure/app/html/template-parameters.mdx +1 -1
  221. package/docs/zh/configure/app/html/template.mdx +1 -1
  222. package/docs/zh/configure/app/html/title-by-entries.mdx +1 -1
  223. package/docs/zh/configure/app/html/title.mdx +1 -1
  224. package/docs/zh/configure/app/output/asset-prefix.mdx +1 -1
  225. package/docs/zh/configure/app/output/assets-retry.mdx +1 -1
  226. package/docs/zh/configure/app/output/charset.mdx +1 -1
  227. package/docs/zh/configure/app/output/clean-dist-path.mdx +1 -1
  228. package/docs/zh/configure/app/output/convert-to-rem.mdx +1 -1
  229. package/docs/zh/configure/app/output/copy.mdx +1 -1
  230. package/docs/zh/configure/app/output/css-module-local-ident-name.mdx +1 -1
  231. package/docs/zh/configure/app/output/css-modules.mdx +1 -1
  232. package/docs/zh/configure/app/output/data-uri-limit.mdx +1 -1
  233. package/docs/zh/configure/app/output/disable-css-extract.mdx +1 -1
  234. package/docs/zh/configure/app/output/disable-css-module-extension.mdx +1 -1
  235. package/docs/zh/configure/app/output/disable-filename-hash.mdx +1 -1
  236. package/docs/zh/configure/app/output/disable-inline-runtime-chunk.mdx +1 -1
  237. package/docs/zh/configure/app/output/disable-minimize.mdx +1 -1
  238. package/docs/zh/configure/app/output/disable-node-polyfill.mdx +1 -1
  239. package/docs/zh/configure/app/output/disable-source-map.mdx +1 -1
  240. package/docs/zh/configure/app/output/disable-svgr.mdx +1 -1
  241. package/docs/zh/configure/app/output/disable-ts-checker.mdx +1 -1
  242. package/docs/zh/configure/app/output/dist-path.mdx +1 -1
  243. package/docs/zh/configure/app/output/enable-asset-fallback.mdx +1 -1
  244. package/docs/zh/configure/app/output/enable-asset-manifest.mdx +1 -1
  245. package/docs/zh/configure/app/output/enable-css-module-tsdeclaration.mdx +1 -1
  246. package/docs/zh/configure/app/output/enable-inline-route-manifests.mdx +1 -1
  247. package/docs/zh/configure/app/output/enable-inline-scripts.mdx +1 -1
  248. package/docs/zh/configure/app/output/enable-inline-styles.mdx +1 -1
  249. package/docs/zh/configure/app/output/enable-latest-decorators.mdx +1 -1
  250. package/docs/zh/configure/app/output/externals.mdx +1 -1
  251. package/docs/zh/configure/app/output/filename-hash.mdx +1 -1
  252. package/docs/zh/configure/app/output/filename.mdx +1 -1
  253. package/docs/zh/configure/app/output/legal-comments.mdx +1 -1
  254. package/docs/zh/configure/app/output/override-browserslist.mdx +1 -1
  255. package/docs/zh/configure/app/output/polyfill.mdx +1 -1
  256. package/docs/zh/configure/app/output/splitRouteChunks.mdx +1 -1
  257. package/docs/zh/configure/app/output/ssg.mdx +1 -1
  258. package/docs/zh/configure/app/output/svg-default-export.mdx +1 -1
  259. package/docs/zh/configure/app/output/temp-dir.mdx +1 -1
  260. package/docs/zh/configure/app/performance/build-cache.mdx +1 -1
  261. package/docs/zh/configure/app/performance/bundle-analyze.mdx +1 -1
  262. package/docs/zh/configure/app/performance/chunk-split.mdx +1 -1
  263. package/docs/zh/configure/app/performance/dns-prefetch.mdx +1 -1
  264. package/docs/zh/configure/app/performance/preconnect.mdx +1 -1
  265. package/docs/zh/configure/app/performance/prefetch.mdx +1 -1
  266. package/docs/zh/configure/app/performance/preload.mdx +1 -1
  267. package/docs/zh/configure/app/performance/print-file-size.mdx +1 -1
  268. package/docs/zh/configure/app/performance/profile.mdx +1 -1
  269. package/docs/zh/configure/app/performance/remove-console.mdx +1 -1
  270. package/docs/zh/configure/app/performance/remove-moment-locale.mdx +1 -1
  271. package/docs/zh/configure/app/performance/transform-lodash.mdx +1 -1
  272. package/docs/zh/configure/app/plugins.mdx +1 -1
  273. package/docs/zh/configure/app/runtime/{intro.mdx → 0-intro.mdx} +1 -1
  274. package/docs/zh/configure/app/runtime/master-app.mdx +1 -1
  275. package/docs/zh/configure/app/runtime/router.mdx +3 -1
  276. package/docs/zh/configure/app/runtime/state.mdx +1 -1
  277. package/docs/zh/configure/app/security/check-syntax.mdx +1 -1
  278. package/docs/zh/configure/app/security/nonce.mdx +1 -1
  279. package/docs/zh/configure/app/security/sri.mdx +1 -1
  280. package/docs/zh/configure/app/server/base-url.mdx +1 -1
  281. package/docs/zh/configure/app/server/enable-framework-ext.mdx +1 -1
  282. package/docs/zh/configure/app/server/port.mdx +1 -1
  283. package/docs/zh/configure/app/server/public-routes.mdx +1 -1
  284. package/docs/zh/configure/app/server/routes.mdx +1 -1
  285. package/docs/zh/configure/app/server/ssr-by-entries.mdx +1 -1
  286. package/docs/zh/configure/app/server/ssr.mdx +1 -1
  287. package/docs/zh/configure/app/source/alias-strategy.mdx +1 -1
  288. package/docs/zh/configure/app/source/alias.mdx +1 -1
  289. package/docs/zh/configure/app/source/config-dir.mdx +1 -1
  290. package/docs/zh/configure/app/source/decorators.mdx +1 -1
  291. package/docs/zh/configure/app/source/define.mdx +1 -1
  292. package/docs/zh/configure/app/source/disable-default-entries.mdx +1 -1
  293. package/docs/zh/configure/app/source/disable-entry-dirs.mdx +1 -1
  294. package/docs/zh/configure/app/source/enable-async-entry.mdx +1 -1
  295. package/docs/zh/configure/app/source/enable-custom-entry.mdx +1 -1
  296. package/docs/zh/configure/app/source/entries-dir.mdx +1 -1
  297. package/docs/zh/configure/app/source/entries.mdx +1 -1
  298. package/docs/zh/configure/app/source/exclude.mdx +1 -1
  299. package/docs/zh/configure/app/source/global-vars.mdx +1 -1
  300. package/docs/zh/configure/app/source/include.mdx +1 -1
  301. package/docs/zh/configure/app/source/mainEntryName.mdx +1 -1
  302. package/docs/zh/configure/app/source/module-scopes.mdx +1 -1
  303. package/docs/zh/configure/app/source/pre-entry.mdx +1 -1
  304. package/docs/zh/configure/app/source/resolve-extension-prefix.mdx +1 -1
  305. package/docs/zh/configure/app/source/resolve-main-fields.mdx +1 -1
  306. package/docs/zh/configure/app/source/transform-import.mdx +1 -1
  307. package/docs/zh/configure/app/tools/autoprefixer.mdx +1 -1
  308. package/docs/zh/configure/app/tools/babel.mdx +1 -1
  309. package/docs/zh/configure/app/tools/bundler-chain.mdx +1 -1
  310. package/docs/zh/configure/app/tools/css-extract.mdx +1 -1
  311. package/docs/zh/configure/app/tools/css-loader.mdx +1 -1
  312. package/docs/zh/configure/app/tools/dev-server.mdx +1 -1
  313. package/docs/zh/configure/app/tools/esbuild.mdx +1 -1
  314. package/docs/zh/configure/app/tools/html-plugin.mdx +1 -1
  315. package/docs/zh/configure/app/tools/less.mdx +1 -1
  316. package/docs/zh/configure/app/tools/minify-css.mdx +1 -1
  317. package/docs/zh/configure/app/tools/postcss.mdx +1 -1
  318. package/docs/zh/configure/app/tools/pug.mdx +1 -1
  319. package/docs/zh/configure/app/tools/rspack.mdx +1 -1
  320. package/docs/zh/configure/app/tools/sass.mdx +1 -1
  321. package/docs/zh/configure/app/tools/style-loader.mdx +1 -1
  322. package/docs/zh/configure/app/tools/styled-components.mdx +1 -1
  323. package/docs/zh/configure/app/tools/swc.mdx +1 -1
  324. package/docs/zh/configure/app/tools/tailwindcss.mdx +1 -1
  325. package/docs/zh/configure/app/tools/terser.mdx +1 -1
  326. package/docs/zh/configure/app/tools/ts-checker.mdx +1 -1
  327. package/docs/zh/configure/app/tools/ts-loader.mdx +1 -1
  328. package/docs/zh/configure/app/tools/webpack-chain.mdx +1 -1
  329. package/docs/zh/configure/app/tools/webpack.mdx +1 -1
  330. package/docs/zh/guides/_meta.json +33 -0
  331. package/docs/zh/guides/advanced-features/_meta.json +26 -0
  332. package/docs/zh/guides/advanced-features/bff/_meta.json +6 -0
  333. package/docs/zh/guides/advanced-features/rsbuild-plugin.mdx +9 -9
  334. package/docs/zh/guides/advanced-features/ssr/_meta.json +5 -0
  335. package/docs/zh/guides/basic-features/_meta.json +22 -0
  336. package/docs/zh/guides/basic-features/data/_meta.json +4 -0
  337. package/docs/zh/guides/basic-features/mock.mdx +1 -1
  338. package/docs/zh/guides/concept/_meta.json +4 -0
  339. package/docs/zh/guides/get-started/_meta.json +7 -0
  340. package/docs/zh/guides/get-started/quick-start.mdx +2 -2
  341. package/docs/zh/guides/get-started/upgrade.mdx +1 -1
  342. package/docs/zh/guides/topic-detail/_meta.json +26 -0
  343. package/docs/zh/guides/topic-detail/framework-plugin/_meta.json +10 -0
  344. package/docs/zh/guides/topic-detail/generator/_meta.json +17 -0
  345. package/docs/zh/guides/topic-detail/generator/create/_meta.json +5 -0
  346. package/docs/zh/guides/topic-detail/generator/new/_meta.json +5 -0
  347. package/docs/zh/guides/topic-detail/generator/plugin/_meta.json +11 -0
  348. package/docs/zh/guides/topic-detail/model/_meta.json +14 -0
  349. package/docs/zh/guides/troubleshooting/_meta.json +6 -0
  350. package/docs/zh/guides/troubleshooting/dependencies.mdx +4 -4
  351. package/docs/zh/tutorials/_meta.json +17 -0
  352. package/i18n.json +110 -0
  353. package/package.json +9 -10
  354. package/rspress.config.ts +3 -20
  355. package/docs/en/apis/app/hooks/_category_.json +0 -5
  356. package/docs/en/apis/app/hooks/api/_category_.json +0 -4
  357. package/docs/en/apis/app/hooks/config/_category_.json +0 -4
  358. package/docs/en/apis/app/hooks/server/_category_.json +0 -4
  359. package/docs/en/apis/app/hooks/src/_category_.json +0 -4
  360. package/docs/en/apis/app/runtime/_category_.json +0 -5
  361. package/docs/en/apis/app/runtime/app/_category_.json +0 -4
  362. package/docs/en/apis/app/runtime/bff/_category_.json +0 -4
  363. package/docs/en/apis/app/runtime/core/_category_.json +0 -5
  364. package/docs/en/apis/app/runtime/model/_category_.json +0 -4
  365. package/docs/en/apis/app/runtime/router/_category_.json +0 -4
  366. package/docs/en/apis/app/runtime/ssr/_category_.json +0 -4
  367. package/docs/en/apis/app/runtime/utility/_category_.json +0 -4
  368. package/docs/en/apis/app/runtime/web-server/_category_.json +0 -4
  369. package/docs/en/community/blog/_category_.json +0 -6
  370. package/docs/en/configure/app/bff/_category_.json +0 -4
  371. package/docs/en/configure/app/deploy/_category_.json +0 -4
  372. package/docs/en/configure/app/dev/_category_.json +0 -4
  373. package/docs/en/configure/app/experiments/_category_.json +0 -4
  374. package/docs/en/configure/app/html/_category_.json +0 -4
  375. package/docs/en/configure/app/output/_category_.json +0 -4
  376. package/docs/en/configure/app/performance/_category_.json +0 -4
  377. package/docs/en/configure/app/runtime/_category_.json +0 -4
  378. package/docs/en/configure/app/security/_category_.json +0 -4
  379. package/docs/en/configure/app/server/_category_.json +0 -4
  380. package/docs/en/configure/app/source/_category_.json +0 -4
  381. package/docs/en/configure/app/tools/_category_.json +0 -4
  382. package/docs/en/guides/advanced-features/_category_.json +0 -5
  383. package/docs/en/guides/advanced-features/bff/_category_.json +0 -8
  384. package/docs/en/guides/advanced-features/ssr/_category_.json +0 -8
  385. package/docs/en/guides/basic-features/_category_.json +0 -5
  386. package/docs/en/guides/basic-features/data/_category_.json +0 -4
  387. package/docs/en/guides/concept/_category_.json +0 -5
  388. package/docs/en/guides/get-started/_category_.json +0 -5
  389. package/docs/en/guides/topic-detail/_category_.json +0 -5
  390. package/docs/en/guides/topic-detail/framework-plugin/_category_.json +0 -4
  391. package/docs/en/guides/topic-detail/generator/_category_.json +0 -4
  392. package/docs/en/guides/topic-detail/generator/create/_category_.json +0 -4
  393. package/docs/en/guides/topic-detail/generator/new/_category_.json +0 -4
  394. package/docs/en/guides/topic-detail/generator/plugin/_category_.json +0 -4
  395. package/docs/en/guides/topic-detail/generator/plugin/api/_category_.json +0 -4
  396. package/docs/en/guides/topic-detail/micro-frontend/_category_.json +0 -4
  397. package/docs/en/guides/topic-detail/model/_category_.json +0 -4
  398. package/docs/en/guides/troubleshooting/_category_.json +0 -5
  399. package/docs/en/tutorials/examples/_category_.json +0 -5
  400. package/docs/en/tutorials/first-app/_category_.json +0 -5
  401. package/docs/en/tutorials/foundations/_category_.json +0 -5
  402. package/docs/zh/apis/app/hooks/_category_.json +0 -5
  403. package/docs/zh/apis/app/hooks/api/_category_.json +0 -4
  404. package/docs/zh/apis/app/hooks/config/_category_.json +0 -4
  405. package/docs/zh/apis/app/hooks/server/_category_.json +0 -4
  406. package/docs/zh/apis/app/hooks/src/_category_.json +0 -4
  407. package/docs/zh/apis/app/runtime/_category_.json +0 -5
  408. package/docs/zh/apis/app/runtime/app/_category_.json +0 -4
  409. package/docs/zh/apis/app/runtime/bff/_category_.json +0 -4
  410. package/docs/zh/apis/app/runtime/core/_category_.json +0 -4
  411. package/docs/zh/apis/app/runtime/model/_category_.json +0 -4
  412. package/docs/zh/apis/app/runtime/router/_category_.json +0 -4
  413. package/docs/zh/apis/app/runtime/ssr/_category_.json +0 -4
  414. package/docs/zh/apis/app/runtime/utility/_category_.json +0 -4
  415. package/docs/zh/apis/app/runtime/web-server/_category_.json +0 -4
  416. package/docs/zh/community/blog/_category_.json +0 -6
  417. package/docs/zh/configure/app/bff/_category_.json +0 -4
  418. package/docs/zh/configure/app/deploy/_category_.json +0 -4
  419. package/docs/zh/configure/app/dev/_category_.json +0 -4
  420. package/docs/zh/configure/app/experiments/_category_.json +0 -4
  421. package/docs/zh/configure/app/html/_category_.json +0 -4
  422. package/docs/zh/configure/app/output/_category_.json +0 -4
  423. package/docs/zh/configure/app/performance/_category_.json +0 -4
  424. package/docs/zh/configure/app/runtime/_category_.json +0 -4
  425. package/docs/zh/configure/app/security/_category_.json +0 -4
  426. package/docs/zh/configure/app/server/_category_.json +0 -4
  427. package/docs/zh/configure/app/source/_category_.json +0 -4
  428. package/docs/zh/configure/app/tools/_category_.json +0 -4
  429. package/docs/zh/guides/advanced-features/_category_.json +0 -5
  430. package/docs/zh/guides/advanced-features/bff/_category_.json +0 -8
  431. package/docs/zh/guides/advanced-features/ssr/_category_.json +0 -8
  432. package/docs/zh/guides/basic-features/_category_.json +0 -5
  433. package/docs/zh/guides/basic-features/data/_category_.json +0 -4
  434. package/docs/zh/guides/concept/_category_.json +0 -5
  435. package/docs/zh/guides/get-started/_category_.json +0 -5
  436. package/docs/zh/guides/topic-detail/_category_.json +0 -5
  437. package/docs/zh/guides/topic-detail/framework-plugin/_category_.json +0 -4
  438. package/docs/zh/guides/topic-detail/generator/_category_.json +0 -4
  439. package/docs/zh/guides/topic-detail/generator/create/_category_.json +0 -4
  440. package/docs/zh/guides/topic-detail/generator/new/_category_.json +0 -4
  441. package/docs/zh/guides/topic-detail/generator/plugin/_category_.json +0 -4
  442. package/docs/zh/guides/topic-detail/generator/plugin/api/_category_.json +0 -4
  443. package/docs/zh/guides/topic-detail/micro-frontend/_category_.json +0 -4
  444. package/docs/zh/guides/topic-detail/model/_category_.json +0 -4
  445. package/docs/zh/guides/troubleshooting/_category_.json +0 -5
  446. package/docs/zh/tutorials/examples/_category_.json +0 -5
  447. package/docs/zh/tutorials/first-app/_category_.json +0 -5
  448. package/docs/zh/tutorials/foundations/_category_.json +0 -5
  449. /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