@modern-js/module-tools-docs 2.25.0 → 2.25.2-beta.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/CHANGELOG.md +7 -0
- package/doc_build/api/config/build-config.html +522 -0
- package/doc_build/api/config/build-preset.html +71 -0
- package/doc_build/api/config/design-system.html +113 -0
- package/doc_build/api/config/dev.html +40 -0
- package/doc_build/api/config/plugins.html +31 -0
- package/doc_build/api/config/testing.html +31 -0
- package/doc_build/api/index.html +11 -0
- package/doc_build/api/plugin-api/plugin-hooks.html +122 -0
- package/doc_build/components/faq-build-exception.html +11 -0
- package/doc_build/components/faq-build-other.html +11 -0
- package/doc_build/components/faq-build-product.html +11 -0
- package/doc_build/components/faq-storybook.html +11 -0
- package/doc_build/components/faq-test.html +11 -0
- package/doc_build/en/api/config/build-config.html +443 -0
- package/doc_build/en/api/config/build-preset.html +71 -0
- package/doc_build/en/api/config/design-system.html +127 -0
- package/doc_build/en/api/config/dev.html +40 -0
- package/doc_build/en/api/config/plugins.html +31 -0
- package/doc_build/en/api/config/testing.html +31 -0
- package/doc_build/en/api/index.html +11 -0
- package/doc_build/en/api/plugin-api/plugin-hooks.html +122 -0
- package/doc_build/en/components/faq-build-exception.html +11 -0
- package/doc_build/en/components/faq-build-other.html +11 -0
- package/doc_build/en/components/faq-build-product.html +11 -0
- package/doc_build/en/components/faq-storybook.html +11 -0
- package/doc_build/en/components/faq-test.html +11 -0
- package/doc_build/en/guide/advance/asset.html +31 -0
- package/doc_build/en/guide/advance/build-umd.html +42 -0
- package/doc_build/en/guide/advance/copy.html +52 -0
- package/doc_build/en/guide/advance/external-dependency.html +32 -0
- package/doc_build/en/guide/advance/in-depth-about-build.html +123 -0
- package/doc_build/en/guide/advance/in-depth-about-dev-command.html +32 -0
- package/doc_build/en/guide/advance/theme-config.html +39 -0
- package/doc_build/en/guide/basic/before-getting-started.html +97 -0
- package/doc_build/en/guide/basic/command-preview.html +73 -0
- package/doc_build/en/guide/basic/modify-output-product.html +113 -0
- package/doc_build/en/guide/basic/publish-your-project.html +60 -0
- package/doc_build/en/guide/basic/test-your-project.html +41 -0
- package/doc_build/en/guide/basic/use-micro-generator.html +47 -0
- package/doc_build/en/guide/basic/using-storybook.html +76 -0
- package/doc_build/en/guide/best-practices/components.html +121 -0
- package/doc_build/en/guide/faq/build.html +91 -0
- package/doc_build/en/guide/faq/index.html +17 -0
- package/doc_build/en/guide/faq/storybook.html +53 -0
- package/doc_build/en/guide/faq/test.html +16 -0
- package/doc_build/en/guide/intro/getting-started.html +53 -0
- package/doc_build/en/guide/intro/welcome.html +23 -0
- package/doc_build/en/guide/intro/why-module-engineering-solution.html +19 -0
- package/doc_build/en/index.html +11 -0
- package/doc_build/en/plugins/guide/getting-started.html +25 -0
- package/doc_build/en/plugins/guide/plugin-object.html +24 -0
- package/doc_build/en/plugins/guide/setup-function.html +40 -0
- package/doc_build/en/plugins/official-list/overview.html +19 -0
- package/doc_build/en/plugins/official-list/plugin-babel.html +23 -0
- package/doc_build/en/plugins/official-list/plugin-banner.html +40 -0
- package/doc_build/en/plugins/official-list/plugin-import.html +44 -0
- package/doc_build/en/plugins/official-list/plugin-node-polyfill.html +88 -0
- package/doc_build/en/plugins/official-list/plugin-polyfill.html +28 -0
- package/doc_build/guide/advance/asset.html +31 -0
- package/doc_build/guide/advance/build-umd.html +42 -0
- package/doc_build/guide/advance/copy.html +52 -0
- package/doc_build/guide/advance/external-dependency.html +31 -0
- package/doc_build/guide/advance/in-depth-about-build.html +123 -0
- package/doc_build/guide/advance/in-depth-about-dev-command.html +32 -0
- package/doc_build/guide/advance/theme-config.html +38 -0
- package/doc_build/guide/basic/before-getting-started.html +97 -0
- package/doc_build/guide/basic/command-preview.html +73 -0
- package/doc_build/guide/basic/modify-output-product.html +110 -0
- package/doc_build/guide/basic/publish-your-project.html +62 -0
- package/doc_build/guide/basic/test-your-project.html +43 -0
- package/doc_build/guide/basic/use-micro-generator.html +45 -0
- package/doc_build/guide/basic/using-storybook.html +74 -0
- package/doc_build/guide/best-practices/components.html +121 -0
- package/doc_build/guide/faq/build.html +91 -0
- package/doc_build/guide/faq/index.html +17 -0
- package/doc_build/guide/faq/storybook.html +53 -0
- package/doc_build/guide/faq/test.html +16 -0
- package/doc_build/guide/intro/getting-started.html +50 -0
- package/doc_build/guide/intro/welcome.html +23 -0
- package/doc_build/guide/intro/why-module-engineering-solution.html +19 -0
- package/doc_build/index.html +11 -0
- package/doc_build/plugins/guide/getting-started.html +25 -0
- package/doc_build/plugins/guide/plugin-object.html +24 -0
- package/doc_build/plugins/guide/setup-function.html +40 -0
- package/doc_build/plugins/official-list/overview.html +19 -0
- package/doc_build/plugins/official-list/plugin-babel.html +23 -0
- package/doc_build/plugins/official-list/plugin-banner.html +40 -0
- package/doc_build/plugins/official-list/plugin-import.html +44 -0
- package/doc_build/plugins/official-list/plugin-node-polyfill.html +88 -0
- package/doc_build/plugins/official-list/plugin-polyfill.html +28 -0
- package/doc_build/route.json +10 -0
- package/doc_build/ssr/bundles/main.js +30 -0
- package/doc_build/ssr/bundles/main.js.LICENSE.txt +103 -0
- package/doc_build/static/css/defaultVendors~docs_en_api_config_build-config_md~docs_en_api_config_build-preset_mdx~docs_en~2cd1be.71af0621.css +1 -0
- package/doc_build/static/css/main.1e1c5ea3.css +17 -0
- package/doc_build/static/js/async/default~docs_en_guide_faq_build_mdx~docs_en_guide_faq_storybook_mdx~docs_en_guide_faq_test_md~931d29.a2443c41.js +1 -0
- package/doc_build/static/js/async/docs_en_api_config_build-config_md.47c13184.js +1 -0
- package/doc_build/static/js/async/docs_en_api_config_build-preset_mdx.240d175b.js +1 -0
- package/doc_build/static/js/async/docs_en_api_config_design-system_md.b2ec1ff7.js +1 -0
- package/doc_build/static/js/async/docs_en_api_config_dev_md.6ad208aa.js +1 -0
- package/doc_build/static/js/async/docs_en_api_config_plugins_md.da21c1a9.js +1 -0
- package/doc_build/static/js/async/docs_en_api_config_testing_md.5655d56b.js +1 -0
- package/doc_build/static/js/async/docs_en_api_index_md.b332bf64.js +1 -0
- package/doc_build/static/js/async/docs_en_api_plugin-api_plugin-hooks_md.b0f73e0d.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_advance_asset_mdx.d302e90c.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_advance_build-umd_mdx.554fa073.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_advance_copy_md.78b33f73.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_advance_external-dependency_mdx.507e4091.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_advance_in-depth-about-build_md.207e8b25.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_advance_in-depth-about-dev-command_md.72d6b6fc.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_advance_theme-config_mdx.168a5eec.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_basic_before-getting-started_md.a00933ab.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_basic_command-preview_md.5e63d7ad.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_basic_modify-output-product_md.abd250e1.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_basic_publish-your-project_md.3b098b03.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_basic_test-your-project_mdx.b86e9b69.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_basic_use-micro-generator_md.e03b16c8.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_basic_using-storybook_mdx.32e9b389.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_best-practices_components_mdx.a56e369b.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_faq_build_mdx.81c243c7.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_faq_index_md.85367f4a.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_faq_storybook_mdx.d6b26cfd.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_faq_test_mdx.a7a1c8b5.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_intro_getting-started_md.7c901798.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_intro_welcome_md.69fe3324.js +1 -0
- package/doc_build/static/js/async/docs_en_guide_intro_why-module-engineering-solution_md.766afaee.js +1 -0
- package/doc_build/static/js/async/docs_en_index_md.32415ad9.js +1 -0
- package/doc_build/static/js/async/docs_en_plugins_guide_getting-started_mdx.c6631fd6.js +1 -0
- package/doc_build/static/js/async/docs_en_plugins_guide_plugin-object_mdx.0971cbdb.js +1 -0
- package/doc_build/static/js/async/docs_en_plugins_guide_setup-function_mdx.388d92b1.js +1 -0
- package/doc_build/static/js/async/docs_en_plugins_official-list_overview_md.9390ed67.js +1 -0
- package/doc_build/static/js/async/docs_en_plugins_official-list_plugin-babel_md.0528b729.js +1 -0
- package/doc_build/static/js/async/docs_en_plugins_official-list_plugin-banner_md.c14f8599.js +1 -0
- package/doc_build/static/js/async/docs_en_plugins_official-list_plugin-import_mdx.67bac7e1.js +1 -0
- package/doc_build/static/js/async/docs_en_plugins_official-list_plugin-node-polyfill_md.19819cf5.js +1 -0
- package/doc_build/static/js/async/docs_en_plugins_official-list_plugin-polyfill_md.473537df.js +1 -0
- package/doc_build/static/js/async/docs_zh_api_config_build-config_md.e52b0287.js +1 -0
- package/doc_build/static/js/async/docs_zh_api_config_build-preset_mdx.8b874378.js +1 -0
- package/doc_build/static/js/async/docs_zh_api_config_design-system_md.ceae6914.js +1 -0
- package/doc_build/static/js/async/docs_zh_api_config_dev_md.033094f8.js +1 -0
- package/doc_build/static/js/async/docs_zh_api_config_plugins_md.ab43b516.js +1 -0
- package/doc_build/static/js/async/docs_zh_api_config_testing_md.2c1f171d.js +1 -0
- package/doc_build/static/js/async/docs_zh_api_index_md.5df1b9d0.js +1 -0
- package/doc_build/static/js/async/docs_zh_api_plugin-api_plugin-hooks_md.9f155180.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_advance_asset_mdx.0b551e5e.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_advance_build-umd_mdx.4c0a741d.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_advance_copy_md.ff70ddd3.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_advance_external-dependency_mdx.64bae82a.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_advance_in-depth-about-build_md.d16f07b4.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_advance_in-depth-about-dev-command_md.2eabb853.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_advance_theme-config_mdx.5670e00b.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_basic_before-getting-started_md.3e23f82e.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_basic_command-preview_md.718669ed.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_basic_modify-output-product_md.bea77add.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_basic_publish-your-project_md.b0c63699.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_basic_test-your-project_mdx.b9ee0af4.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_basic_use-micro-generator_md.ad32d392.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_basic_using-storybook_mdx.2748f6f6.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_best-practices_components_mdx.e4450a3c.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_faq_build_mdx.470ca09d.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_faq_index_md.9c5738a8.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_faq_storybook_mdx.e1fb8e18.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_faq_test_mdx.d332b61f.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_intro_getting-started_md.8af35ffc.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_intro_welcome_md.6169850d.js +1 -0
- package/doc_build/static/js/async/docs_zh_guide_intro_why-module-engineering-solution_md.ff0f5ef0.js +1 -0
- package/doc_build/static/js/async/docs_zh_index_md.bc7e2f02.js +1 -0
- package/doc_build/static/js/async/docs_zh_plugins_guide_getting-started_mdx.6a2c07ee.js +1 -0
- package/doc_build/static/js/async/docs_zh_plugins_guide_plugin-object_mdx.9a665baa.js +1 -0
- package/doc_build/static/js/async/docs_zh_plugins_guide_setup-function_mdx.a614b224.js +1 -0
- package/doc_build/static/js/async/docs_zh_plugins_official-list_overview_md.bf4a7405.js +1 -0
- package/doc_build/static/js/async/docs_zh_plugins_official-list_plugin-babel_md.7107a66b.js +1 -0
- package/doc_build/static/js/async/docs_zh_plugins_official-list_plugin-banner_md.4443ae99.js +1 -0
- package/doc_build/static/js/async/docs_zh_plugins_official-list_plugin-import_mdx.e4923a9a.js +1 -0
- package/doc_build/static/js/async/docs_zh_plugins_official-list_plugin-node-polyfill_md.26c9cb0d.js +1 -0
- package/doc_build/static/js/async/docs_zh_plugins_official-list_plugin-polyfill_md.0bda701d.js +1 -0
- package/doc_build/static/js/defaultVendors~docs_en_api_config_build-config_md~docs_en_api_config_build-preset_mdx~docs_en~2cd1be.7070a8dd.js +1 -0
- package/doc_build/static/js/defaultVendors~docs_en_api_config_build-config_md~docs_en_api_config_build-preset_mdx~docs_en~2cd1be.7070a8dd.js.LICENSE.txt +20 -0
- package/doc_build/static/js/lib-lodash.20527186.js +1 -0
- package/doc_build/static/js/lib-polyfill.a99fdfae.js +1 -0
- package/doc_build/static/js/lib-react.87879e53.js +1 -0
- package/doc_build/static/js/lib-react.87879e53.js.LICENSE.txt +29 -0
- package/doc_build/static/js/lib-router.65b37e4a.js +1 -0
- package/doc_build/static/js/lib-router.65b37e4a.js.LICENSE.txt +32 -0
- package/doc_build/static/js/main.42725889.js +1 -0
- package/doc_build/static/search_index.en.6f4165d1.json +1 -0
- package/doc_build/static/search_index.en.8cd54797.json +1 -0
- package/doc_build/static/search_index.zh.7ed3054c.json +1 -0
- package/doc_build/static/search_index.zh.97edcc6e.json +1 -0
- package/docs/en/api/config/build-config.md +153 -38
- package/docs/en/api/config/build-preset.mdx +3 -3
- package/docs/en/api/config/design-system.md +3 -3
- package/docs/en/api/config/dev.md +22 -25
- package/docs/en/api/config/plugins.md +50 -5
- package/docs/en/api/config/testing.md +3 -3
- package/docs/en/components/faq-build-exception.mdx +1 -0
- package/docs/en/components/faq-build-other.mdx +0 -0
- package/docs/en/components/faq-build-product.mdx +0 -0
- package/docs/en/components/faq-storybook.mdx +0 -0
- package/docs/en/components/faq-test.mdx +1 -0
- package/docs/en/guide/advance/build-umd.mdx +1 -1
- package/docs/en/guide/basic/command-preview.md +2 -2
- package/docs/en/guide/basic/modify-output-product.md +16 -4
- package/docs/en/guide/best-practices/components.mdx +3 -3
- package/docs/en/guide/faq/_category_.json +4 -0
- package/docs/en/guide/faq/build.mdx +247 -0
- package/docs/en/guide/faq/index.md +7 -0
- package/docs/en/guide/faq/storybook.mdx +102 -0
- package/docs/en/guide/faq/test.mdx +11 -0
- package/docs/en/plugins/guide/setup-function.mdx +1 -1
- package/docs/en/plugins/official-list/plugin-banner.md +1 -1
- package/docs/en/plugins/official-list/plugin-import.mdx +34 -25
- package/docs/zh/api/config/build-config.md +158 -41
- package/docs/zh/api/config/build-preset.mdx +1 -1
- package/docs/zh/api/config/design-system.md +3 -3
- package/docs/zh/api/config/dev.md +23 -26
- package/docs/zh/api/config/plugins.md +50 -5
- package/docs/zh/api/config/testing.md +3 -3
- package/docs/zh/components/faq-build-exception.mdx +1 -0
- package/docs/zh/components/faq-build-other.mdx +0 -0
- package/docs/zh/components/faq-build-product.mdx +0 -0
- package/docs/zh/components/faq-storybook.mdx +0 -0
- package/docs/zh/components/faq-test.mdx +1 -0
- package/docs/zh/guide/advance/build-umd.mdx +1 -1
- package/docs/zh/guide/basic/before-getting-started.md +1 -1
- package/docs/zh/guide/basic/command-preview.md +3 -3
- package/docs/zh/guide/basic/modify-output-product.md +18 -7
- package/docs/zh/guide/best-practices/components.mdx +3 -3
- package/docs/zh/guide/faq/_category_.json +4 -0
- package/docs/zh/guide/faq/build.mdx +247 -0
- package/docs/zh/guide/faq/index.md +7 -0
- package/docs/zh/guide/faq/storybook.mdx +101 -0
- package/docs/zh/guide/faq/test.mdx +11 -0
- package/docs/zh/plugins/guide/setup-function.mdx +1 -1
- package/docs/zh/plugins/official-list/plugin-banner.md +1 -1
- package/docs/zh/plugins/official-list/plugin-import.mdx +30 -21
- package/modern.config.ts +7 -0
- package/package.json +3 -3
|
@@ -6,20 +6,24 @@ sidebar_position: 3
|
|
|
6
6
|
|
|
7
7
|
## 默认输出产物
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
当你在初始化的项目里使用 `modern build` 命令的时候,Module Tools 会根据当前配置内容,生成相应的构建产物。
|
|
10
|
+
|
|
11
|
+
默认的配置内容如下:
|
|
10
12
|
|
|
11
13
|
```ts title="modern.config.ts"
|
|
12
14
|
import { moduleTools, defineConfig } from '@modern-js/module-tools';
|
|
13
15
|
|
|
14
16
|
export default defineConfig({
|
|
17
|
+
// 注册 Module Tools 的 CLI 工具
|
|
15
18
|
plugins: [moduleTools()],
|
|
19
|
+
// 指定构建预设配置
|
|
16
20
|
buildPreset: 'npm-library',
|
|
17
21
|
});
|
|
18
22
|
```
|
|
19
23
|
|
|
20
24
|
**默认生成产物具有以下特点**:
|
|
21
25
|
|
|
22
|
-
- 会生成[CommonJS](https://nodejs.org/api/modules.html#modules-commonjs-modules)和[ESM](https://nodejs.org/api/esm.html#modules-ecmascript-modules)两份产物。
|
|
26
|
+
- 会生成 [CommonJS](https://nodejs.org/api/modules.html#modules-commonjs-modules) 和 [ESM](https://nodejs.org/api/esm.html#modules-ecmascript-modules) 两份产物。
|
|
23
27
|
- 代码语法支持到 `ES6` ,更高级的语法将会被转换。
|
|
24
28
|
- 所有的代码经过打包变成了一个文件,即进行了 **bundle** 处理。
|
|
25
29
|
- 产物输出根目录为项目下的 `dist` 目录,类型文件输出的目录为 `dist/types`。
|
|
@@ -29,7 +33,7 @@ export default defineConfig({
|
|
|
29
33
|
1. `buildPreset` 是什么?
|
|
30
34
|
2. 产物的这些特点是由什么决定的?
|
|
31
35
|
|
|
32
|
-
|
|
36
|
+
接下来,我们首先来了解一下 `buildPreset`。
|
|
33
37
|
|
|
34
38
|
## 构建预设
|
|
35
39
|
|
|
@@ -70,10 +74,17 @@ export default defineConfig({
|
|
|
70
74
|
});
|
|
71
75
|
```
|
|
72
76
|
|
|
73
|
-
在上面的代码实现中,`preset.NPM_LIBRARY` 与预设字符串 `"npm-library"`
|
|
77
|
+
在上面的代码实现中,`preset.NPM_LIBRARY` 与预设字符串 `"npm-library"` 是相对应的,它代表与 `"npm-library"` 等价的多个构建相关的配置。
|
|
78
|
+
|
|
79
|
+
我们通过 `map` 方法遍历了 `NPM_LIBRARY` 这个数组,在这个数组中包含了多个 `buildConfig` 对象。我们将原本的 `buildConfig` 对象进行了浅拷贝,并修改了浅拷贝后 `target` 的值,将它指定为 `es5`。
|
|
80
|
+
|
|
81
|
+
如果你想了解 `preset.NPM_LIBRARY` 具体包含的内容,可以通过 [BuildPreset API](/api/config/build-preset) 查看。
|
|
82
|
+
|
|
83
|
+
此外,在 `preset` 对象下,不仅包含了 `NPM_LIBRARY`,也包含了其他类似的常量。
|
|
74
84
|
|
|
75
|
-
|
|
76
|
-
|
|
85
|
+
:::tip
|
|
86
|
+
我们不仅可以使用 `preset.NPM_LIBRARY` 来获取 `"npm-library"` 对应的构建配置,也可以使用 `preset['npm-library']` 这样的方式。
|
|
87
|
+
:::
|
|
77
88
|
|
|
78
89
|
那么这里的 `buildConfig` 对象是什么呢?之前提到的构建产物特点又是根据什么呢?
|
|
79
90
|
|
|
@@ -81,7 +92,7 @@ export default defineConfig({
|
|
|
81
92
|
|
|
82
93
|
## 构建配置(对象)
|
|
83
94
|
|
|
84
|
-
**`buildConfig`
|
|
95
|
+
**`buildConfig` 是一个用来描述如何编译、生成构建产物的配置项**。在最开始提到的关于“_构建产物的特点_”,其实都是 `buildConfig` 所支持的属性。目前所支持的属性覆盖了大部分模块类型项目在构建产物时的需求,`buildConfig` 不仅包含一些产物所具备的属性,也包含了构建产物所需要的一些特性功能。接下来从分类的角度简单罗列一下:
|
|
85
96
|
|
|
86
97
|
**构建产物的基本属性包括:**
|
|
87
98
|
|
|
@@ -609,7 +609,7 @@ Tailwind CSS 提供了 [`@apply`](https://v2.tailwindcss.com/docs/functions-and-
|
|
|
609
609
|
|
|
610
610
|
对于以下代码,在 bundle 和 bundleless 两种模式下,构建产物会有很大区别。
|
|
611
611
|
|
|
612
|
-
> 所谓 bundle 和 bundleless 可以查看 [
|
|
612
|
+
> 所谓 bundle 和 bundleless 可以查看 [「Bundle 和 Bundleless」](/guide/advance/in-depth-about-build#bundle-和-bundleless)
|
|
613
613
|
|
|
614
614
|
```tsx ./src/index.tsx
|
|
615
615
|
import 'tailwindcss/utilities.css';
|
|
@@ -786,8 +786,8 @@ export default defineConfig({
|
|
|
786
786
|
|
|
787
787
|
## 测试组件
|
|
788
788
|
|
|
789
|
-
关于如何对组件进行测试,可以参考 [
|
|
789
|
+
关于如何对组件进行测试,可以参考 [「测试项目」](/guide/basic/test-your-project)。
|
|
790
790
|
|
|
791
791
|
## 发布组件
|
|
792
792
|
|
|
793
|
-
推荐使用模块工程提供版本发布功能,可以参考 [
|
|
793
|
+
推荐使用模块工程提供版本发布功能,可以参考 [「版本管理与发布」](/guide/basic/publish-your-project)。
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
# 构建相关问题
|
|
2
|
+
|
|
3
|
+
## 产物问题
|
|
4
|
+
|
|
5
|
+
import BuildProductFAQ from '@site-docs/components/faq-build-product';
|
|
6
|
+
|
|
7
|
+
<BuildProductFAQ/>
|
|
8
|
+
|
|
9
|
+
### Class Fields 的初始化处理
|
|
10
|
+
|
|
11
|
+
TypeSript 提供了 `useDefineForClassFields` 配置用于控制对于 `public class fields` 的转换处理。
|
|
12
|
+
|
|
13
|
+
如果有一段代码:
|
|
14
|
+
|
|
15
|
+
``` ts
|
|
16
|
+
class C {
|
|
17
|
+
foo = 100;
|
|
18
|
+
bar: string;
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
当 `useDefineForClassFields` 为 `false` 的时候,则编译后的代码会变为:
|
|
23
|
+
|
|
24
|
+
``` ts
|
|
25
|
+
class C {
|
|
26
|
+
constructor() {
|
|
27
|
+
this.foo = 100;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
当 `useDefineForClassFields` 为 `true` 的时候,则编译后的代码会变为:
|
|
33
|
+
|
|
34
|
+
``` ts
|
|
35
|
+
class C {
|
|
36
|
+
constructor() {
|
|
37
|
+
Object.defineProperty(this, "foo", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: true,
|
|
40
|
+
writable: true,
|
|
41
|
+
value: 100,
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(this, "bar", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
configurable: true,
|
|
46
|
+
writable: true,
|
|
47
|
+
value: void 0,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
同时该配置的默认值会根据 tsconfig.json 的 [`target`](https://www.typescriptlang.org/tsconfig#target) 配置而变化:**当 `target` 是 ES2022 或者更高的时候,则 `useDefineForClassFields` 默认配置为 `true`,否则就是默认为 `false`**。
|
|
54
|
+
|
|
55
|
+
关于 TypeScript 这个配置的更多信息,可以参考下面的链接:
|
|
56
|
+
|
|
57
|
+
- [The useDefineForClassFields Flag and The declare Property Modifier](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#the-usedefineforclassfields-flag-and-the-declare-property-modifier)
|
|
58
|
+
|
|
59
|
+
Modern.js Module 目前会根据下面的逻辑进行处理:
|
|
60
|
+
|
|
61
|
+
1. 首先根据当前项目的 tsconfig.json 的 `useDefineForClassFields` 配置确定在 Modern.js Module 内部如何处理。目前只会读取当前项目路径下的 tsconfig.json 文件的内容,暂时不支持根据 [`extends`](https://www.typescriptlang.org/tsconfig#extends) 配置来获取最终的 tsconfig 配置。
|
|
62
|
+
2. 如果没有检测 tsconfig.json 的 `useDefineForClassFields` 配置,则会根据 tsconfig.json 的 `target` 配置来确定默认值。如果 `target` 大于 `ES2022`(包含 `EsNext`),则`useDefineForClassFields`默认为 `true`,否则为 `false`。
|
|
63
|
+
3. 如果没有检测到 tsconfig.json 的 `target`,则按照 `useDefineForClassFields`的值 为 `true` 进行处理。
|
|
64
|
+
|
|
65
|
+
### babel-plugin-lodash 将引入的 lodash 处理成 `undefined`
|
|
66
|
+
|
|
67
|
+
当使用类似下面的方式的时候,会出现这个问题:
|
|
68
|
+
|
|
69
|
+
``` ts
|
|
70
|
+
import * as Lodash from 'lodash';
|
|
71
|
+
|
|
72
|
+
export const libs = {
|
|
73
|
+
_: Lodash,
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
目前在 `babel-plugin-lodash` Github 上的相关 Issue:
|
|
78
|
+
|
|
79
|
+
- [#235](https://github.com/lodash/babel-plugin-lodash/issues/235)
|
|
80
|
+
|
|
81
|
+
这个问题的解决办法是移除 `babel-plugin-lodash`,因为此时不需要该插件进行按需引用,使用该插件会产生副作用。
|
|
82
|
+
|
|
83
|
+
类似的情况在 `babel-plugin-import` 上也可能会出现。比如有类似如下的代码:
|
|
84
|
+
|
|
85
|
+
``` ts
|
|
86
|
+
import * as Comps from 'components';
|
|
87
|
+
|
|
88
|
+
export const libs = {
|
|
89
|
+
comps: Comps,
|
|
90
|
+
};
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
此时 `babel-plugin-import` 也可能会导致 `Comps` 变为 `undefined`。因此也需要移除对应的 `babel-plugin-import`。
|
|
94
|
+
|
|
95
|
+
## 异常类问题
|
|
96
|
+
|
|
97
|
+
import BuildExceptionFAQ from '@site-docs/components/faq-build-exception';
|
|
98
|
+
|
|
99
|
+
<BuildExceptionFAQ />
|
|
100
|
+
|
|
101
|
+
### Dynamic require of "react" is not supported
|
|
102
|
+
|
|
103
|
+
#### 问题描述
|
|
104
|
+
|
|
105
|
+
当构建的产物配置中产物格式为 ES modules 的时候:
|
|
106
|
+
|
|
107
|
+
``` ts
|
|
108
|
+
export default defineConfig({
|
|
109
|
+
buildConfig: {
|
|
110
|
+
format: 'esm',
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
如果导入了的第三方 npm 包的 cjs 产物,那么生成的产物可能会在 webpack 下有可能无法正常运行。
|
|
116
|
+
|
|
117
|
+

|
|
118
|
+
|
|
119
|
+
#### 解决办法
|
|
120
|
+
|
|
121
|
+
1. **首先需要找到是哪个第三方包引起的问题**。例如报错信息中指向了 `react` 这个包,那么就要寻找在哪个第三方包里存在 `require('react')` 这样的代码。比如 [`react-draggable`](https://web-bnpm.byted.org/package/react-draggable) ,这个包仅包含 `cjs` 产物,那么问题定位到 `react-draggable` 这个包。
|
|
122
|
+
2. 然后我们需要将这个包通过下面的配置进行排除,即**不打包存在问题的第三方包**。
|
|
123
|
+
|
|
124
|
+
``` ts
|
|
125
|
+
export default defineConfig({
|
|
126
|
+
buildConfig: {
|
|
127
|
+
externals: ['react-draggable'],
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
#### 参考链接
|
|
133
|
+
|
|
134
|
+
- [When using esbuild with external react I get Dynamic require of "react" is not supported](https://stackoverflow.com/questions/68423950/when-using-esbuild-with-external-react-i-get-dynamic-require-of-react-is-not-s)
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
### 编译过程中,因为某个组件库的 less 文件报错:`'Operation on an invalid type'`
|
|
138
|
+
|
|
139
|
+
可能是因为该组件库依赖的 Less 版本是 v3,而 Modern.js Module 默认是 v4。v3 与 v4 在 `math` 配置上存在有 Break Change,可以查看这个[链接](https://stackoverflow.com/questions/73298187/less-error-operation-on-an-invalid-type-in-antd-dependency) 了解详情。
|
|
140
|
+
|
|
141
|
+
因此,如果是在源码中使用了类似这样的组件库:
|
|
142
|
+
|
|
143
|
+
在构建配置中使用了 `buildPreset` 的情况下,按照下面进行修改:
|
|
144
|
+
|
|
145
|
+
``` js
|
|
146
|
+
module.exports = {
|
|
147
|
+
buildPreset({ extendPreset }) {
|
|
148
|
+
return extendPreset('your-build-preset', {
|
|
149
|
+
style: {
|
|
150
|
+
less: {
|
|
151
|
+
lessOptions: {
|
|
152
|
+
math: 'always',
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
});
|
|
157
|
+
},
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
或者使用了自定义的 `buildConfig` 的情况下,按照下面进行修改:
|
|
162
|
+
|
|
163
|
+
``` js
|
|
164
|
+
module.exports = {
|
|
165
|
+
buildConfig: {
|
|
166
|
+
style: {
|
|
167
|
+
less: {
|
|
168
|
+
lessOptions: {
|
|
169
|
+
math: 'always',
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
如果是在 Storybook 中使用了类似这样的组件,则需要修改 Storybook 的调试配置:
|
|
178
|
+
|
|
179
|
+
```js
|
|
180
|
+
module.exports = {
|
|
181
|
+
dev: {
|
|
182
|
+
storybook: {
|
|
183
|
+
webpackChain(chain, { CHAIN_ID }) {
|
|
184
|
+
chain.module
|
|
185
|
+
.rule(CHAIN_ID.RULE.LESS)
|
|
186
|
+
.use(CHAIN_ID.USE.LESS)
|
|
187
|
+
.tap(options => {
|
|
188
|
+
options.lessOptions = {
|
|
189
|
+
...options.lessOptions,
|
|
190
|
+
math: 'always',
|
|
191
|
+
};
|
|
192
|
+
return options;
|
|
193
|
+
});
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Bundle DTS failed
|
|
201
|
+
|
|
202
|
+
正常情况下,使用 `tsc` Modern.js Module 不仅支持输出松散的类型文件产物,同时也支持打包类型文件,可以将这些松散的类型文件以及第三方依赖的类型文件打包成一个文件。
|
|
203
|
+
|
|
204
|
+
不过,打包第三方依赖的类型文件是存在风险的,**因为存在第三方依赖的类型文件无法打包的情况**。
|
|
205
|
+
|
|
206
|
+
因此当遇到 Modern.js Module 构建过程中出现 `Bundle DTS failed` 的错误信息标题的时候,可以观察报错信息是来自某个第三方依赖。尝试设置 [`dts.respectExternal`](/api/config/build-config.html#dtsrespectexternal) 为 `false` 来关闭打包第三方依赖的类型文件的行为。
|
|
207
|
+
|
|
208
|
+
### `defineConfig` 函数类型报错:`如果没有引用 "...",则无法命名 "default" 的推断类型`
|
|
209
|
+
|
|
210
|
+
检查项目的 tsconfig.json 文件中是否存在 [`include`](https://www.typescriptlang.org/tsconfig#include) 配置,如果没有,则尝试增加下面的内容:
|
|
211
|
+
|
|
212
|
+
```json
|
|
213
|
+
{
|
|
214
|
+
"include": ["src"]
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## 其他
|
|
219
|
+
|
|
220
|
+
import BuildOtherFAQ from '@site-docs/components/faq-build-other';
|
|
221
|
+
|
|
222
|
+
<BuildOtherFAQ />
|
|
223
|
+
|
|
224
|
+
### 增加额外的编译能力
|
|
225
|
+
|
|
226
|
+
Modern.js Module 基于 esbuild 实现,因此如果有特殊需求或者想要增加额外的编译能力,可以通过实现 esbuild 插件来解决。
|
|
227
|
+
|
|
228
|
+
Modern.js Module 提供了 [`esbuildOptions`](/api/config/build-config.html#esbuildoptions) 配置允许修改 Modern.js Module 内部的 esbuild 配置,因此可以通过该配置来增加自定义的 esbuild 插件:
|
|
229
|
+
|
|
230
|
+
``` js
|
|
231
|
+
export default defineConfig({
|
|
232
|
+
buildConfig: {
|
|
233
|
+
esbuildOptions: options => {
|
|
234
|
+
options.plugins = [
|
|
235
|
+
...options.plugins,
|
|
236
|
+
yourEsbuildPlugin,
|
|
237
|
+
];
|
|
238
|
+
return option;
|
|
239
|
+
},
|
|
240
|
+
},
|
|
241
|
+
});
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### 支持生成 CSS Modules 的 TypeScript 声明文件
|
|
245
|
+
|
|
246
|
+
- 方案一:[typed-css-modules](https://github.com/Quramy/typed-css-modules)
|
|
247
|
+
- 方案二:[postcss-modules-dts](https://www.npmjs.com/package/@guanghechen/postcss-modules-dts)
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Storybook 相关问题
|
|
2
|
+
|
|
3
|
+
import BuildStorybookFAQ from '@site-docs/components/faq-storybook';
|
|
4
|
+
|
|
5
|
+
<BuildStorybookFAQ />
|
|
6
|
+
|
|
7
|
+
## 支持 Storybook v7
|
|
8
|
+
|
|
9
|
+
Storybook v7 目前还没支持,目前计划在 Storybook v7 中支持 Rspack 构建,因此进度会慢一些。
|
|
10
|
+
相关 Issue:[#3376](https://github.com/web-infra-dev/modern.js/issues/3376)。
|
|
11
|
+
|
|
12
|
+
## 使用 Storybook Addon 或者其他配置不生效
|
|
13
|
+
|
|
14
|
+
Modern.js Module 目前使用的 Storybook 版本是 v6,如果使用了 v7 版本的 Addon 可能会出现插件不生效的情况。
|
|
15
|
+
|
|
16
|
+
除了 Addon 以外,其他配置也可能会有区别。比如修改 `preview.js` 配置文件的话,Storybook v6 与 v7 的写法也不相同:
|
|
17
|
+
|
|
18
|
+
- v6:[文档链接](https://storybook.js.org/docs/6.5/react/writing-stories/decorators#global-decorators)
|
|
19
|
+
- v7:[文档链接](https://storybook.js.org/docs/react/writing-stories/decorators#global-decorators)
|
|
20
|
+
|
|
21
|
+
## Cannot find module 'react-dom/package.json
|
|
22
|
+
|
|
23
|
+
在执行 Storybook 调试的时候,出现下面的报错提示:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
ERR! Error: Cannot find module 'react-dom/package.json'
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
解决办法:在项目中安装 `react-dom` 依赖。
|
|
30
|
+
|
|
31
|
+
``` json
|
|
32
|
+
{
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"react-dom": "^17"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 报错后,看不到具体报错信息
|
|
40
|
+
|
|
41
|
+
解决办法:
|
|
42
|
+
|
|
43
|
+
1. 找到 `@storybook/core-server/dist/cjs/dev-server.js`
|
|
44
|
+
2. 找到 `var _await$Promise$all = await Promise.all([preview, manager` 这附近的代码。
|
|
45
|
+
3. 修改成:
|
|
46
|
+
|
|
47
|
+
``` js
|
|
48
|
+
var _await$Promise$all = await Promise.all([
|
|
49
|
+
preview.catch(e => console.info(e)),
|
|
50
|
+
manager // TODO #13083 Restore this when compiling the preview is fast enough
|
|
51
|
+
// .then((result) => {
|
|
52
|
+
// if (!options.ci && !options.smokeTest) openInBrowser(address);
|
|
53
|
+
// return result;
|
|
54
|
+
// })
|
|
55
|
+
.catch(previewBuilder.bail)]),
|
|
56
|
+
_await$Promise$all2 = _slicedToArray(_await$Promise$all, 2),
|
|
57
|
+
previewResult = _await$Promise$all2[0],
|
|
58
|
+
managerResult = _await$Promise$all2[1]; // TODO #13083 Remove this when compiling the preview is fast enough
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Couldn't find any stories is your Storybook
|
|
62
|
+
|
|
63
|
+

|
|
64
|
+
|
|
65
|
+
当在预览区域看到类似这样的报错提示的时候,首先可以打开一下浏览器的控制台,应该会有些报错信息。可以先根据报错信息来推断是不是编写代码里出现的问题导致 Storybook 无法正常运行。修复后,再次刷新查看是否正常。
|
|
66
|
+
|
|
67
|
+
## Storybook 添加 Proxy 功能
|
|
68
|
+
|
|
69
|
+
Storybook 没有提供相关方案,不过 Storybook Issue 中有找到相关的解决办法。在 Modern.js Module 中,你可以:
|
|
70
|
+
|
|
71
|
+
1. 添加 `config/storybook/middleware.js` 文件,并初始化下面的内容:
|
|
72
|
+
|
|
73
|
+
``` js
|
|
74
|
+
/* eslint-disable filenames/match-exported */
|
|
75
|
+
module.exports = function expressMiddleware(router) {
|
|
76
|
+
// router is express router
|
|
77
|
+
// import { Router } from 'express'
|
|
78
|
+
// router = new Router();
|
|
79
|
+
};
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
2. 添加 http-proxy-middleware 依赖
|
|
83
|
+
3. 添加代理路由相关配置
|
|
84
|
+
|
|
85
|
+
``` js
|
|
86
|
+
/* eslint-disable filenames/match-exported */
|
|
87
|
+
const { createProxyMiddleware } = require("http-proxy-middleware");
|
|
88
|
+
|
|
89
|
+
module.exports = function expressMiddleware (router) {
|
|
90
|
+
router.use('/api', createProxyMiddleware({
|
|
91
|
+
target: "http://localhost:8000",
|
|
92
|
+
changeOrigin: true
|
|
93
|
+
}))
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
相关 issue 链接:[#11551](https://github.com/storybookjs/storybook/issues/11551)。
|
|
98
|
+
|
|
99
|
+
## 修改存在 Story 文件的目录
|
|
100
|
+
|
|
101
|
+
目前暂时无法修改存放 Story 文件的目录,仅对 `your-project/stories` 目录下的 `*.stories.(t|j)s(x)`、`*.stories.md(x)` 文件识别为 Story 文件。
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# 测试相关问题
|
|
2
|
+
|
|
3
|
+
import TestFAQ from '@site-docs/components/faq-test';
|
|
4
|
+
|
|
5
|
+
<TestFAQ />
|
|
6
|
+
|
|
7
|
+
## 执行 `test` 命令报错 `TypeError: Cannot read property 'testEnvironmentOptions' of undefined`
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
问题原因多是存在多个版本的 `jest-environment-jsdom` 依赖,可以检查 Monorepo 中其他项目是否有 `jest-environment-jsdom` 依赖,并通过 Monorepo 提供的 overrides 能力统一依赖版本。
|
|
@@ -4,7 +4,7 @@ sidebar_position: 3
|
|
|
4
4
|
|
|
5
5
|
# Setup 函数
|
|
6
6
|
|
|
7
|
-
在[
|
|
7
|
+
在[「插件对象」](/plugins/guide/plugin-object) 部分我们知道插件对象包含了一个 `setup` 函数,该函数不仅包含了一个 `api` 对象参数,同时还可以返回一个 Hooks 对象。
|
|
8
8
|
|
|
9
9
|
## 插件 API 对象
|
|
10
10
|
|
|
@@ -39,7 +39,7 @@ export default defineConfig({
|
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
:::tip
|
|
42
|
-
注意:CSS 的注释不支持 `//comment` 这样的写法。详见[
|
|
42
|
+
注意:CSS 的注释不支持 `//comment` 这样的写法。详见[「CSS 注释」](https://developer.mozilla.org/zh-CN/docs/Web/CSS/Comments)
|
|
43
43
|
:::
|
|
44
44
|
|
|
45
45
|
## 示例
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
提供与 [babel-plugin-import](https://github.com/umijs/babel-plugin-import) 等价的能力和配置,基于 [SWC](https://swc.rs/) 实现。
|
|
4
4
|
|
|
5
5
|
:::tip
|
|
6
|
-
从
|
|
6
|
+
从 `@modern-js/module-tools` v2.16.0 版本开始,该插件功能内置在 Module Tools 中,由 [`transformImport`](api/config/build-config.html#transformimport)
|
|
7
7
|
配置提供。
|
|
8
8
|
:::
|
|
9
9
|
|
|
@@ -34,10 +34,12 @@ export default defineConfig({
|
|
|
34
34
|
plugins: [
|
|
35
35
|
moduleTools(),
|
|
36
36
|
modulePluginImport({
|
|
37
|
-
pluginImport: [
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
pluginImport: [
|
|
38
|
+
{
|
|
39
|
+
libraryName: 'antd',
|
|
40
|
+
style: true,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
41
43
|
}),
|
|
42
44
|
],
|
|
43
45
|
});
|
|
@@ -47,17 +49,17 @@ export default defineConfig({
|
|
|
47
49
|
|
|
48
50
|
## 配置
|
|
49
51
|
|
|
50
|
-
|
|
52
|
+
- **类型:**
|
|
51
53
|
|
|
52
54
|
```ts
|
|
53
55
|
type Options = {
|
|
54
56
|
pluginImport?: ImportItem[];
|
|
55
|
-
}
|
|
57
|
+
};
|
|
56
58
|
```
|
|
57
59
|
|
|
58
60
|
### pluginImport
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
- 类型:`object[]`
|
|
61
63
|
|
|
62
64
|
其中数组元素为一个 babel-plugin-import 的配置对象。配置对象可以参考 [options](https://github.com/umijs/babel-plugin-import#options)。
|
|
63
65
|
|
|
@@ -76,7 +78,7 @@ export default defineConfig({
|
|
|
76
78
|
{
|
|
77
79
|
libraryName: 'foo',
|
|
78
80
|
style: true,
|
|
79
|
-
}
|
|
81
|
+
},
|
|
80
82
|
],
|
|
81
83
|
}),
|
|
82
84
|
],
|
|
@@ -117,10 +119,12 @@ export default defineConfig({
|
|
|
117
119
|
plugins: [
|
|
118
120
|
moduleTools(),
|
|
119
121
|
modulePluginImport({
|
|
120
|
-
pluginImport: [
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
pluginImport: [
|
|
123
|
+
{
|
|
124
|
+
libraryName: 'foo',
|
|
125
|
+
customName: 'foo/es/{{ member }}',
|
|
126
|
+
},
|
|
127
|
+
],
|
|
124
128
|
}),
|
|
125
129
|
],
|
|
126
130
|
});
|
|
@@ -138,16 +142,19 @@ export default defineConfig({
|
|
|
138
142
|
plugins: [
|
|
139
143
|
moduleTools(),
|
|
140
144
|
modulePluginImport({
|
|
141
|
-
pluginImport: [
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
+
pluginImport: [
|
|
146
|
+
{
|
|
147
|
+
libraryName: 'foo',
|
|
148
|
+
customName: 'foo/es/{{ member }}',
|
|
149
|
+
},
|
|
150
|
+
],
|
|
145
151
|
}),
|
|
146
152
|
],
|
|
147
153
|
});
|
|
148
154
|
```
|
|
149
155
|
|
|
150
156
|
---
|
|
157
|
+
|
|
151
158
|
转换后:
|
|
152
159
|
|
|
153
160
|
```ts
|
|
@@ -168,10 +175,12 @@ export default defineConfig({
|
|
|
168
175
|
plugins: [
|
|
169
176
|
moduleTools(),
|
|
170
177
|
modulePluginImport({
|
|
171
|
-
pluginImport: [
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
178
|
+
pluginImport: [
|
|
179
|
+
{
|
|
180
|
+
libraryName: 'foo',
|
|
181
|
+
customName: 'foo/es/{{ kebabCase member }}',
|
|
182
|
+
},
|
|
183
|
+
],
|
|
175
184
|
}),
|
|
176
185
|
],
|
|
177
186
|
});
|
package/modern.config.ts
CHANGED
|
@@ -123,6 +123,13 @@ export default defineConfig({
|
|
|
123
123
|
dev: {
|
|
124
124
|
startUrl: 'http://localhost:<port>/module-tools/',
|
|
125
125
|
},
|
|
126
|
+
source: {
|
|
127
|
+
alias: {
|
|
128
|
+
'@site-docs': path.join(__dirname, './docs/zh'),
|
|
129
|
+
'@site-docs-en': path.join(__dirname, './docs/en'),
|
|
130
|
+
'@site': require('path').resolve(__dirname),
|
|
131
|
+
},
|
|
132
|
+
}
|
|
126
133
|
},
|
|
127
134
|
},
|
|
128
135
|
});
|
package/package.json
CHANGED
|
@@ -9,15 +9,15 @@
|
|
|
9
9
|
"directory": "packages/document/module-doc"
|
|
10
10
|
},
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"version": "2.25.0",
|
|
12
|
+
"version": "2.25.2-beta.0",
|
|
13
13
|
"main": "index.js",
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@code-hike/mdx": "^0.7.4",
|
|
16
16
|
"react": "^18.2.0",
|
|
17
17
|
"react-dom": "^18.2.0",
|
|
18
18
|
"shiki": "^0.11.1",
|
|
19
|
-
"@modern-js/doc-plugin-auto-sidebar": "2.25.
|
|
20
|
-
"@modern-js/doc-tools": "2.25.
|
|
19
|
+
"@modern-js/doc-plugin-auto-sidebar": "2.25.1",
|
|
20
|
+
"@modern-js/doc-tools": "2.25.1"
|
|
21
21
|
},
|
|
22
22
|
"scripts": {
|
|
23
23
|
"dev": "modern dev",
|