@modern-js/module-tools-docs 2.2.1-beta.1 → 2.3.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 (160) hide show
  1. package/docs/en/api/plugin-api/plugin-hooks.md +2 -10
  2. package/docs/en/guide/advance/in-depth-about-dev-command.md +0 -9
  3. package/docs/en/guide/basic/command-preview.md +1 -1
  4. package/docs/en/guide/basic/using-storybook.mdx +28 -6
  5. package/docs/en/guide/intro/getting-started.md +1 -1
  6. package/docs/en/index.md +14 -8
  7. package/docs/en/plugins/guide/getting-started.mdx +1 -1
  8. package/docs/zh/api/plugin-api/plugin-hooks.md +2 -10
  9. package/docs/zh/guide/advance/in-depth-about-dev-command.md +0 -8
  10. package/docs/zh/guide/basic/command-preview.md +1 -1
  11. package/docs/zh/guide/basic/using-storybook.mdx +28 -5
  12. package/docs/zh/index.md +16 -10
  13. package/docs/zh/plugins/guide/getting-started.mdx +1 -1
  14. package/modern.config.ts +4 -6
  15. package/package.json +4 -4
  16. package/doc_build/html/main/index.html +0 -16
  17. package/doc_build/route.json +0 -10
  18. package/doc_build/static/css/main.css +0 -2977
  19. package/doc_build/static/css/main.css.map +0 -1
  20. package/doc_build/static/css/vendors-node_modules_pnpm_remix-run_router_1_2_0_node_modules_remix-run_router_dist_router_js-9d5e9c.css +0 -68
  21. package/doc_build/static/css/vendors-node_modules_pnpm_remix-run_router_1_2_0_node_modules_remix-run_router_dist_router_js-9d5e9c.css.map +0 -1
  22. package/doc_build/static/js/async/en_api_config_build-config.js +0 -8406
  23. package/doc_build/static/js/async/en_api_config_build-config.js.map +0 -1
  24. package/doc_build/static/js/async/en_api_config_build-preset.js +0 -7865
  25. package/doc_build/static/js/async/en_api_config_build-preset.js.map +0 -1
  26. package/doc_build/static/js/async/en_api_config_design-system.js +0 -47805
  27. package/doc_build/static/js/async/en_api_config_design-system.js.map +0 -1
  28. package/doc_build/static/js/async/en_api_config_plugins.js +0 -1488
  29. package/doc_build/static/js/async/en_api_config_plugins.js.map +0 -1
  30. package/doc_build/static/js/async/en_api_config_testing.js +0 -2139
  31. package/doc_build/static/js/async/en_api_config_testing.js.map +0 -1
  32. package/doc_build/static/js/async/en_api_index.js +0 -51
  33. package/doc_build/static/js/async/en_api_index.js.map +0 -1
  34. package/doc_build/static/js/async/en_api_plugin-api_plugin-hooks.js +0 -14360
  35. package/doc_build/static/js/async/en_api_plugin-api_plugin-hooks.js.map +0 -1
  36. package/doc_build/static/js/async/en_guide_advance_asset.js +0 -3972
  37. package/doc_build/static/js/async/en_guide_advance_asset.js.map +0 -1
  38. package/doc_build/static/js/async/en_guide_advance_build-umd.js +0 -9857
  39. package/doc_build/static/js/async/en_guide_advance_build-umd.js.map +0 -1
  40. package/doc_build/static/js/async/en_guide_advance_copy.js +0 -6541
  41. package/doc_build/static/js/async/en_guide_advance_copy.js.map +0 -1
  42. package/doc_build/static/js/async/en_guide_advance_external-dependency.js +0 -3806
  43. package/doc_build/static/js/async/en_guide_advance_external-dependency.js.map +0 -1
  44. package/doc_build/static/js/async/en_guide_advance_in-depth-about-build.js +0 -5304
  45. package/doc_build/static/js/async/en_guide_advance_in-depth-about-build.js.map +0 -1
  46. package/doc_build/static/js/async/en_guide_advance_in-depth-about-dev-command.js +0 -2526
  47. package/doc_build/static/js/async/en_guide_advance_in-depth-about-dev-command.js.map +0 -1
  48. package/doc_build/static/js/async/en_guide_advance_theme-config.js +0 -2486
  49. package/doc_build/static/js/async/en_guide_advance_theme-config.js.map +0 -1
  50. package/doc_build/static/js/async/en_guide_basic_before-getting-started.js +0 -3720
  51. package/doc_build/static/js/async/en_guide_basic_before-getting-started.js.map +0 -1
  52. package/doc_build/static/js/async/en_guide_basic_command-preview.js +0 -3973
  53. package/doc_build/static/js/async/en_guide_basic_command-preview.js.map +0 -1
  54. package/doc_build/static/js/async/en_guide_basic_modify-output-product.js +0 -3137
  55. package/doc_build/static/js/async/en_guide_basic_modify-output-product.js.map +0 -1
  56. package/doc_build/static/js/async/en_guide_basic_publish-your-project.js +0 -2180
  57. package/doc_build/static/js/async/en_guide_basic_publish-your-project.js.map +0 -1
  58. package/doc_build/static/js/async/en_guide_basic_test-your-project.js +0 -3887
  59. package/doc_build/static/js/async/en_guide_basic_test-your-project.js.map +0 -1
  60. package/doc_build/static/js/async/en_guide_basic_use-micro-generator.js +0 -2973
  61. package/doc_build/static/js/async/en_guide_basic_use-micro-generator.js.map +0 -1
  62. package/doc_build/static/js/async/en_guide_basic_using-storybook.js +0 -4723
  63. package/doc_build/static/js/async/en_guide_basic_using-storybook.js.map +0 -1
  64. package/doc_build/static/js/async/en_guide_best-practices_components.js +0 -21400
  65. package/doc_build/static/js/async/en_guide_best-practices_components.js.map +0 -1
  66. package/doc_build/static/js/async/en_guide_intro_getting-started.js +0 -2149
  67. package/doc_build/static/js/async/en_guide_intro_getting-started.js.map +0 -1
  68. package/doc_build/static/js/async/en_guide_intro_welcome.js +0 -162
  69. package/doc_build/static/js/async/en_guide_intro_welcome.js.map +0 -1
  70. package/doc_build/static/js/async/en_guide_intro_why-module-engineering-solution.js +0 -96
  71. package/doc_build/static/js/async/en_guide_intro_why-module-engineering-solution.js.map +0 -1
  72. package/doc_build/static/js/async/en_index.js +0 -81
  73. package/doc_build/static/js/async/en_index.js.map +0 -1
  74. package/doc_build/static/js/async/en_plugins_guide_getting-started.js +0 -2556
  75. package/doc_build/static/js/async/en_plugins_guide_getting-started.js.map +0 -1
  76. package/doc_build/static/js/async/en_plugins_guide_plugin-object.js +0 -4173
  77. package/doc_build/static/js/async/en_plugins_guide_plugin-object.js.map +0 -1
  78. package/doc_build/static/js/async/en_plugins_guide_setup-function.js +0 -3815
  79. package/doc_build/static/js/async/en_plugins_guide_setup-function.js.map +0 -1
  80. package/doc_build/static/js/async/en_plugins_official-list_overview.js +0 -66
  81. package/doc_build/static/js/async/en_plugins_official-list_overview.js.map +0 -1
  82. package/doc_build/static/js/async/packages_cli_doc-core_src_theme-default_components_Search_logic_search_ts.js +0 -246
  83. package/doc_build/static/js/async/packages_cli_doc-core_src_theme-default_components_Search_logic_search_ts.js.map +0 -1
  84. package/doc_build/static/js/async/vendors-node_modules_pnpm_code-hike_mdx_0_7_4_react_18_2_0_node_modules_code-hike_mdx_dist_co-06dd41.js +0 -6656
  85. package/doc_build/static/js/async/vendors-node_modules_pnpm_code-hike_mdx_0_7_4_react_18_2_0_node_modules_code-hike_mdx_dist_co-06dd41.js.map +0 -1
  86. package/doc_build/static/js/async/vendors-node_modules_pnpm_flexsearch_0_6_32_node_modules_flexsearch_dist_flexsearch_min_js.js +0 -54
  87. package/doc_build/static/js/async/vendors-node_modules_pnpm_flexsearch_0_6_32_node_modules_flexsearch_dist_flexsearch_min_js.js.map +0 -1
  88. package/doc_build/static/js/async/zh_api_config_build-config.js +0 -11354
  89. package/doc_build/static/js/async/zh_api_config_build-config.js.map +0 -1
  90. package/doc_build/static/js/async/zh_api_config_build-preset.js +0 -7867
  91. package/doc_build/static/js/async/zh_api_config_build-preset.js.map +0 -1
  92. package/doc_build/static/js/async/zh_api_config_design-system.js +0 -48712
  93. package/doc_build/static/js/async/zh_api_config_design-system.js.map +0 -1
  94. package/doc_build/static/js/async/zh_api_config_plugins.js +0 -1488
  95. package/doc_build/static/js/async/zh_api_config_plugins.js.map +0 -1
  96. package/doc_build/static/js/async/zh_api_config_testing.js +0 -2132
  97. package/doc_build/static/js/async/zh_api_config_testing.js.map +0 -1
  98. package/doc_build/static/js/async/zh_api_index.js +0 -52
  99. package/doc_build/static/js/async/zh_api_index.js.map +0 -1
  100. package/doc_build/static/js/async/zh_api_plugin-api_plugin-hooks.js +0 -14392
  101. package/doc_build/static/js/async/zh_api_plugin-api_plugin-hooks.js.map +0 -1
  102. package/doc_build/static/js/async/zh_guide_advance_asset.js +0 -3972
  103. package/doc_build/static/js/async/zh_guide_advance_asset.js.map +0 -1
  104. package/doc_build/static/js/async/zh_guide_advance_build-umd.js +0 -9859
  105. package/doc_build/static/js/async/zh_guide_advance_build-umd.js.map +0 -1
  106. package/doc_build/static/js/async/zh_guide_advance_copy.js +0 -6541
  107. package/doc_build/static/js/async/zh_guide_advance_copy.js.map +0 -1
  108. package/doc_build/static/js/async/zh_guide_advance_external-dependency.js +0 -3808
  109. package/doc_build/static/js/async/zh_guide_advance_external-dependency.js.map +0 -1
  110. package/doc_build/static/js/async/zh_guide_advance_in-depth-about-build.js +0 -5304
  111. package/doc_build/static/js/async/zh_guide_advance_in-depth-about-build.js.map +0 -1
  112. package/doc_build/static/js/async/zh_guide_advance_in-depth-about-dev-command.js +0 -2526
  113. package/doc_build/static/js/async/zh_guide_advance_in-depth-about-dev-command.js.map +0 -1
  114. package/doc_build/static/js/async/zh_guide_advance_theme-config.js +0 -2477
  115. package/doc_build/static/js/async/zh_guide_advance_theme-config.js.map +0 -1
  116. package/doc_build/static/js/async/zh_guide_basic_before-getting-started.js +0 -3711
  117. package/doc_build/static/js/async/zh_guide_basic_before-getting-started.js.map +0 -1
  118. package/doc_build/static/js/async/zh_guide_basic_command-preview.js +0 -3805
  119. package/doc_build/static/js/async/zh_guide_basic_command-preview.js.map +0 -1
  120. package/doc_build/static/js/async/zh_guide_basic_modify-output-product.js +0 -3142
  121. package/doc_build/static/js/async/zh_guide_basic_modify-output-product.js.map +0 -1
  122. package/doc_build/static/js/async/zh_guide_basic_publish-your-project.js +0 -2241
  123. package/doc_build/static/js/async/zh_guide_basic_publish-your-project.js.map +0 -1
  124. package/doc_build/static/js/async/zh_guide_basic_test-your-project.js +0 -4286
  125. package/doc_build/static/js/async/zh_guide_basic_test-your-project.js.map +0 -1
  126. package/doc_build/static/js/async/zh_guide_basic_use-micro-generator.js +0 -2979
  127. package/doc_build/static/js/async/zh_guide_basic_use-micro-generator.js.map +0 -1
  128. package/doc_build/static/js/async/zh_guide_basic_using-storybook.js +0 -4760
  129. package/doc_build/static/js/async/zh_guide_basic_using-storybook.js.map +0 -1
  130. package/doc_build/static/js/async/zh_guide_best-practices_components.js +0 -21100
  131. package/doc_build/static/js/async/zh_guide_best-practices_components.js.map +0 -1
  132. package/doc_build/static/js/async/zh_guide_intro_getting-started.js +0 -2031
  133. package/doc_build/static/js/async/zh_guide_intro_getting-started.js.map +0 -1
  134. package/doc_build/static/js/async/zh_guide_intro_welcome.js +0 -162
  135. package/doc_build/static/js/async/zh_guide_intro_welcome.js.map +0 -1
  136. package/doc_build/static/js/async/zh_guide_intro_why-module-engineering-solution.js +0 -96
  137. package/doc_build/static/js/async/zh_guide_intro_why-module-engineering-solution.js.map +0 -1
  138. package/doc_build/static/js/async/zh_index.js +0 -81
  139. package/doc_build/static/js/async/zh_index.js.map +0 -1
  140. package/doc_build/static/js/async/zh_plugins_guide_getting-started.js +0 -2604
  141. package/doc_build/static/js/async/zh_plugins_guide_getting-started.js.map +0 -1
  142. package/doc_build/static/js/async/zh_plugins_guide_plugin-object.js +0 -4169
  143. package/doc_build/static/js/async/zh_plugins_guide_plugin-object.js.map +0 -1
  144. package/doc_build/static/js/async/zh_plugins_guide_setup-function.js +0 -3815
  145. package/doc_build/static/js/async/zh_plugins_guide_setup-function.js.map +0 -1
  146. package/doc_build/static/js/async/zh_plugins_official-list_overview.js +0 -66
  147. package/doc_build/static/js/async/zh_plugins_official-list_overview.js.map +0 -1
  148. package/doc_build/static/js/builder-runtime.js +0 -1375
  149. package/doc_build/static/js/builder-runtime.js.map +0 -1
  150. package/doc_build/static/js/lib-lodash.js +0 -4907
  151. package/doc_build/static/js/lib-lodash.js.map +0 -1
  152. package/doc_build/static/js/lib-polyfill.js +0 -11847
  153. package/doc_build/static/js/lib-polyfill.js.map +0 -1
  154. package/doc_build/static/js/lib-react.js +0 -39510
  155. package/doc_build/static/js/lib-react.js.map +0 -1
  156. package/doc_build/static/js/main.js +0 -8610
  157. package/doc_build/static/js/main.js.map +0 -1
  158. package/doc_build/static/js/vendors-node_modules_pnpm_remix-run_router_1_2_0_node_modules_remix-run_router_dist_router_js-9d5e9c.js +0 -7328
  159. package/doc_build/static/js/vendors-node_modules_pnpm_remix-run_router_1_2_0_node_modules_remix-run_router_dist_router_js-9d5e9c.js.map +0 -1
  160. package/doc_build/static/search_index.json +0 -1
