@modern-js/main-doc 2.4.0 → 2.5.0

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 (280) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/LICENSE +0 -123
  3. package/README.md +26 -0
  4. package/en/apis/app/commands/_category_.json +1 -4
  5. package/en/apis/app/commands/new.mdx +11 -10
  6. package/en/apis/app/commands/test.mdx +1 -1
  7. package/en/apis/app/hooks/_category_.json +1 -4
  8. package/en/apis/app/hooks/api/framework/lambda.mdx +1 -1
  9. package/en/apis/app/hooks/api/functions/api.mdx +1 -1
  10. package/en/apis/app/hooks/server/index_.mdx +2 -1
  11. package/en/apis/app/hooks/src/pages.mdx +7 -7
  12. package/en/apis/app/hooks/src/routes.mdx +1 -1
  13. package/en/apis/app/runtime/_category_.json +1 -5
  14. package/en/apis/app/runtime/app/define-config.mdx +2 -2
  15. package/en/apis/app/runtime/core/bootstrap.mdx +1 -1
  16. package/en/apis/app/runtime/core/create-app.mdx +2 -2
  17. package/en/apis/app/runtime/core/use-loader.mdx +4 -4
  18. package/en/apis/app/runtime/core/use-module-apps.mdx +2 -2
  19. package/en/apis/app/runtime/model/Provider.mdx +2 -2
  20. package/en/apis/app/runtime/model/auto-actions.mdx +2 -2
  21. package/en/apis/app/runtime/model/connect.mdx +5 -5
  22. package/en/apis/app/runtime/model/create-app.mdx +9 -9
  23. package/en/apis/app/runtime/model/create-store.mdx +3 -3
  24. package/en/apis/app/runtime/model/handle-effect.mdx +2 -2
  25. package/en/apis/app/runtime/model/model_.mdx +1 -1
  26. package/en/apis/app/runtime/model/use-local-model.mdx +1 -1
  27. package/en/apis/app/runtime/model/use-model.mdx +1 -1
  28. package/en/apis/app/runtime/model/use-static-model.mdx +4 -4
  29. package/en/apis/app/runtime/model/use-store.mdx +1 -1
  30. package/en/apis/app/runtime/router/router.mdx +1 -1
  31. package/en/apis/app/runtime/ssr/pre-render.mdx +1 -1
  32. package/en/apis/app/runtime/testing/render.mdx +1 -1
  33. package/en/apis/app/runtime/testing/renderApp.mdx +1 -1
  34. package/en/apis/app/runtime/utility/css-in-js.mdx +1 -1
  35. package/en/apis/app/runtime/utility/loadable.mdx +1 -1
  36. package/en/apis/app/runtime/web-server/hook.mdx +5 -5
  37. package/en/apis/app/runtime/web-server/middleware.mdx +6 -6
  38. package/en/components/global-proxy-config.mdx +3 -3
  39. package/en/configure/app/bff/_category_.json +4 -0
  40. package/en/configure/app/builder-plugins.mdx +3 -3
  41. package/en/configure/app/deploy/_category_.json +4 -0
  42. package/en/configure/app/dev/_category_.json +4 -0
  43. package/en/configure/app/dev/asset-prefix.mdx +1 -1
  44. package/en/configure/app/dev/hmr.mdx +1 -1
  45. package/en/configure/app/dev/https.mdx +1 -1
  46. package/en/configure/app/dev/port.mdx +1 -1
  47. package/en/configure/app/dev/progress-bar.mdx +1 -1
  48. package/en/configure/app/dev/start-url.mdx +1 -1
  49. package/en/configure/app/experiments/_category_.json +4 -0
  50. package/en/configure/app/experiments/lazy-compilation.mdx +1 -1
  51. package/en/configure/app/html/_category_.json +4 -0
  52. package/en/configure/app/html/app-icon.mdx +1 -1
  53. package/en/configure/app/html/crossorigin.mdx +1 -1
  54. package/en/configure/app/html/disable-html-folder.mdx +1 -1
  55. package/en/configure/app/html/favicon-by-entries.mdx +1 -1
  56. package/en/configure/app/html/favicon.mdx +1 -1
  57. package/en/configure/app/html/inject-by-entries.mdx +1 -1
  58. package/en/configure/app/html/inject.mdx +1 -1
  59. package/en/configure/app/html/meta-by-entries.mdx +1 -1
  60. package/en/configure/app/html/meta.mdx +1 -1
  61. package/en/configure/app/html/mount-id.mdx +1 -1
  62. package/en/configure/app/html/tags-by-entries.mdx +1 -1
  63. package/en/configure/app/html/tags.mdx +1 -1
  64. package/en/configure/app/html/template-by-entries.mdx +1 -1
  65. package/en/configure/app/html/template-parameters-by-entries.mdx +1 -1
  66. package/en/configure/app/html/template-parameters.mdx +1 -1
  67. package/en/configure/app/html/template.mdx +1 -1
  68. package/en/configure/app/html/title-by-entries.mdx +1 -1
  69. package/en/configure/app/html/title.mdx +1 -1
  70. package/en/configure/app/output/_category_.json +4 -0
  71. package/en/configure/app/output/asset-prefix.mdx +1 -1
  72. package/en/configure/app/output/assets-retry.mdx +1 -1
  73. package/en/configure/app/output/charset.mdx +1 -1
  74. package/en/configure/app/output/clean-dist-path.mdx +1 -1
  75. package/en/configure/app/output/convert-to-rem.mdx +1 -1
  76. package/en/configure/app/output/copy.mdx +1 -1
  77. package/en/configure/app/output/css-module-local-ident-name.mdx +1 -1
  78. package/en/configure/app/output/data-uri-limit.mdx +1 -1
  79. package/en/configure/app/output/disable-css-extract.mdx +1 -1
  80. package/en/configure/app/output/disable-css-module-extension.mdx +1 -1
  81. package/en/configure/app/output/disable-filename-hash.mdx +1 -1
  82. package/en/configure/app/output/disable-inline-runtime-chunk.mdx +1 -1
  83. package/en/configure/app/output/disable-minimize.mdx +1 -1
  84. package/en/configure/app/output/disable-source-map.mdx +1 -1
  85. package/en/configure/app/output/disable-ts-checker.mdx +1 -1
  86. package/en/configure/app/output/dist-path.mdx +1 -1
  87. package/en/configure/app/output/enable-asset-fallback.mdx +1 -1
  88. package/en/configure/app/output/enable-asset-manifest.mdx +1 -1
  89. package/en/configure/app/output/enable-css-module-tsdeclaration.mdx +1 -1
  90. package/en/configure/app/output/enable-inline-scripts.mdx +1 -1
  91. package/en/configure/app/output/enable-inline-styles.mdx +1 -1
  92. package/en/configure/app/output/enable-latest-decorators.mdx +1 -1
  93. package/en/configure/app/output/externals.mdx +1 -1
  94. package/en/configure/app/output/filename.mdx +1 -1
  95. package/en/configure/app/output/legal-comments.mdx +1 -1
  96. package/en/configure/app/output/override-browserslist.mdx +1 -1
  97. package/en/configure/app/output/polyfill.mdx +1 -1
  98. package/en/configure/app/output/ssg.mdx +2 -2
  99. package/en/configure/app/output/svg-default-export.mdx +1 -1
  100. package/en/configure/app/performance/_category_.json +4 -0
  101. package/en/configure/app/performance/build-cache.mdx +1 -1
  102. package/en/configure/app/performance/bundle-analyze.mdx +1 -1
  103. package/en/configure/app/performance/chunk-split.mdx +1 -1
  104. package/en/configure/app/performance/print-file-size.mdx +1 -1
  105. package/en/configure/app/performance/profile.mdx +1 -1
  106. package/en/configure/app/performance/remove-console.mdx +1 -1
  107. package/en/configure/app/performance/remove-moment-locale.mdx +1 -1
  108. package/en/configure/app/plugins.mdx +1 -1
  109. package/en/configure/app/runtime/_category_.json +4 -0
  110. package/en/configure/app/runtime/intro.mdx +2 -2
  111. package/en/configure/app/security/_category_.json +4 -0
  112. package/en/configure/app/security/check-syntax.mdx +1 -1
  113. package/en/configure/app/security/sri.mdx +1 -1
  114. package/en/configure/app/server/_category_.json +4 -0
  115. package/en/configure/app/server/base-url.mdx +3 -3
  116. package/en/configure/app/server/enable-framework-ext.mdx +1 -1
  117. package/en/configure/app/server/ssr-by-entries.mdx +1 -1
  118. package/en/configure/app/source/_category_.json +4 -0
  119. package/en/configure/app/source/alias.mdx +1 -1
  120. package/en/configure/app/source/compile-js-data-uri.mdx +1 -1
  121. package/en/configure/app/source/define.mdx +1 -1
  122. package/en/configure/app/source/design-system.mdx +5 -5
  123. package/en/configure/app/source/entries.mdx +3 -3
  124. package/en/configure/app/source/exclude.mdx +1 -1
  125. package/en/configure/app/source/global-vars.mdx +1 -1
  126. package/en/configure/app/source/include.mdx +1 -1
  127. package/en/configure/app/source/module-scopes.mdx +1 -1
  128. package/en/configure/app/source/pre-entry.mdx +1 -1
  129. package/en/configure/app/source/resolve-extension-prefix.mdx +1 -1
  130. package/en/configure/app/source/resolve-main-fields.mdx +1 -1
  131. package/en/configure/app/testing/_category_.json +4 -0
  132. package/en/configure/app/tools/_category_.json +4 -0
  133. package/en/configure/app/tools/autoprefixer.mdx +1 -1
  134. package/en/configure/app/tools/babel.mdx +1 -1
  135. package/en/configure/app/tools/css-extract.mdx +1 -1
  136. package/en/configure/app/tools/css-loader.mdx +1 -1
  137. package/en/configure/app/tools/dev-server.mdx +1 -1
  138. package/en/configure/app/tools/html-plugin.mdx +1 -1
  139. package/en/configure/app/tools/inspector.mdx +1 -1
  140. package/en/configure/app/tools/less.mdx +1 -1
  141. package/en/configure/app/tools/minify-css.mdx +1 -1
  142. package/en/configure/app/tools/postcss.mdx +1 -1
  143. package/en/configure/app/tools/pug.mdx +1 -1
  144. package/en/configure/app/tools/rspack.mdx +13 -0
  145. package/en/configure/app/tools/sass.mdx +1 -1
  146. package/en/configure/app/tools/style-loader.mdx +1 -1
  147. package/en/configure/app/tools/styled-components.mdx +1 -1
  148. package/en/configure/app/tools/tailwindcss.mdx +1 -1
  149. package/en/configure/app/tools/terser.mdx +1 -1
  150. package/en/configure/app/tools/ts-checker.mdx +1 -1
  151. package/en/configure/app/tools/ts-loader.mdx +1 -1
  152. package/en/configure/app/tools/webpack-chain.mdx +1 -1
  153. package/en/configure/app/tools/webpack.mdx +1 -1
  154. package/en/configure/app/usage.mdx +1 -1
  155. package/en/guides/advanced-features/_category_.json +2 -2
  156. package/en/guides/advanced-features/bff/bff-proxy.mdx +1 -1
  157. package/en/guides/advanced-features/bff/frameworks.mdx +1 -1
  158. package/en/guides/advanced-features/bff/function.mdx +3 -3
  159. package/en/guides/advanced-features/code-split.mdx +2 -2
  160. package/en/guides/advanced-features/compatibility.mdx +2 -3
  161. package/en/guides/advanced-features/eslint.mdx +4 -4
  162. package/en/guides/advanced-features/low-level.mdx +1 -1
  163. package/en/guides/advanced-features/ssg.mdx +4 -5
  164. package/en/guides/advanced-features/ssr.mdx +3 -3
  165. package/en/guides/advanced-features/testing.mdx +4 -5
  166. package/en/guides/advanced-features/web-server.mdx +0 -1
  167. package/en/guides/basic-features/alias.mdx +1 -1
  168. package/en/guides/basic-features/data-fetch.mdx +21 -8
  169. package/en/guides/basic-features/env-vars.mdx +1 -1
  170. package/en/guides/basic-features/html.mdx +11 -11
  171. package/en/guides/basic-features/mock.mdx +21 -1
  172. package/en/guides/basic-features/proxy.mdx +2 -2
  173. package/en/guides/basic-features/routes.mdx +6 -8
  174. package/en/guides/{basic-features → concept}/builder.mdx +1 -1
  175. package/en/guides/concept/entries.mdx +11 -11
  176. package/en/guides/css/_category_.json +5 -0
  177. package/en/guides/{basic-features/css → css}/css-in-js.mdx +0 -0
  178. package/en/guides/{basic-features/css → css}/css-modules.mdx +0 -0
  179. package/en/guides/{basic-features/css → css}/less-sass.mdx +1 -1
  180. package/en/guides/{basic-features/css → css}/postcss.mdx +0 -0
  181. package/en/guides/{basic-features/css → css}/tailwindcss.mdx +0 -0
  182. package/en/guides/get-started/introduction.mdx +34 -0
  183. package/en/guides/get-started/quick-start.mdx +2 -2
  184. package/en/guides/get-started/upgrade.mdx +2 -1
  185. package/en/guides/topic-detail/_category_.json +2 -2
  186. package/en/guides/topic-detail/framework-plugin/hook.mdx +1 -1
  187. package/en/guides/topic-detail/generator/plugin/api/hook/onForged.mdx +1 -1
  188. package/en/guides/topic-detail/generator/plugin/develop.mdx +1 -1
  189. package/en/guides/topic-detail/micro-frontend/c02-development.mdx +128 -61
  190. package/en/guides/topic-detail/micro-frontend/c03-main-app.mdx +72 -41
  191. package/en/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +1 -1
  192. package/en/guides/topic-detail/model/auto-actions.mdx +1 -1
  193. package/en/guides/topic-detail/model/define-model.mdx +1 -1
  194. package/en/guides/topic-detail/model/manage-effects.mdx +1 -1
  195. package/en/guides/topic-detail/model/model-communicate.mdx +1 -1
  196. package/en/guides/topic-detail/model/quick-start.mdx +2 -2
  197. package/en/guides/topic-detail/model/test-model.mdx +1 -1
  198. package/en/guides/topic-detail/model/use-model.mdx +3 -3
  199. package/en/guides/troubleshooting/_category_.json +2 -2
  200. package/en/guides/troubleshooting/cli.mdx +1 -1
  201. package/en/index.md +1 -1
  202. package/en/tutorials/first-app/_category_.json +1 -1
  203. package/en/tutorials/first-app/c01-start.mdx +0 -1
  204. package/en/tutorials/first-app/c03-css.mdx +1 -2
  205. package/en/tutorials/first-app/c06-model.mdx +1 -1
  206. package/en/tutorials/first-app/c07-container.mdx +1 -1
  207. package/en/tutorials/first-app/c08-entries.mdx +1 -2
  208. package/en/tutorials/foundations/introduction.mdx +17 -34
  209. package/package.json +3 -3
  210. package/scripts/config.ts +3 -1
  211. package/scripts/summary.en.json +1 -1
  212. package/scripts/summary.zh.json +1 -1
  213. package/zh/apis/app/commands/_category_.json +1 -4
  214. package/zh/apis/app/hooks/_category_.json +1 -4
  215. package/zh/apis/app/hooks/src/pages.mdx +1 -1
  216. package/zh/apis/app/hooks/src/routes.mdx +1 -1
  217. package/zh/apis/app/runtime/_category_.json +1 -5
  218. package/zh/apis/app/runtime/core/create-app.mdx +1 -1
  219. package/zh/apis/app/runtime/core/use-module-apps.mdx +81 -40
  220. package/zh/apis/app/runtime/model/Provider.mdx +2 -2
  221. package/zh/apis/app/runtime/model/create-app.mdx +7 -7
  222. package/zh/apis/app/runtime/model/create-store.mdx +2 -2
  223. package/zh/apis/app/runtime/model/use-local-model.mdx +1 -1
  224. package/zh/apis/app/runtime/model/use-static-model.mdx +1 -1
  225. package/zh/apis/app/runtime/model/use-store.mdx +1 -1
  226. package/zh/apis/app/runtime/testing/renderApp.mdx +1 -1
  227. package/zh/components/micro-runtime-config.mdx +6 -6
  228. package/zh/components/release-note.mdx +1 -1
  229. package/zh/configure/app/builder-plugins.mdx +3 -3
  230. package/zh/configure/app/plugins.mdx +1 -1
  231. package/zh/configure/app/server/ssr-by-entries.mdx +1 -1
  232. package/zh/configure/app/tools/rspack.mdx +13 -0
  233. package/zh/configure/app/usage.mdx +1 -1
  234. package/zh/guides/advanced-features/_category_.json +2 -6
  235. package/zh/guides/advanced-features/compatibility.mdx +0 -1
  236. package/zh/guides/advanced-features/ssg.mdx +0 -1
  237. package/zh/guides/advanced-features/testing.mdx +0 -1
  238. package/zh/guides/advanced-features/web-server.mdx +0 -1
  239. package/zh/guides/basic-features/_category_.json +1 -5
  240. package/zh/guides/basic-features/alias.mdx +1 -1
  241. package/zh/guides/basic-features/data-fetch.mdx +35 -26
  242. package/zh/guides/basic-features/html.mdx +10 -9
  243. package/zh/guides/basic-features/mock.mdx +20 -0
  244. package/zh/guides/basic-features/routes.mdx +15 -10
  245. package/zh/guides/{basic-features → concept}/builder.mdx +2 -2
  246. package/zh/guides/concept/entries.mdx +11 -11
  247. package/zh/guides/css/_category_.json +5 -0
  248. package/zh/guides/{basic-features/css → css}/css-in-js.mdx +0 -0
  249. package/zh/guides/{basic-features/css → css}/css-modules.mdx +0 -0
  250. package/zh/guides/{basic-features/css → css}/less-sass.mdx +1 -1
  251. package/zh/guides/{basic-features/css → css}/postcss.mdx +5 -4
  252. package/zh/guides/{basic-features/css → css}/tailwindcss.mdx +0 -1
  253. package/zh/guides/get-started/introduction.mdx +31 -0
  254. package/zh/guides/get-started/quick-start.mdx +2 -3
  255. package/zh/guides/get-started/upgrade.mdx +2 -1
  256. package/zh/guides/topic-detail/_category_.json +2 -2
  257. package/zh/guides/topic-detail/generator/plugin/api/input/addInputBefore.mdx +1 -1
  258. package/zh/guides/topic-detail/micro-frontend/c02-development.mdx +25 -0
  259. package/zh/guides/topic-detail/micro-frontend/c03-main-app.mdx +15 -15
  260. package/zh/guides/topic-detail/model/model-communicate.mdx +1 -1
  261. package/zh/guides/troubleshooting/_category_.json +2 -2
  262. package/zh/index.md +1 -1
  263. package/zh/tutorials/first-app/_category_.json +1 -1
  264. package/zh/tutorials/first-app/c01-start.mdx +1 -2
  265. package/zh/tutorials/first-app/c03-css.mdx +1 -2
  266. package/zh/tutorials/first-app/c06-model.mdx +2 -2
  267. package/zh/tutorials/first-app/c07-container.mdx +1 -1
  268. package/zh/tutorials/first-app/c08-entries.mdx +2 -3
  269. package/zh/tutorials/foundations/introduction.mdx +14 -29
  270. package/en/apis/app/commands/index.mdx +0 -7
  271. package/en/apis/app/hooks/index.mdx +0 -7
  272. package/en/apis/app/runtime/index.mdx +0 -7
  273. package/en/guides/advanced-features/index.mdx +0 -7
  274. package/en/guides/basic-features/css/_category_.json +0 -4
  275. package/zh/apis/app/commands/index.mdx +0 -7
  276. package/zh/apis/app/hooks/index.mdx +0 -7
  277. package/zh/apis/app/runtime/index.mdx +0 -7
  278. package/zh/guides/advanced-features/index.mdx +0 -7
  279. package/zh/guides/basic-features/css/_category_.json +0 -4
  280. package/zh/guides/basic-features/index.mdx +0 -7
