@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.
- package/docs/en/api/plugin-api/plugin-hooks.md +2 -10
- package/docs/en/guide/advance/in-depth-about-dev-command.md +0 -9
- package/docs/en/guide/basic/command-preview.md +1 -1
- package/docs/en/guide/basic/using-storybook.mdx +28 -6
- package/docs/en/guide/intro/getting-started.md +1 -1
- package/docs/en/index.md +14 -8
- package/docs/en/plugins/guide/getting-started.mdx +1 -1
- package/docs/zh/api/plugin-api/plugin-hooks.md +2 -10
- package/docs/zh/guide/advance/in-depth-about-dev-command.md +0 -8
- package/docs/zh/guide/basic/command-preview.md +1 -1
- package/docs/zh/guide/basic/using-storybook.mdx +28 -5
- package/docs/zh/index.md +16 -10
- package/docs/zh/plugins/guide/getting-started.mdx +1 -1
- package/modern.config.ts +4 -6
- package/package.json +4 -4
- package/doc_build/html/main/index.html +0 -16
- package/doc_build/route.json +0 -10
- package/doc_build/static/css/main.css +0 -2977
- package/doc_build/static/css/main.css.map +0 -1
- 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
- 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
- package/doc_build/static/js/async/en_api_config_build-config.js +0 -8406
- package/doc_build/static/js/async/en_api_config_build-config.js.map +0 -1
- package/doc_build/static/js/async/en_api_config_build-preset.js +0 -7865
- package/doc_build/static/js/async/en_api_config_build-preset.js.map +0 -1
- package/doc_build/static/js/async/en_api_config_design-system.js +0 -47805
- package/doc_build/static/js/async/en_api_config_design-system.js.map +0 -1
- package/doc_build/static/js/async/en_api_config_plugins.js +0 -1488
- package/doc_build/static/js/async/en_api_config_plugins.js.map +0 -1
- package/doc_build/static/js/async/en_api_config_testing.js +0 -2139
- package/doc_build/static/js/async/en_api_config_testing.js.map +0 -1
- package/doc_build/static/js/async/en_api_index.js +0 -51
- package/doc_build/static/js/async/en_api_index.js.map +0 -1
- package/doc_build/static/js/async/en_api_plugin-api_plugin-hooks.js +0 -14360
- package/doc_build/static/js/async/en_api_plugin-api_plugin-hooks.js.map +0 -1
- package/doc_build/static/js/async/en_guide_advance_asset.js +0 -3972
- package/doc_build/static/js/async/en_guide_advance_asset.js.map +0 -1
- package/doc_build/static/js/async/en_guide_advance_build-umd.js +0 -9857
- package/doc_build/static/js/async/en_guide_advance_build-umd.js.map +0 -1
- package/doc_build/static/js/async/en_guide_advance_copy.js +0 -6541
- package/doc_build/static/js/async/en_guide_advance_copy.js.map +0 -1
- package/doc_build/static/js/async/en_guide_advance_external-dependency.js +0 -3806
- package/doc_build/static/js/async/en_guide_advance_external-dependency.js.map +0 -1
- package/doc_build/static/js/async/en_guide_advance_in-depth-about-build.js +0 -5304
- package/doc_build/static/js/async/en_guide_advance_in-depth-about-build.js.map +0 -1
- package/doc_build/static/js/async/en_guide_advance_in-depth-about-dev-command.js +0 -2526
- package/doc_build/static/js/async/en_guide_advance_in-depth-about-dev-command.js.map +0 -1
- package/doc_build/static/js/async/en_guide_advance_theme-config.js +0 -2486
- package/doc_build/static/js/async/en_guide_advance_theme-config.js.map +0 -1
- package/doc_build/static/js/async/en_guide_basic_before-getting-started.js +0 -3720
- package/doc_build/static/js/async/en_guide_basic_before-getting-started.js.map +0 -1
- package/doc_build/static/js/async/en_guide_basic_command-preview.js +0 -3973
- package/doc_build/static/js/async/en_guide_basic_command-preview.js.map +0 -1
- package/doc_build/static/js/async/en_guide_basic_modify-output-product.js +0 -3137
- package/doc_build/static/js/async/en_guide_basic_modify-output-product.js.map +0 -1
- package/doc_build/static/js/async/en_guide_basic_publish-your-project.js +0 -2180
- package/doc_build/static/js/async/en_guide_basic_publish-your-project.js.map +0 -1
- package/doc_build/static/js/async/en_guide_basic_test-your-project.js +0 -3887
- package/doc_build/static/js/async/en_guide_basic_test-your-project.js.map +0 -1
- package/doc_build/static/js/async/en_guide_basic_use-micro-generator.js +0 -2973
- package/doc_build/static/js/async/en_guide_basic_use-micro-generator.js.map +0 -1
- package/doc_build/static/js/async/en_guide_basic_using-storybook.js +0 -4723
- package/doc_build/static/js/async/en_guide_basic_using-storybook.js.map +0 -1
- package/doc_build/static/js/async/en_guide_best-practices_components.js +0 -21400
- package/doc_build/static/js/async/en_guide_best-practices_components.js.map +0 -1
- package/doc_build/static/js/async/en_guide_intro_getting-started.js +0 -2149
- package/doc_build/static/js/async/en_guide_intro_getting-started.js.map +0 -1
- package/doc_build/static/js/async/en_guide_intro_welcome.js +0 -162
- package/doc_build/static/js/async/en_guide_intro_welcome.js.map +0 -1
- package/doc_build/static/js/async/en_guide_intro_why-module-engineering-solution.js +0 -96
- package/doc_build/static/js/async/en_guide_intro_why-module-engineering-solution.js.map +0 -1
- package/doc_build/static/js/async/en_index.js +0 -81
- package/doc_build/static/js/async/en_index.js.map +0 -1
- package/doc_build/static/js/async/en_plugins_guide_getting-started.js +0 -2556
- package/doc_build/static/js/async/en_plugins_guide_getting-started.js.map +0 -1
- package/doc_build/static/js/async/en_plugins_guide_plugin-object.js +0 -4173
- package/doc_build/static/js/async/en_plugins_guide_plugin-object.js.map +0 -1
- package/doc_build/static/js/async/en_plugins_guide_setup-function.js +0 -3815
- package/doc_build/static/js/async/en_plugins_guide_setup-function.js.map +0 -1
- package/doc_build/static/js/async/en_plugins_official-list_overview.js +0 -66
- package/doc_build/static/js/async/en_plugins_official-list_overview.js.map +0 -1
- package/doc_build/static/js/async/packages_cli_doc-core_src_theme-default_components_Search_logic_search_ts.js +0 -246
- package/doc_build/static/js/async/packages_cli_doc-core_src_theme-default_components_Search_logic_search_ts.js.map +0 -1
- 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
- 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
- package/doc_build/static/js/async/vendors-node_modules_pnpm_flexsearch_0_6_32_node_modules_flexsearch_dist_flexsearch_min_js.js +0 -54
- 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
- package/doc_build/static/js/async/zh_api_config_build-config.js +0 -11354
- package/doc_build/static/js/async/zh_api_config_build-config.js.map +0 -1
- package/doc_build/static/js/async/zh_api_config_build-preset.js +0 -7867
- package/doc_build/static/js/async/zh_api_config_build-preset.js.map +0 -1
- package/doc_build/static/js/async/zh_api_config_design-system.js +0 -48712
- package/doc_build/static/js/async/zh_api_config_design-system.js.map +0 -1
- package/doc_build/static/js/async/zh_api_config_plugins.js +0 -1488
- package/doc_build/static/js/async/zh_api_config_plugins.js.map +0 -1
- package/doc_build/static/js/async/zh_api_config_testing.js +0 -2132
- package/doc_build/static/js/async/zh_api_config_testing.js.map +0 -1
- package/doc_build/static/js/async/zh_api_index.js +0 -52
- package/doc_build/static/js/async/zh_api_index.js.map +0 -1
- package/doc_build/static/js/async/zh_api_plugin-api_plugin-hooks.js +0 -14392
- package/doc_build/static/js/async/zh_api_plugin-api_plugin-hooks.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_advance_asset.js +0 -3972
- package/doc_build/static/js/async/zh_guide_advance_asset.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_advance_build-umd.js +0 -9859
- package/doc_build/static/js/async/zh_guide_advance_build-umd.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_advance_copy.js +0 -6541
- package/doc_build/static/js/async/zh_guide_advance_copy.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_advance_external-dependency.js +0 -3808
- package/doc_build/static/js/async/zh_guide_advance_external-dependency.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_advance_in-depth-about-build.js +0 -5304
- package/doc_build/static/js/async/zh_guide_advance_in-depth-about-build.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_advance_in-depth-about-dev-command.js +0 -2526
- package/doc_build/static/js/async/zh_guide_advance_in-depth-about-dev-command.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_advance_theme-config.js +0 -2477
- package/doc_build/static/js/async/zh_guide_advance_theme-config.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_basic_before-getting-started.js +0 -3711
- package/doc_build/static/js/async/zh_guide_basic_before-getting-started.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_basic_command-preview.js +0 -3805
- package/doc_build/static/js/async/zh_guide_basic_command-preview.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_basic_modify-output-product.js +0 -3142
- package/doc_build/static/js/async/zh_guide_basic_modify-output-product.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_basic_publish-your-project.js +0 -2241
- package/doc_build/static/js/async/zh_guide_basic_publish-your-project.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_basic_test-your-project.js +0 -4286
- package/doc_build/static/js/async/zh_guide_basic_test-your-project.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_basic_use-micro-generator.js +0 -2979
- package/doc_build/static/js/async/zh_guide_basic_use-micro-generator.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_basic_using-storybook.js +0 -4760
- package/doc_build/static/js/async/zh_guide_basic_using-storybook.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_best-practices_components.js +0 -21100
- package/doc_build/static/js/async/zh_guide_best-practices_components.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_intro_getting-started.js +0 -2031
- package/doc_build/static/js/async/zh_guide_intro_getting-started.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_intro_welcome.js +0 -162
- package/doc_build/static/js/async/zh_guide_intro_welcome.js.map +0 -1
- package/doc_build/static/js/async/zh_guide_intro_why-module-engineering-solution.js +0 -96
- package/doc_build/static/js/async/zh_guide_intro_why-module-engineering-solution.js.map +0 -1
- package/doc_build/static/js/async/zh_index.js +0 -81
- package/doc_build/static/js/async/zh_index.js.map +0 -1
- package/doc_build/static/js/async/zh_plugins_guide_getting-started.js +0 -2604
- package/doc_build/static/js/async/zh_plugins_guide_getting-started.js.map +0 -1
- package/doc_build/static/js/async/zh_plugins_guide_plugin-object.js +0 -4169
- package/doc_build/static/js/async/zh_plugins_guide_plugin-object.js.map +0 -1
- package/doc_build/static/js/async/zh_plugins_guide_setup-function.js +0 -3815
- package/doc_build/static/js/async/zh_plugins_guide_setup-function.js.map +0 -1
- package/doc_build/static/js/async/zh_plugins_official-list_overview.js +0 -66
- package/doc_build/static/js/async/zh_plugins_official-list_overview.js.map +0 -1
- package/doc_build/static/js/builder-runtime.js +0 -1375
- package/doc_build/static/js/builder-runtime.js.map +0 -1
- package/doc_build/static/js/lib-lodash.js +0 -4907
- package/doc_build/static/js/lib-lodash.js.map +0 -1
- package/doc_build/static/js/lib-polyfill.js +0 -11847
- package/doc_build/static/js/lib-polyfill.js.map +0 -1
- package/doc_build/static/js/lib-react.js +0 -39510
- package/doc_build/static/js/lib-react.js.map +0 -1
- package/doc_build/static/js/main.js +0 -8610
- package/doc_build/static/js/main.js.map +0 -1
- 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
- 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
- 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,
|
|
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
|
|
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
|
-
|
|
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.
|
|
129
|
-
2.
|
|
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
|
-
|
|
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.**
|
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:
|
|
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: '
|
|
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: '
|
|
24
|
-
details: Develop your npm packages without
|
|
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
|
|
@@ -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
|
|
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
|
-
|
|
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`
|
|
133
|
-
2. 在 Storybook
|
|
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: '
|
|
18
|
-
details:
|
|
19
|
-
icon: 📦
|
|
20
|
-
- title: 'transform + bundle'
|
|
21
|
-
details: 支持bundle和bundleless两种构建模式。
|
|
20
|
+
- title: '双构建模式'
|
|
21
|
+
details: 支持 Bundle 和 Bundleless 两种构建模式。
|
|
22
22
|
icon: ✨
|
|
23
|
-
- title: '
|
|
24
|
-
details:
|
|
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
|
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
|
-
|
|
121
|
-
|
|
122
|
-
|
|
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.
|
|
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.
|
|
15
|
-
"@modern-js/doc-plugin-auto-sidebar": "2.
|
|
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>
|