@@ -328,8 +328,6 @@ export interface DevToolData {
328
328
  name: string;
329
329
  value: string;
330
330
  };
331
- // Whether to disable the source build before the dev command is executed
332
- disableRunBuild?: boolean;
333
331
  action: (
334
332
  options: { port?: string },
335
333
  context: { isTsProject?: boolean },
@@ -337,11 +335,11 @@ export interface DevToolData {
337
335
  }
338
336
  ```
339
337
 
340
- :::tip{title='About disableRunBuild configuration'}
338
+ <!-- :::tip{title='About disableRunBuild configuration'}
341
339
  When dev a project, it may be possible to set `disableRunBuild: true` to disable build tasks for source execution (in listening mode) if you only need to dev code functionality.
342
340
 
343
341
  The currently supported Storybook dev supports using source code products as dev objects, so `disableRunBuild: false` in the Storybook plugin.
344
- :::
342
+ ::: -->
345
343
 
346
344
  ### `beforeDev`
347
345
 
@@ -371,8 +369,6 @@ export interface DevToolData {
371
369
  name: string;
372
370
  value: string;
373
371
  };
374
- // Whether to disable the source build before the dev command is executed
375
- disableRunBuild?: boolean;
376
372
  action: (
377
373
  options: { port?: string },
378
374
  context: { isTsProject?: boolean },
@@ -434,8 +430,6 @@ export interface DevToolData {
434
430
  name: string;
435
431
  value: string;
436
432
  };
437
- // Whether to disable the source build before the dev command is executed
438
- disableRunBuild?: boolean;
439
433
  action: (
440
434
  options: { port?: string },
441
435
  context: { isTsProject?: boolean },
@@ -471,8 +465,6 @@ export interface DevToolData {
471
465
  name: string;
472
466
  value: string;
473
467
  };
474
- // Whether to disable the source build before the dev command is executed
475
- disableRunBuild?: boolean;
476
468
  action: (
477
469
  options: { port?: string },
478
470
  context: { isTsProject?: boolean },
@@ -15,15 +15,6 @@ The `dev` command provided by the module project is mainly used for debugging th
15
15
 
16
16
  In addition to the `dev` command, you can also start a debugging tool or task directly by using the `dev [debug tool name]` option.
17
17
 
18
- When executing the `dev` command, the debugging tool can choose whether or not to perform a listening mode for code builds before starting, for example the Storybook debugging tool has this feature enabled.
19
-
20
-
21
- ## Storybook
22
-
23
-
24
- Storybook is currently the official Module Tools debugging tool plugin provided by Module Works.
25
-
26
- As we mentioned above, Storybook performs the source build task in listening mode before it is started, so you will see log messages for both Storybook and the source build in the terminal. Changes to the build product are also triggered when the source code is updated, and Storybook hot updates are triggered when the build product changes.
27
18
 
28
19
  ## Extending the dev command
29
20
 
@@ -33,7 +33,7 @@ When you want to start a project build, you can execute the `modern build` comma
33
33
  In addition to the above, module projects also support `platform` build mode, which can be used to perform build tasks for other tools. For example, it is currently officially supported to start a Storybook build task to generate Storybook products by executing the `modern build --platform` or `modern build --platform storybook` commands after installing the `@modern-js/plugin-storybook` plugin.
34
34
 
35
35
  :::tip{title=Note}
36
- When executing a Storybook build, it may need to read the project's build product. So **when the `modern build --platform` command is executed to start a Storybook build, the `modern build --watch` program is automatically executed first to ensure the existence of the source build product**.
36
+ When executing a Storybook build, if you need to read the build product of the project. Then **don't forget to execute the `modern build` command to ensure the existence of the project's build product before executing the `modern build --platform` command to start the Storybook build**.
37
37
  :::
38
38
 
39
39
  ## `modern new`
@@ -28,7 +28,7 @@ The project code needs to be introduced during the debugging process and can cur
28
28
  - Use of project products
29
29
  - Using the project source code
30
30
 
31
- We prefer to use the first "**use project product**" approach. This is because it is closer to a real-life usage scenario and not only allows you to debug the functionality of the component, but also to verify the correctness of the build product.
31
+ We recommend using the first "**referenced project product**" approach. Because it is closer to the real usage scenario, not only can we debug the component functionality, but also verify the correctness of the build product. However, we can also refer to the source code when testing the project functionality and refer to the project package name when verifying the project product.
32
32
 
33
33
  Next, we will talk about how to use each of these two methods.
34
34
 
@@ -88,7 +88,7 @@ The `key` of `paths` is the same as the project name.
88
88
 
89
89
  ---
90
90
 
91
- Finally, it is referenced directly in the Story code by the project name.
91
+ Referenced directly in Story code by the project name.
92
92
 
93
93
  ```tsx stories/index.stories.tsx focus=1:1
94
94
  import { content } from 'foo';
@@ -102,6 +102,26 @@ export default {
102
102
  };
103
103
  ```
104
104
 
105
+ ---
106
+
107
+ Finally, when executing the command, first start the source build in listening mode and then start Storybook debugging.
108
+
109
+ <CH.Code>
110
+
111
+ ``` bash terminal-1
112
+ ## Source Code Build
113
+ modern build --watch
114
+ ```
115
+
116
+ ---
117
+
118
+ ``` bash terminal-2
119
+ ## Storybook Debug
120
+ modern dev storybook
121
+ ```
122
+
123
+ </CH.Code>
124
+
105
125
  </CH.Spotlight>
106
126
 
107
127
  If, during development, you encounter a situation where the type definition is not available in real time, at that point.
@@ -125,8 +145,8 @@ For npm and Yarn projects, the values of `types` of `package.json` can only be c
125
145
 
126
146
  So why is it possible to reference the product directly?
127
147
 
128
- 1. the `modern build` command is executed automatically before the `modern dev storybook` command, ensuring the existence of the project build product.
129
- 2. The project name is added as an alias inside Storybook to ensure that the path to the project's product can be parsed **according to `package.json`**.
148
+ 1. execute `modern build --watch` command before executing `modern dev storybook` command to ensure the existence of project build products.
149
+ 2. Add processing logic inside Storybook to ensure that the project's product paths can be parsed **according to `package.json`, based on the `compilerOptions.paths` configuration in the `tsconfig.json` file or (in JS projects) directly with the project name as an alias**.
130
150
 
131
151
  ### Referencing component source code
132
152
 
@@ -144,10 +164,12 @@ export default {
144
164
  };
145
165
  ```
146
166
 
147
- So why is the source code approach not recommended?
148
-
167
+ :::tip{title='why is the source code approach not recommended'}
149
168
  Not only is it impossible to verify that the component product is correct using the component source code, **but also some of the configurations supported by the module project for building the product cannot be fully translated into Storybook internal configuration**. If some of the configurations cannot be converted to each other, there will be unintended results during Storybook debugging.
150
169
 
170
+ Module Tools is based on Esbuild, while Storybook is based on Webpack, and Esbuild's configuration is not fully compatible with Webpack.
171
+ :::
172
+
151
173
  ## Configure Storybook
152
174
 
153
175
  Storybook is officially configured for projects through a folder called `.storybook`, which contains various configuration files. **In a module project scenario, Storybook configuration files can be added to the `config/storybook` directory of the project.**
@@ -2,7 +2,7 @@
2
2
  sidebar_position: 3
3
3
  ---
4
4
 
5
- # Quick start
5
+ # Quick Start
6
6
 
7
7
  ## 3 minute demo
8
8
 
package/docs/en/index.md CHANGED
@@ -7,24 +7,30 @@ hero:
7
7
  tagline: simple, powerful, high-performance modern npm package development solution
8
8
  actions:
9
9
  - theme: brand
10
- text: welcome
11
- link: /guide/intro/welcome
10
+ text: Welcome
11
+ link: /en/guide/intro/welcome
12
+ - theme: alt
13
+ text: Quick Start
14
+ link: /en/guide/intro/getting-started
12
15
 
13
16
  features:
14
17
  - title: 'Esbuild: The High Performance JS Bundler'
15
18
  details: Built on Esbuild, the build is extremely fast and gives you the ultimate development experience.
16
19
  icon: 🚀
17
- - title: 'Storybook: The community popular UI development tool'
18
- details: Integrated with Storybook, you can use it to debug UI.
19
- icon: 📦
20
- - title: 'transform + bundle'
20
+ - title: 'Two build modes'
21
21
  details: Both bundle and bundleless build modes are supported.
22
22
  icon: ✨
23
- - title: 'zero configuration'
24
- details: Develop your npm packages without any configuration, with built-in presets covering multiple scenarios.
23
+ - title: 'Out of the box'
24
+ details: Develop your npm packages without too much configuration, with built-in presets covering a wide range of scenarios.
25
25
  icon: 🛠️
26
26
  - title: 'Extensible: Provides a powerful plugin mechanism'
27
27
  details: With its plugin extension mechanism, you can easily extend the capabilities of Module Tools.
28
28
  icon: 🎨
29
+ - title: 'Storybook: The community popular UI development tool'
30
+ details: Integrated with Storybook, you can use it to debug UI.
31
+ icon: 📦
32
+ - title: 'Jest: Delightful Testing Framework'
33
+ details: Jest integration makes it easier to test code。
34
+ icon: 📐
29
35
  ---
30
36
  # index
@@ -44,7 +44,7 @@ export const ExamplePlugin = (): CliPlugin<ModuleTools> => {
44
44
  console.info('build over');
45
45
  }
46
46
  };