@@ -8,7 +8,7 @@ import ReduckTip from "@site-docs/components/reduck-tip"
8
8
 
9
9
  <ReduckTip />
10
10
 
11
- 用于把 Model 中的 State 作为局部状态使用,效果类似 React 的 `useState`。`useLocalModel` API 形式上与 `useModel` 完全一致。具体使用请参考 [`useModel`](./use-model.md)。
11
+ 用于把 Model 中的 State 作为局部状态使用,效果类似 React 的 `useState`。`useLocalModel` API 形式上与 `useModel` 完全一致。具体使用请参考 [`useModel`](./use-model.mdx)。
12
12
 
13
13
  #### 示例
14
14
 
@@ -8,7 +8,7 @@ import ReduckTip from "@site-docs/components/reduck-tip"
8
8
 
9
9
  <ReduckTip />
10
10
 
11
- 如果想在组件里以 React Hook 的形式消费某个 Model,并能随时获取到当前最新的状态,但又不希望 Model 状态更新的时候,引起组件的重新渲染,可以使用 `useStaticModel`。`useStaticModel` API 形式上与 `useModel` 完全一致。具体使用请参考 [`useModel`](./use-model.md)。
11
+ 如果想在组件里以 React Hook 的形式消费某个 Model,并能随时获取到当前最新的状态,但又不希望 Model 状态更新的时候,引起组件的重新渲染,可以使用 `useStaticModel`。`useStaticModel` API 形式上与 `useModel` 完全一致。具体使用请参考 [`useModel`](./use-model.mdx)。
12
12
 
13
13
  为了保证总是能获取到最新状态,注意不要对返回的 `state` 解构。
14
14
 
@@ -18,7 +18,7 @@ function useStore(): ReduckStore;
18
18
 
19
19
  ### 返回值
20
20
 
21
- - ReduckStore:Reduck Store,类型参考 [createStore](./create-store.md) 返回值。
21
+ - ReduckStore:Reduck Store,类型参考 [createStore](./create-store.mdx) 返回值。
22
22
 
23
23
  :::info 更多参考
24
24
  [使用 Model](/guides/topic-detail/model/use-model#在组件外使用)
@@ -15,7 +15,7 @@ import { renderApp } from '@modern-js/runtime/testing';
15
15
 
16
16
  ## 函数签名
17
17
 
18
- `renderApp` 和 [render](./render.md) 完全一致。
18
+ `renderApp` 和 [render](./render.mdx) 完全一致。
19
19
 
20
20
  ## 示例
21
21
 
@@ -4,13 +4,13 @@ import { defineConfig } from '@modern-js/runtime';
4
4
  defineConfig(App, {
5
5
  masterApp: {
6
6
  apps: [{
7
- name: 'SubConvention',
8
- entry: 'http://localhost:3002',
9
- // activeWhen: '/SubConvention'
7
+ name: 'Table',
8
+ entry: 'http://localhost:8001',
9
+ // activeWhen: '/table'
10
10
  }, {
11
- name: 'SubCustom',
12
- entry: 'http://localhost:3003'
13
- // activeWhen: '/SubConvention'
11
+ name: 'Dashboard',
12
+ entry: 'http://localhost:8002'
13
+ // activeWhen: '/dashboard'
14
14
  }]
15
15
  },
16
16
  });
@@ -1 +1 @@
1
- 根据官网 [Release Note](https://github.com/modern-js-dev/modern.js/releases/tag/v1.22.1),开发者也可以手动将项目升级到想要的版本。
1
+ 根据官网 [Release Note](https://github.com/modern-js-dev/modern.js/releases),开发者也可以手动将项目升级到想要的版本。
@@ -9,7 +9,7 @@ sidebar_position: 10
9
9
 
10
10
  用于配置 Modern.js Builder 构建插件。
11
11
 
12
- Modern.js Builder 是 Modern.js 底层的构建引擎,请阅读 [构建能力](/guides/basic-features/builder) 了解相关背景。
12
+ Modern.js Builder 是 Modern.js 底层的构建引擎,请阅读 [构建能力](/guides/concept/builder) 了解相关背景。
13
13
 
14
14
  如果你想了解 Builder 插件的编写方式,可以参考 [Modern.js Builder - 插件系统](https://modernjs.dev/builder/plugins/introduction.html)。
15
15
 
@@ -17,13 +17,13 @@ Modern.js Builder 是 Modern.js 底层的构建引擎,请阅读 [构建能力]
17
17
 
18
18
  该选项**用于配置 Modern.js Builder 构建插件**,如果你需要配置其他类型的插件,请选择对应的配置方式:
19
19
 
20
- - 配置 Modern.js 框架插件,请使用 [plugins](docs/configure/app/plugins) 配置项。
20
+ - 配置 Modern.js 框架插件,请使用 [plugins](/configure/app/plugins) 配置项。
21
21
  - 配置 webpack 插件,请使用 [tools.webpack](/configure/app/tools/webpack) 或 [tools.webpackChain](/configure/app/tools/webpack-chain) 配置项。
22
22
  - 配置 Babel 插件,请使用 [tools.babel](/configure/app/tools/babel) 配置项。
23
23
 
24
24
  ## 何时使用
25
25
 
26
- 大部分场景下,我们推荐你使用 Modern.js 框架插件,框架插件可以通过 [plugins](docs/configure/app/plugins) 字段进行注册。因为框架插件提供的 API 更丰富、能力更强,而 Builder 插件提供的 API 只能用于构建场景。
26
+ 大部分场景下,我们推荐你使用 Modern.js 框架插件,框架插件可以通过 [plugins](/configure/app/plugins) 字段进行注册。因为框架插件提供的 API 更丰富、能力更强,而 Builder 插件提供的 API 只能用于构建场景。
27
27
 
28
28
  当你需要引用一些现有的 Builder 插件(并且在 Modern.js 中没有相关能力),或是在不同的框架之间复用 Builder 插件时,你可以使用 `builderPlugins` 字段进行注册。
29
29
 
@@ -15,7 +15,7 @@ sidebar_position: 9
15
15
 
16
16
  该选项**用于配置框架插件**,如果你需要配置其他类型的插件,请选择对应的配置方式:
17
17
 
18
- - 配置 Modern.js Builder 插件,请使用 [builderPlugins](docs/configure/app/builder-plugins) 配置项。
18
+ - 配置 Modern.js Builder 插件,请使用 [builderPlugins](/configure/app/builder-plugins) 配置项。
19
19
  - 配置 webpack 插件,请使用 [tools.webpack](/configure/app/tools/webpack) 或 [tools.webpackChain](/configure/app/tools/webpack-chain) 配置项。
20
20
  - 配置 Babel 插件,请使用 [tools.babel](/configure/app/tools/babel) 配置项。
21
21
 
@@ -7,7 +7,7 @@ sidebar_label: ssrByEntries
7
7
  - **类型:** `Object`
8
8
  - **默认值:** `undefined`
9
9
 
10
- 按入口设置 ssr 选项,选项内的属性同 [ssr](./ssr.md),指定值会和 ssr 属性内容做替换合并操作,例如:
10
+ 按入口设置 ssr 选项,选项内的属性同 [ssr](./ssr.mdx),指定值会和 ssr 属性内容做替换合并操作,例如:
11
11
 
12
12
  :::info
13
13
  「 入口名 」默认为目录名,少数情况下通过 `source.entries` 自定义入口时,入口名为 `source.entries` 对象的 `key`。
@@ -0,0 +1,13 @@
1
+ ---
2
+ sidebar_label: rspack
3
+ ---
4
+
5
+ # tools.rspack
6
+
7
+ :::tip
8
+ 该配置由 Modern.js Builder 提供,更多信息可参考 [tools.rspack](https://modernjs.dev/builder/api/config-tools.html#toolsrspack)。
9
+ :::
10
+
11
+ import Main from '@modern-js/builder-doc/docs/zh/config/tools/rspack.md'
12
+
13
+ <Main />
@@ -12,7 +12,7 @@ Modern.js 中有两种配置,一个是编译时配置,一个是服务端运
12
12
  - `package.json` 文件
13
13
 
14
14
  :::info
15
- 不支持同时在 package.json 中和 modern.config.ts 中配置同一个配置项,推荐优先在 modern.config.ts 中进行配置。如果 Modern.js 检测到重复配置导致的冲突,将会抛出警告。
15
+ Modern.js 不支持同时在 package.json 中和 modern.config.ts 中配置同一个配置项,推荐优先在 modern.config.ts 中进行配置。如果 Modern.js 检测到重复配置导致的冲突,将会抛出警告。
16
16
  :::
17
17
 
18
18
  服务端运行时配置可以在根路径下的 `modern.server-runtime.config.(ts|js|mjs)` 中自定义配置选项。
@@ -1,9 +1,5 @@
1
1
  {
2
2
  "label": "进阶功能",
3
- "position": 4,
4
- "collapsed": true,
5
- "link": {
6
- "type": "doc",
7
- "id": "guides/advanced-features/index"
8
- }
3
+ "position": 6,
4
+ "collapsed": false
9
5
  }
@@ -55,7 +55,6 @@ Modern.js 中还提供了基于浏览器 [UA](https://developer.mozilla.org/zh-C
55
55
  ```ts title="modern.config.ts"
56
56
  import polyfillPlugin from '@modern-js/plugin-polyfill';
57
57
 
58
- // https://modernjs.dev/docs/apis/app/config
59
58
  export default defineConfig({
60
59
  plugins: [..., polyfillPlugin()],
61
60
  });
@@ -18,7 +18,6 @@ SSG(Static Site Generation)是一种基于数据与模板,在构建时渲
18
18
  ```ts title="modern.config.ts"
19
19
  import ssgPlugin from '@modern-js/plugin-ssg';
20
20
 
21
- // https://modernjs.dev/docs/apis/app/config
22
21
  export default defineConfig({
23
22
  output: {
24
23
  ssg: true,
@@ -20,7 +20,6 @@ Modern.js 默认继承了 [Jest](https://jestjs.io/) 的测试能力。
20
20
  ```ts title="modern.config.ts"
21
21
  import testPlugin from '@modern-js/plugin-testing';
22
22
 
23
- // https://modernjs.dev/docs/apis/app/config
24
23
  export default defineConfig({
25
24
  ...,
26
25
  plugins: [..., testPlugin()],
@@ -22,7 +22,6 @@ Modern.js 作为以客户端为中心的开发框架,对服务端的定制能
22
22
  ```ts title="modern.config.ts"
23
23
  import serverPlugin from '@modern-js/plugin-server';
24
24
 
25
- // https://modernjs.dev/docs/apis/app/config
26
25
  export default defineConfig({
27
26
  plugins: [..., serverPlugin()],
28
27
  });
@@ -1,9 +1,5 @@
1
1
  {
2
2
  "label": "基础功能",
3
3
  "position": 3,
4
- "collapsed": false,
5
- "link": {
6
- "type": "doc",
7
- "id": "guides/basic-features/index"
8
- }
4
+ "collapsed": false
9
5
  }
@@ -62,4 +62,4 @@ export default defineConfig({
62
62
  });
63
63
  ```
64
64
 
65
- 具体别名配置可以参考 [API 资料 - source.alias](/configure/app/source/alias)】。
65
+ 对于别名配置的具体用法,请参考 [source.alias 文档](/configure/app/source/alias)
@@ -2,6 +2,7 @@
2
2
  title: 数据获取
3
3
  sidebar_position: 3
4
4
  ---
5
+
5
6
  # 数据获取
6
7
 
7
8
  Modern.js 中提供了开箱即用的数据获取能力,开发者可以通过这些 API,在 CSR 和 SSR 环境同构的进行开发。
@@ -220,38 +221,46 @@ export default function UserLayout() {
220
221
 
221
222
  :::
222
223
 
224
+ 创建 `user/layout.loader.ts`,并添加以下代码:
225
+
226
+ ```ts title="routes/user/layout.loader.ts"
227
+ import { defer } from "@edenx/runtime/router"
228
+
229
+ const loader = () =>
230
+ defer({
231
+ userInfo: new Promise((resolve) => {
232
+ setTimeout(() => {
233
+ resolve({
234
+ age: 1,
235
+ name: 'user layout'
236
+ })
237
+ }, 1000)
238
+ })
239
+ })
240
+
241
+ export default loader;
242
+ ```
243
+
223
244
  在 `user/layout.tsx` 中添加以下代码:
224
245
 
225
246
  ```tsx title="routes/user/layout.tsx"
226
- import {
227
- Await,
228
- defer,
229
- useLoaderData,
230
- Outlet
231
- } from '@modern-js/runtime/router';
232
-
233
- export const loader = () => {
234
- return defer({
235
- // fetchUserInfo 是一个异步函数,返回用户信息
236
- userInfo: fetchUserInfo(),
237
- })
238
- }
247
+ import { Await, defer, useLoaderData, Outlet } from '@modern-js/runtime/router';
239
248
 
240
249
  export default function UserLayout() {
241
- const { userInfo } = useLoaderData() as {userInfo: Promise<UserInfo>};
250
+ const { userInfo } = useLoaderData() as { userInfo: Promise<UserInfo> };
242
251
  return (
243
252
  <div>
244
- <React.Suspense
245
- fallback={<p>Loading...</p>}
246
- >
247
- <Await resolve={userInfo} children={userInfo => (
248
- <div>
249
- <span>{userInfo.name}</span>
250
- <span>{userInfo.age}</span>
251
- <Outlet>
252
- </div>
253
- )}>
254
- </Await>
253
+ <React.Suspense fallback={<p>Loading...</p>}>
254
+ <Await
255
+ resolve={userInfo}
256
+ children={userInfo => (
257
+ <div>
258
+ <span>{userInfo.name}</span>
259
+ <span>{userInfo.age}</span>
260
+ <Outlet />
261
+ </div>
262
+ )}
263
+ ></Await>
255
264
  </React.Suspense>
256
265
  </div>
257
266
  );
@@ -265,7 +274,7 @@ defer 的具体用法请查看 [defer](https://reactrouter.com/en/main/guides/de
265
274
 
266
275
  :::
267
276
 
268
- {/* TODO 缓存相关 */}
277
+ {/* TODO 缓存相关 */}
269
278
 
270
279
  ### 错误用法
271
280
 
@@ -2,9 +2,10 @@
2
2
  title: HTML 模板
3
3
  sidebar_position: 9
4
4
  ---
5
+
5
6
  # HTML 模板
6
7
 
7
- Modern.js 提供了 **JSX 语法**和**HTML(Ejs) 语法**两种方式用于自定义 HTML 模板。
8
+ Modern.js 提供了 **JSX 语法**和 **HTML(EJS) 语法**两种方式用于自定义 HTML 模板。
8
9
 
9
10
  ## JSX 语法
10
11
 
@@ -14,14 +15,14 @@ Modern.js 约定,在 `src/` 目录下,或在入口目录下,可以创建 `
14
15
 
15
16
  ```bash
16
17
  .
17
- ├── src
18
- │   ├── Document.tsx
19
- │   ├── entry-a
20
-    │   ├── Document.tsx
21
-    │   └── routes
22
- │   ├── entry-b
23
-    │   └── routes
24
- │   └── modern-app-env.d.ts
18
+ └── src
19
+ ├── Document.tsx
20
+ ├── entry-a
21
+ ├── Document.tsx
22
+ └── routes
23
+ ├── entry-b
24
+ └── routes
25
+ └── modern-app-env.d.ts
25
26
  ```
26
27
 
27
28
  `entry-a` 会优先使用当前入口下的 `Docoument.[jt]sx` 文件。如果当前入口没有 `Document.[jt]sx` 文件,例如 `entry-b`,则会查找根目录下的 `Document.[jt]sx` 文件。
@@ -77,3 +77,23 @@ module.exports = {
77
77
  },
78
78
  };
79
79
  ```
80
+
81
+ ## 按需使用 Mock 服务
82
+
83
+ `config/mock/index.ts` 下还可以到处 `config` 对象,更精细的控制 Mock 服务。
84
+
85
+ ```ts
86
+ type MockConfig = {
87
+ enable: ((req: IncomingMessage, res: ServerResponse) => boolean) | boolean;
88
+ };
89
+
90
+ export const config = {
91
+ enable: false
92
+ }
93
+ ```
94
+
95
+ 目前仅支持 `enable` 配置,开发者可以通过该配置控制是否执行 Mock。
96
+
97
+ :::note
98
+ 修改 `config` 后无需重启服务,即刻生效。
99
+ :::
@@ -4,7 +4,7 @@ sidebar_position: 1
4
4
  ---
5
5
  # 路由
6
6
 
7
- Modern.js 的路由基于 [React Router 6](https://reactrouter.com/en/main),并提供了多种类型的路由模式。根据不同[入口](/docs/guides/concept/entries)类型,将路由分为三种模式,分别是**约定式路由**,**自控式路由**和**其他路由方案**。
7
+ Modern.js 的路由基于 [React Router 6](https://reactrouter.com/en/main),并提供了多种类型的路由模式。根据不同 [入口](/guides/concept/entries) 类型,将路由分为三种模式,分别是**约定式路由**,**自控式路由**和**其他路由方案**。
8
8
 
9
9
  :::note
10
10
  本小节提到的路由,都是客户端路由,即 SPA 路由。
@@ -164,7 +164,7 @@ export default () => {
164
164
 
165
165
  `routes/[id]/page.tsx` 文件会转为 `/:id` 路由。除了可以确切匹配的 `/blog` 路由,其他所有 `/xxx` 都会匹配到该路由。
166
166
 
167
- 在组件中,可以通过 [useParams](/apis/app/runtime/router/#useparams) 获取对应命名的参数。
167
+ 在组件中,可以通过 [useParams](/apis/app/runtime/router/router#useparams) 获取对应命名的参数。
168
168
 
169
169
  在 loader 中,params 会作为 [loader](/guides/basic-features/data-fetch#loader-函数) 的入参,通过 `params.xxx` 可以获取。
170
170
 
@@ -185,7 +185,7 @@ export default () => {
185
185
  └── page.tsx
186
186
  ```
187
187
 
188
- 当访问任何匹配不到的路径时,都会渲染 `routes/$.tsx` 组件,同样,`$.tsx` 中可以使用 [useParams](/apis/app/runtime/router/#useparams) 捕获 url 的剩余部分。
188
+ 当访问任何匹配不到的路径时,都会渲染 `routes/$.tsx` 组件,同样,`$.tsx` 中可以使用 [useParams](/apis/app/runtime/router/router#useparams) 捕获 url 的剩余部分。
189
189
  ```ts title="$.tsx"
190
190
  import { useParams } from '@modern-js/runtime/router';
191
191
  // 当 path 是 `/aaa/bbb` 时
@@ -302,7 +302,7 @@ Modern.js 建议必须有根 layout 和根 loading。
302
302
 
303
303
  {/* Todo API 路由 */}
304
304
 
305
- 在 `<ErrorBoundary>` 组件内,可以使用 [useRouteError](/apis/app/runtime/router/#useparams) 获取的错误的具体信息:
305
+ 在 `<ErrorBoundary>` 组件内,可以使用 [useRouteError](/apis/app/runtime/router/router#useparams) 获取的错误的具体信息:
306
306
 
307
307
  ```tsx
308
308
  import { useRouteError } from '@modern-js/runtime/router';
@@ -329,8 +329,15 @@ import type { AppConfig } from '@modern-js/runtime';
329
329
  export const config = (): AppConfig => {
330
330
  return {
331
331
  router: {
332
- supportHtml5History: false
333
- }
332
+ createRoutes() {
333
+ return [
334
+ {
335
+ path: 'edenx',
336
+ element: <div>edenx</div>,
337
+ },
338
+ ];
339
+ },
340
+ },
334
341
  }
335
342
  };
336
343
  ```
@@ -380,12 +387,10 @@ export default () => {
380
387
  配合 SSR 功能时,浏览器端可以获取到 SSR 时 `init` 返回的数据,开发者可以自行判断是否要在浏览器端重新获取数据来覆盖 SSR 数据,例如:
381
388
 
382
389
  ```tsx title="src/routes/layout.tsx"
383
- import {
384
- RuntimeContext,
385
- } from '@modern-js/runtime';
390
+ import { RuntimeContext } from '@modern-js/runtime';
386
391
 
387
392
  export const init = (context: RuntimeContext) => {
388
- if (process.env.JUPITER_TARGET === 'node') {
393
+ if (process.env.MODERN_TARGET === 'node') {
389
394
  return {
390
395
  message: 'Hello World By Server',
391
396
  }
@@ -1,8 +1,8 @@
1
1
  ---
2
- title: 构建能力
3
2
  sidebar_position: 2
4
3
  ---
5
- # 构建能力
4
+
5
+ # 构建引擎
6
6
 
7
7
  **Modern.js 的构建能力由 [Modern.js Builder](https://modernjs.dev/builder) 提供。**
8
8
 
@@ -1,7 +1,7 @@
1
1
  ---
2
- title: 入口
3
- sidebar_position: 2
2
+ sidebar_position: 1
4
3
  ---
4
+
5
5
  # 入口
6
6
 
7
7
  入口是 Modern.js 默认的文件约定,项目的每一个入口是一张独立的页面,对应一条**服务端路由**。
@@ -15,11 +15,11 @@ Modern.js 初始化的项目是单入口的,项目结构如下:
15
15
  ```
16
16
  .
17
17
  ├── src
18
-    ├── modern-app-env.d.ts
19
-    └── routes
20
-    ├── index.css
21
-    ├── layout.tsx
22
-    └── page.tsx
18
+ ├── modern-app-env.d.ts
19
+ └── routes
20
+ ├── index.css
21
+ ├── layout.tsx
22
+ └── page.tsx
23
23
  ├── package.json
24
24
  ├── modern.config.ts
25
25
  ├── pnpm-lock.yaml
@@ -41,10 +41,10 @@ Modern.js 可以很方便的将单入口切换成多入口。可以在项目下
41
41
  .
42
42
  ├── modern-app-env.d.ts
43
43
  ├── myapp
44
-    └── routes
45
-    ├── index.css
46
-    ├── layout.tsx
47
-    └── page.tsx
44
+ └── routes
45
+ ├── index.css
46
+ ├── layout.tsx
47
+ └── page.tsx
48
48
  └── new-entry
49
49
  └── routes
50
50
  ├── index.css
@@ -0,0 +1,5 @@
1
+ {
2
+ "label": "CSS 开发方案",
3
+ "position": 5,
4
+ "collapsed": false
5
+ }
@@ -12,6 +12,6 @@ sidebar_position: 4
12
12
  - 如果需要自定义 [sass-loader](https://github.com/webpack-contrib/sass-loader) 的配置,请参考 [tools.less](/configure/app/tools/sass) 配置项。
13
13
 
14
14
  :::tip 提示
15
- 经过 Less 和 Sass 预编译后的 CSS 文件,仍然会经过 Modern.js 内置的 [PostCSS](https://postcss.org/) 的转换,具备良好的浏览器兼容性。相关内容请参考【[PostCSS](/guides/basic-features/css/postcss)】。
15
+ 经过 Less 和 Sass 预编译后的 CSS 文件,仍然会经过 Modern.js 内置的 [PostCSS](https://postcss.org/) 的转换,具备良好的浏览器兼容性。相关内容请参考【[PostCSS](/guides/css/postcss)】。
16
16
 
17
17
  :::
@@ -10,10 +10,11 @@ sidebar_position: 3
10
10
 
11
11
  1. [Autoprefixer](https://github.com/postcss/autoprefixer) 根据需要支持的浏览器范围,会自动为 CSS 规则添加需要的浏览器厂商前缀。Modern.js 默认支持的浏览器范围为:`['> 0.01%', 'not dead', 'not op_mini all']`。
12
12
 
13
- :::info
14
- - 【支持的浏览器范围为:`> 0.01%`】是指浏览器市场份额大于 0.01%。
15
- - `not dead` 是指不包含官方不再支持的浏览器和过去24个月没有更新的浏览器。
16
- - `not op_mini all` 是指不包含 Opera Mini。
13
+ :::info 注意
14
+
15
+ - 【支持的浏览器范围为:`> 0.01%`】是指浏览器市场份额大于 0.01%。
16
+ - `not dead` 是指不包含官方不再支持的浏览器和过去 24 个月没有更新的浏览器。
17
+ - `not op_mini all` 是指不包含 Opera Mini。
17
18
 
18
19
  :::
19
20
 
@@ -18,7 +18,6 @@ sidebar_position: 2
18
18
  ```ts title="modern.config.ts"
19
19
  import tailwindcssPlugin from '@modern-js/plugin-tailwindcss';
20
20
 
21
- // https://modernjs.dev/docs/apis/app/config
22
21
  export default defineConfig({
23
22
  plugins: [..., tailwindcssPlugin()],
24
23
  });
@@ -0,0 +1,31 @@
1
+ ---
2
+ title: 介绍
3
+ sidebar_position: 1
4
+ ---
5
+
6
+ # Modern.js 介绍
7
+
8
+ **Modern.js** 是基于 React 的渐进式现代 Web 开发框架。
9
+
10
+ 框架内置多种开箱即用的开发工具,拥有极致的构建性能,支持零配置的渲染范式切换,一体化的 API 调用。并从三种工程方案出发(应用工程方案、模块工程方案,Monorepo 工程方案),支持全链路的前端研发。
11
+
12
+ Modern.js 是字节跳动的底层前端研发框架,已经直接或间接的服务上千个应用,包括中后台、PC Web、H5 等多种应用场景。框架覆盖完整的生命周期,拥有完善的插件体系,提供高度定制能力。支持通过生成器插件自定义业务线专属的工程方案,定制各种功能扩展和业务需求,帮助开发者更快速的搭建应用。
13
+
14
+ ## 为什么使用 Modern.js
15
+
16
+ Modern.js 能为开发者提供极致的**开发体验(Development Experience)**,让应用拥有更好的**用户体验(User Experience)**。
17
+
18
+ 在开发 React 应用过程中,开发者通常需要去为某些功能去设计实现方案,或是使用其他的库、框架来解决这些问题。Modern.js 支持 React 应用所需要的所有配置和工具,并内置**额外的功能和优化**。开发者可以使用 React 构建应用的 UI,然后逐步采用 Modern.js 的功能来解决常见的应用需求,如路由、数据获取、状态管理等。
19
+
20
+ 它主要包含以下特点:
21
+
22
+ - 🪜 **渐进式**:使用最精简的模板创建项目,通过生成器逐步开启插件功能,定制解决方案。
23
+ - 🏠 **一体化**:开发与生产环境 Web Server 唯一,CSR 和 SSR 同构开发,函数即接口的 API 服务调用。
24
+ - 📦 **开箱即用**:默认 TS 支持,内置构建、ESLint、调试工具,全功能可测试。
25
+ - 🌏 **周边生态**:自研状态管理、微前端、模块打包、Monorepo 方案等周边需求。
26
+ - 🕸 **多种路由模式**:包含自控路由、基于文件约定的路由(嵌套路由)等。
27
+ - 🚀 **独立构建核心**:支持多种打包工具,深度优化构建产物。
28
+
29
+ ## 下一步
30
+
31
+ 如果你希望了解如何使用 Modern.js,可以尝试 [创建第一个应用](/tutorials/first-app/c01-start),或是阅读 [快速上手](/guides/get-started/quick-start)。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: 快速上手
3
- sidebar_position: 1
3
+ sidebar_position: 2
4
4
  ---
5
5
  # 快速上手
6
6
 
@@ -45,10 +45,9 @@ import DebugApp from "@site-docs/components/debug-app"
45
45
 
46
46
  可以通过配置文件来开启功能,或覆盖 Modern.js 的默认行为。例如添加如下配置,开启 SSR:
47
47
 
48
- ```ts
48
+ ```ts title="modern.config.ts"
49
49
  import appTools, { defineConfig } from '@modern-js/app-tools';
50
50
 
51
- // https://modernjs.dev/docs/apis/app/config
52
51
  export default defineConfig({
53
52
  runtime: {
54
53
  router: true,
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  title: 升级
3
- sidebar_position: 2
3
+ sidebar_position: 3
4
4
  ---
5
+
5
6
  # 升级
6
7
 
7
8
  ## 通过命令行升级
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "label": "专题详解",
3
- "position": 5,
4
- "collapsed": true
3
+ "position": 6,
4
+ "collapsed": false
5
5
  }
@@ -45,7 +45,7 @@ context.addInputBefore('packageManager', {
45
45
  });
46
46
  ```
47
47
 
48
- :::info意事项
48
+ :::info 注意事项
49
49
 
50
50
  1. 添加问题的 key 不能和 Modern.js 提供的项目类型自身的问题的 key 重复
51
51
 
@@ -251,6 +251,31 @@ export default (props: {basename: string}) => {
251
251
 
252
252
  在完成了微前端整体开发流程的体验后,你可以进一步了解如何 [开发主应用](/guides/topic-detail/micro-frontend/c03-main-app)
253
253
 
254
+ ## Modern.js 微前端和直接使用 Garfish 的区别
255
+
256
+ 使用纯 `Garfish` API 开发微前端应用时
257
+ - 主应用:
258
+ - 安装 Garfish 依赖并使用 `Garfish.run` 注册子应用 [参考](https://www.garfishjs.org/api/run)
259
+ - 提供一个常驻的 `DOM` 节点供子应用挂载 [参考](https://www.garfishjs.org/api/registerApp#domgetter)
260
+ - 子应用:
261
+ - 导出 `provider` [参考](https://www.garfishjs.org/guide/start#2%E5%AF%BC%E5%87%BA-provider-%E5%87%BD%E6%95%B0)
262
+ - 设置应用的 `basename` [参考](https://www.garfishjs.org/guide/start#3-%E8%AE%BE%E7%BD%AE%E5%BA%94%E7%94%A8%E8%B7%AF%E7%94%B1-basename)
263
+
264
+ 区别于直接使用 `Garfish` 运行时 API 开发微前端项目,`Modern.js` 的微前端方案更加开箱即用。
265
+ 使用 `pnpm new` 启用微前端模式后会自动在 `Modern.js` 应用中集成 `Garfish` 插件,在 `Garfish`
266
+ 插件的加持下,你只需要
267
+ - 主应用:
268
+ - 配置 `runtime.masterApp.apps` 参数注册子应用
269
+ - 使用 `useModuleApps` API 获取子应用实例并在组件中完成渲染
270
+ - 子应用:
271
+ - 配置 `deploy.microFrontend`
272
+
273
+ 所以插件中为你做了如下事情
274
+ - 帮助你通过 `Garfish` 运行时 API 自动注册子应用(主应用)
275
+ - `useModulesApps` 函数的返回值提供了一个常驻的 `DOM` 节点供子应用挂载(主应用)
276
+ - 帮助你正确导出了 `provider`(子应用)
277
+ - 帮助你正确设置了 `basename` 给 `Modern.js` 运行时提供 `Router` 实例,如果是`自控式路由`或`手动引入的 react-router-dom` 那么需要从 `App.tsx` 的 `props` 中获取 `basename` 手动传递给引入的 `Router 实例`(子应用)
278
+
254
279
  ## 常见问题
255
280
 
256
281
  自查手册: https://www.garfishjs.org/issues/