47
- };
47
+ },
48
48
  };
49
49
  };
50
50
  ```
@@ -330,8 +330,6 @@ export interface DevToolData {
330
330
  name: string;
331
331
  value: string;
332
332
  };
333
- // 在 dev 命令执行之前,是否关闭源码构建
334
- disableRunBuild?: boolean;
335
333
  action: (
336
334
  options: { port?: string },
337
335
  context: { isTsProject?: boolean },
@@ -339,11 +337,11 @@ export interface DevToolData {
339
337
  }
340
338
  ```
341
339
 
342
- :::tip{title='关于 disableRunBuild 配置'}
340
+ <!-- :::tip{title='关于 disableRunBuild 配置'}
343
341
  在调试项目的时候,如果仅需要对代码功能进行调试的话,也许可以设置 `disableRunBuild: true` 来关闭对于源码执行(监听模式下的)构建任务。
344
342
 
345
343
  目前支持的 Storybook 调试支持将源码产物作为调试对象,因此在 Storybook 插件中 `disableRunBuild: false`。
346
- :::
344
+ ::: -->
347
345
 
348
346
  ### `beforeDev`
349
347
 
@@ -373,8 +371,6 @@ export interface DevToolData {
373
371
  name: string;
374
372
  value: string;
375
373
  };
376
- // 在 dev 命令执行之前,是否关闭源码构建
377
- disableRunBuild?: boolean;
378
374
  action: (
379
375
  options: { port?: string },
380
376
  context: { isTsProject?: boolean },
@@ -436,8 +432,6 @@ export interface DevToolData {
436
432
  name: string;
437
433
  value: string;
438
434
  };
439
- // 在 dev 命令执行之前,是否关闭源码构建
440
- disableRunBuild?: boolean;
441
435
  action: (
442
436
  options: { port?: string },
443
437
  context: { isTsProject?: boolean },
@@ -473,8 +467,6 @@ export interface DevToolData {
473
467
  name: string;
474
468
  value: string;
475
469
  };
476
- // 在 dev 命令执行之前,是否关闭源码构建
477
- disableRunBuild?: boolean;
478
470
  action: (
479
471
  options: { port?: string },
480
472
  context: { isTsProject?: boolean },
@@ -15,14 +15,6 @@ sidebar_position: 2
15
15
 
16
16
  我们除了可以执行 `dev` 命令以外,也可以通过 `dev [调试工具名称]` 的方式来直接启动调试工具或者任务。
17
17
 
18
- 在执行 `dev` 命令的时候,调试工具可以选择是否在启动之前执行代码构建的监听模式,例如 Storybook 调试工具就开启了该功能。
19
-
20
- ## Storybook
21
-
22
- Storybook 是目前模块工程官方提供的 Module Tools 调试工具插件。
23
-
24
- 上面我们说到 Storybook 在启动之前会执行监听模式的源码构建任务,因此在终端里你会看到 Storybook 和源码构建的日志信息同时出现。并且在更新源码后会触发构建产物的变化,当构建产物变化的时候也会触发 Storybook 热更新。
25
-
26
18
  ## 扩展 dev 命令
27
19
 
28
20
  如果需要扩展 dev 命令或者说提供自己的 Module Tools 调试工具插件,那么你需要先了解以下内容:
@@ -33,7 +33,7 @@ Options:
33
33
  除了以上,模块工程还支持 `platform` 构建模式,可以用于执行其他工具的构建任务。例如,目前官方支持在安装了 `@modern-js/plugin-storybook` 插件后,可以通过执行 `modern build --platform` 或者 `modern build --platform storybook` 命令启动 Storybook 构建任务生成 Storybook 产物。
34
34
 
35
35
  :::tip{title=注意}
36
- 在执行 Storybook 构建的时候,它可能需要读取项目的构建产物。因此**在执行 `modern build --platform` 命令启动 Storybook 构建的时候,会自动先执行 `modern build --watch` 程序确保源码构建产物的存在**。
36
+ 在执行 Storybook 构建的时候,如果需要读取项目的构建产物。那么**在执行 `modern build --platform` 命令启动 Storybook 构建之前,不要忘记先执行 `modern build` 命令确保项目构建产物的存在**。
37
37
  :::
38
38
 
39
39
  ## `modern new`
@@ -28,7 +28,7 @@ sidebar_position: 5
28
28
  - 引用项目产物
29
29
  - 引用项目源码
30
30
 
31
- 我们更推荐使用第一种“**引用项目产物**”的方式。因为它更接近真实的使用场景,不仅可以对组件功能进行调试,同时也对构建产物的正确性进行了验证。
31
+ 我们推荐使用第一种“**引用项目产物**”的方式。因为它更接近真实的使用场景,不仅可以对组件功能进行调试,同时也对构建产物的正确性进行了验证。不过我们也可以在测试项目功能的时候引用源码,在验证项目产物的时候引用项目的包名。
32
32
 
33
33
  接下来我们分别讲一下这两种方式具体如何使用。
34
34
 
@@ -90,7 +90,7 @@ export const content = 'hello world';
90
90
 
91
91
  ---
92
92
 
93
- 最后在 Story 代码中直接以项目名称的方式引用。
93
+ Story 代码中直接以项目名称的方式引用。
94
94
 
95
95
  ```tsx stories/index.stories.tsx focus=1:1
96
96
  import { content } from 'foo';
@@ -104,6 +104,26 @@ export default {
104
104
  };
105
105
  ```
106
106
 
107
+ ---
108
+
109
+ 最后在执行命令的时候,先启动监听模式的源码构建,然后启动 Storybook 调试。
110
+
111
+ <CH.Code>
112
+
113
+ ``` bash terminal-1
114
+ ## 源码构建
115
+ modern build --watch
116
+ ```
117
+
118
+ ---
119
+
120
+ ``` bash terminal-2
121
+ ## Storybook 调试
122
+ modern dev storybook
123
+ ```
124
+
125
+ </CH.Code>
126
+
107
127
  </CH.Spotlight>
108
128
 
109
129
  :::info
@@ -129,8 +149,8 @@ export default {
129
149
 
130
150
  那么为什么可以直接引用产物呢?
131
151
 
132
- 1. 在执行 `modern dev storybook` 命令之前,会自动执行 `modern build` 命令,保证项目构建产物的存在。
133
- 2. 在 Storybook 内部增加了针对 `tsconfig.json` 文件或者以项目名称作为别名的处理,保证能够**根据 `package.json` 解析出项目的产物路径**。
152
+ 1. 在执行 `modern dev storybook` 命令之前,执行 `modern build --watch` 命令,保证项目构建产物的存在。
153
+ 2. 在 Storybook 内部增加了根据 `tsconfig.json` 文件的 `compilerOptions.paths` 配置或者(在 JS 项目中)直接以项目名称作为别名的处理逻辑,保证能够**根据 `package.json` 解析出项目的产物路径**。
134
154
 
135
155
  ### 引用组件源码
136
156
 
@@ -148,11 +168,14 @@ export default {
148
168
  };
149
169
  ```
150
170
 
151
- 那么为什么不推荐使用源码的方式呢?
152
171
 
172
+ :::tip{title='为什么不推荐使用源码的方式?'}
153
173
  不仅仅是因为使用组件源码无法验证组件产物是否正确,**同时模块工程对于构建产物支持的一些配置无法完全转换为 Storybook
154
174
  内部的配置**。如果某些配置无法进行相互转换的话,就会在 Storybook 调试过程中出现不符合预期的结果。
155
175
 
176
+ Module Tools 是基于 Esbuild 实现的,而 Storybook 是基于 Webpack 实现的。Esbuild 的配置无法与 Webpack 完全兼容。
177
+ :::
178
+
156
179
  ## 配置 Storybook
157
180
 
158
181
  Storybook 官方通过一个名为 `.storybook` 的文件夹来进行项目配置,其中包含各种配置文件。**在模块工程方案中,可以在项目的 `config/storybook` 目录下增加 Storybook 配置文件。**
package/docs/zh/index.md CHANGED
@@ -4,27 +4,33 @@ pageType: home
4
4
  hero:
5
5
  name: Module Tools
6
6
  text: 模块工程解决方案
7
- tagline: 简单、强大、高性能的现代化npm包开发方案
7
+ tagline: 简单、强大、高性能的现代化 npm 包开发方案
8
8
  actions:
9
9
  - theme: brand
10
10
  text: 欢迎使用
11
11
  link: /guide/intro/welcome
12
+ - theme: alt
13
+ text: 快速上手
14
+ link: /guide/intro/getting-started
12
15
 
13
16
  features:
14
- - title: 'Esbuild: 高性能的JS Bundler'
17
+ - title: 'Esbuild: 高性能的 JS Bundler'
15
18
  details: 基于 Esbuild 构建,构建速度极快,带给你极致的开发体验。
16
19
  icon: 🚀
17
- - title: 'Storybook: 社区流行的UI开发工具'
18
- details: 集成了Storybook,你可以使用它调试UI。
19
- icon: 📦
20
- - title: 'transform + bundle'
21
- details: 支持bundle和bundleless两种构建模式。
20
+ - title: '双构建模式'
21
+ details: 支持 Bundle 和 Bundleless 两种构建模式。
22
22
  icon: ✨
23
- - title: '零配置'
24
- details: 无需任何配置即可开发你的npm包,内置预设覆盖多种场景。
23
+ - title: '开箱即用'
24
+ details: 无需过多配置即可开发你的 npm 包,内置预设覆盖多种场景。
25
25
  icon: 🛠️
26
26
  - title: '扩展性强: 提供强大的插件机制'
27
- details: 通过其插件扩展机制,你可以轻松的扩展Module tools的各项能力。
27
+ details: 通过其插件扩展机制,你可以轻松的扩展 Module tools 的各项能力。
28
28
  icon: 🎨
29
+ - title: 'Storybook: 社区流行的 UI 开发工具'
30
+ details: 集成了 Storybook,你可以使用它调试 UI。
31
+ icon: 📦
32
+ - title: 'Jest: 令人愉快的测试框架'
33
+ details: 集成了 Jest,使得代码测试更加容易。
34
+ icon: 📐
29
35
  ---
30
36
  # index
@@ -44,7 +44,7 @@ export const ExamplePlugin = (): CliPlugin<ModuleTools> => {
44
44
  console.info('build over');
45
45
  }
46
46
  };
47
- };
47
+ },
48
48
  };
49
49
  };
50
50
  ```
package/modern.config.ts CHANGED
@@ -6,8 +6,6 @@ import { pluginAutoSidebar } from '@modern-js/doc-plugin-auto-sidebar';
6
6
  const theme = require('shiki/themes/nord.json');
7
7
  const { version } = require('./package.json');
8
8
 
9
- const isDevCommand = process.env.NODE_ENV !== 'production';
10
-
11
9
  function getI18nHelper(lang: 'zh' | 'en') {
12
10
  const cn = lang === 'zh';
13
11
  const prefix = cn ? '' : '/en';
@@ -116,10 +114,10 @@ export default defineConfig({
116
114
  },
117
115
  ],
118
116
  },
119
- },
120
- builderConfig: {
121
- dev: {
122
- startUrl: 'http://localhost:<port>/module-tools/',
117
+ builderConfig: {
118
+ dev: {
119
+ startUrl: 'http://localhost:<port>/module-tools/',
120
+ },
123
121
  },
124
122
  },
125
123
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@modern-js/module-tools-docs",
3
- "version": "2.2.1-beta.1",
3
+ "version": "2.3.0",
4
4
  "description": "docs",
5
5
  "main": "index.js",
6
6
  "keywords": [],
@@ -11,11 +11,11 @@
11
11
  "react": "^18.2.0",
12
12
  "react-dom": "^18.2.0",
13
13
  "shiki": "^0.11.1",
14
- "@modern-js/doc-tools": "2.2.0",
15
- "@modern-js/doc-plugin-auto-sidebar": "2.2.0"
14
+ "@modern-js/doc-tools": "2.3.0",
15
+ "@modern-js/doc-plugin-auto-sidebar": "2.3.0"
16
16
  },
17
17
  "scripts": {
18
18
  "dev": "modern dev",
19
- "build": "modern build"
19
+ "build:doc": "modern build"
20
20
  }
21
21
  }
@@ -1,16 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
-
4
- <head>
5
- <meta charset="UTF-8">
6
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
- <!--<?- HEAD ?>-->
9
- <script defer src="/static/js/builder-runtime.js"></script><script defer src="/static/js/lib-react.js"></script><script defer src="/static/js/lib-lodash.js"></script><script defer src="/static/js/lib-polyfill.js"></script><script defer src="/static/js/vendors-node_modules_pnpm_remix-run_router_1_2_0_node_modules_remix-run_router_dist_router_js-9d5e9c.js"></script><script defer src="/static/js/main.js"></script><link href="/static/css/vendors-node_modules_pnpm_remix-run_router_1_2_0_node_modules_remix-run_router_dist_router_js-9d5e9c.css" rel="stylesheet"><link href="/static/css/main.css" rel="stylesheet"></head>
10
-
11
- <body>
12
- <div id="root"><!--<?- DOC_CONTENT ?>--></div>
13
-
14
- </body>
15
-
16
- </html>
@@ -1,10 +0,0 @@
1
- {
2
- "routes": [
3
- {
4
- "urlPath": "/",
5
- "entryName": "main",
6
- "entryPath": "html/main/index.html",
7
- "isSPA": true
8
- }
9
- ]
10
- }