@modern-js/module-tools-docs 2.24.1 → 2.25.1

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 (46) hide show
  1. package/CHANGELOG.md +16 -3
  2. package/docs/en/api/config/build-config.md +185 -29
  3. package/docs/en/api/config/build-preset.mdx +3 -3
  4. package/docs/en/api/config/design-system.md +3 -3
  5. package/docs/en/api/config/dev.md +22 -25
  6. package/docs/en/api/config/plugins.md +50 -5
  7. package/docs/en/api/config/testing.md +3 -3
  8. package/docs/en/api/plugin-api/plugin-hooks.md +13 -13
  9. package/docs/en/guide/advance/build-umd.mdx +1 -1
  10. package/docs/en/guide/advance/in-depth-about-dev-command.md +1 -1
  11. package/docs/en/guide/basic/before-getting-started.md +2 -2
  12. package/docs/en/guide/basic/command-preview.md +2 -2
  13. package/docs/en/guide/basic/modify-output-product.md +18 -6
  14. package/docs/en/guide/basic/use-micro-generator.md +8 -8
  15. package/docs/en/guide/best-practices/components.mdx +3 -3
  16. package/docs/en/guide/intro/getting-started.md +1 -1
  17. package/docs/en/plugins/guide/setup-function.mdx +4 -4
  18. package/docs/en/plugins/official-list/plugin-babel.md +2 -2
  19. package/docs/en/plugins/official-list/plugin-banner.md +3 -3
  20. package/docs/en/plugins/official-list/plugin-import.mdx +34 -25
  21. package/docs/en/plugins/official-list/plugin-node-polyfill.md +3 -3
  22. package/docs/en/plugins/official-list/plugin-polyfill.md +2 -2
  23. package/docs/zh/api/config/build-config.md +190 -33
  24. package/docs/zh/api/config/build-preset.mdx +1 -1
  25. package/docs/zh/api/config/design-system.md +3 -3
  26. package/docs/zh/api/config/dev.md +23 -26
  27. package/docs/zh/api/config/plugins.md +50 -5
  28. package/docs/zh/api/config/testing.md +3 -3
  29. package/docs/zh/api/plugin-api/plugin-hooks.md +13 -13
  30. package/docs/zh/guide/advance/build-umd.mdx +1 -1
  31. package/docs/zh/guide/advance/in-depth-about-dev-command.md +1 -1
  32. package/docs/zh/guide/basic/before-getting-started.md +3 -3
  33. package/docs/zh/guide/basic/command-preview.md +3 -3
  34. package/docs/zh/guide/basic/modify-output-product.md +20 -9
  35. package/docs/zh/guide/basic/test-your-project.mdx +3 -3
  36. package/docs/zh/guide/basic/use-micro-generator.md +8 -8
  37. package/docs/zh/guide/best-practices/components.mdx +3 -3
  38. package/docs/zh/guide/intro/getting-started.md +1 -1
  39. package/docs/zh/plugins/guide/setup-function.mdx +4 -4
  40. package/docs/zh/plugins/official-list/plugin-babel.md +2 -2
  41. package/docs/zh/plugins/official-list/plugin-banner.md +3 -3
  42. package/docs/zh/plugins/official-list/plugin-import.mdx +35 -26
  43. package/docs/zh/plugins/official-list/plugin-node-polyfill.md +3 -3
  44. package/docs/zh/plugins/official-list/plugin-polyfill.md +2 -2
  45. package/modern.config.ts +1 -1
  46. package/package.json +3 -3
@@ -2,9 +2,20 @@
2
2
  sidebar_position: 1
3
3
  ---
4
4
 
5
- # BuildConfig
5
+ # buildConfig
6
6
 
7
- 本章节描述了 Module Tools 关于构建的所有配置
7
+ `buildConfig` 是一个用来描述如何编译、生成构建产物的配置项,它包含了构建的所有配置。
8
+
9
+ - 类型:`object | object[]`
10
+ - 默认值: `undefined`
11
+
12
+ :::tip
13
+ 在开始使用 `buildConfig` 之前,请先阅读以下文档来了解其作用:
14
+
15
+ - [修改输出产物](/guide/basic/modify-output-product.html)
16
+ - [深入理解构建](/guide/advance/in-depth-about-build.html)
17
+
18
+ :::
8
19
 
9
20
  ## alias
10
21
 
@@ -110,7 +121,7 @@ export default defineConfig({
110
121
 
111
122
  打包时将 SVG 作为一个 React 组件处理,options 参考 [svgr](https://react-svgr.com/docs/options/),另外还支持了 `include` 和 `exclude` 两个配置项,用于匹配需要处理的 SVG 文件。
112
123
 
113
- - 类型: `boolean | Object`
124
+ - 类型: `boolean | object`
114
125
  - 默认值: `false`
115
126
 
116
127
  开启 svgr 功能后,可以使用默认导出的方式将 SVG 当做组件使用。
@@ -161,7 +172,7 @@ declare module '*.svg' {
161
172
 
162
173
  自动外置项目的 `"dependencies"` 和 `"peerDependencies"`,不会将其打包到最终的 bundle 产物中。
163
174
 
164
- - 类型: `boolean | Object`
175
+ - 类型: `boolean | object`
165
176
  - 默认值: `true`
166
177
 
167
178
  当我们希望关闭对于第三方依赖的默认处理行为时候,可以通过以下方式来实现:
@@ -213,7 +224,7 @@ export default defineConfig({
213
224
 
214
225
  将文件或目录拷贝到指定位置。
215
226
 
216
- - 类型: `Object`
227
+ - 类型: `object`
217
228
 
218
229
  ```js modern.config.ts
219
230
  export default defineConfig({
@@ -295,7 +306,7 @@ export default defineConfig({
295
306
 
296
307
  类型文件生成的相关配置,默认情况会生成。
297
308
 
298
- - 类型: `false | Object`
309
+ - 类型: `false | object`
299
310
  - 默认值:
300
311
 
301
312
  ```js
@@ -435,24 +446,107 @@ export var yourCode = function () {
435
446
 
436
447
  ## externals
437
448
 
438
- 配置外部依赖,不会被打包到最终的 bundle 中。
449
+ 用于在打包时排除一些外部依赖,避免将这些依赖打包到最终的 bundle 中。
450
+
451
+ - 类型:
452
+
453
+ ```ts
454
+ type Externals = (string | RegExp)[];
455
+ ```
439
456
 
440
- - 类型: `(string | RegExp)[]`
441
457
  - 默认值: `[]`
458
+ - 构建类型:`仅支持 buildType: 'bundle'`
459
+ - 示例:
460
+
461
+ ```js modern.config.ts
462
+ export default defineConfig({
463
+ buildConfig: {
464
+ // 避免打包 React
465
+ externals: ['react'],
466
+ },
467
+ });
468
+ ```
442
469
 
443
470
  ## format
444
471
 
445
- js 产物输出的格式,其中 `iife` 和 `umd` 只能在 `buildType` 为 `bundle` 时生效。
472
+ 用于设置 JavaScript 产物输出的格式,其中 `iife` 和 `umd` 只在 `buildType` 为 `bundle` 时生效。
473
+
474
+ - 类型:`'esm' | 'cjs' | 'iife' | 'umd'`
475
+ - 默认值:`cjs`
476
+
477
+ ### format: 'esm'
478
+
479
+ esm 代表 "ECMAScript 模块",它需要运行环境支持 import 和 export 语法。
446
480
 
447
- - 类型: `'esm' | 'cjs' | 'iife' | 'umd'`
448
- - 默认值: `cjs`
481
+ - 示例:
482
+
483
+ ```js modern.config.ts
484
+ export default defineConfig({
485
+ buildConfig: {
486
+ format: 'esm',
487
+ },
488
+ });
489
+ ```
490
+
491
+ ### format: 'cjs'
492
+
493
+ cjs 代表 "CommonJS",它需要运行环境支持 exports、require 和 module 语法,通常为 Node.js 环境。
494
+
495
+ - 示例:
496
+
497
+ ```js modern.config.ts
498
+ export default defineConfig({
499
+ buildConfig: {
500
+ format: 'cjs',
501
+ },
502
+ });
503
+ ```
504
+
505
+ ### format: 'iife'
506
+
507
+ iife 代表 "立即调用函数表达式",它将代码包裹在函数表达式中,确保代码中的任何变量不会意外地与全局范围中的变量冲突,通常在浏览器环境中运行。
508
+
509
+ - 示例:
510
+
511
+ ```js modern.config.ts
512
+ export default defineConfig({
513
+ buildConfig: {
514
+ format: 'iife',
515
+ },
516
+ });
517
+ ```
518
+
519
+ ### format: 'umd'
520
+
521
+ umd 代表 "Universal Module Definition",用于在不同环境(浏览器、Node.js 等)中运行。umd 格式的模块可以在多种环境下使用,既可以作为全局变量访问,也可以通过模块加载器(如 RequireJS)进行模块化加载。
522
+
523
+ - 示例:
524
+
525
+ ```js modern.config.ts
526
+ export default defineConfig({
527
+ buildConfig: {
528
+ format: 'umd',
529
+ },
530
+ });
531
+ ```
449
532
 
450
533
  ## input
451
534
 
452
535
  指定构建的入口文件,数组形式可以指定目录。
453
536
 
454
- - 类型: `string[] | Record<string, string>`
455
- - 默认值: `bundle` 模式下默认为 `['src/index.ts']`,`bundleless` 模式下默认为 `['src']`
537
+ - 类型:
538
+
539
+ ```ts
540
+ type Input =
541
+ | string[];
542
+ | {
543
+ [name: string]: string;
544
+ }
545
+ ```
546
+
547
+ - 默认值:`bundle` 模式下默认为 `['src/index.ts']`,`bundleless` 模式下默认为 `['src']`
548
+
549
+ **数组用法:**
456
550
 
457
551
  ```js modern.config.ts
458
552
  export default defineConfig({
@@ -462,25 +556,74 @@ export default defineConfig({
462
556
  });
463
557
  ```
464
558
 
559
+ **对象用法:**
560
+
561
+ 当在 bundle 模式下需要修改产物的输出文件名称的时候,可以使用对象形式进行配置。
562
+
563
+ **对象的 Key 是产物的文件名称,Value 是源码的文件路径。**
564
+
565
+ ```js modern.config.ts
566
+ export default defineConfig({
567
+ buildConfig: {
568
+ format: 'esm',
569
+ input: {
570
+ 'index.esm': './src/index.ts',
571
+ },
572
+ },
573
+ });
574
+ ```
575
+
465
576
  ## jsx
466
577
 
467
- 指定 jsx 的编译方式, 默认支持 React17 以上,自动注入 jsx 运行时代码。
578
+ 指定 JSX 的编译方式,默认支持 React 17 及更高版本,自动注入 JSX 运行时代码。
468
579
 
469
- - 类型: `automatic | classic`
580
+ - 类型: `automatic | transform`
470
581
  - 默认值: `automatic`
471
582
 
583
+ 如果你需要支持 React 16,则可以设置 `jsx` 为 `transform`:
584
+
585
+ ```js modern.config.ts
586
+ export default defineConfig({
587
+ buildConfig: {
588
+ jsx: 'transform',
589
+ },
590
+ });
591
+ ```
592
+
593
+ :::tip
594
+ 关于 JSX Transform 的更多说明,可以参考以下链接:
595
+
596
+ - [React Blog - Introducing the New JSX Transform](https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html).
597
+ - [esbuild - JSX](https://esbuild.github.io/api/#jsx).
598
+
599
+ :::
600
+
472
601
  ## metafile
473
602
 
474
- esbuild JSON 格式生成有关构建的一些元数据,可以通过例如 [bundle-buddy](https://bundle-buddy.com/esbuild) 的工具可视化
603
+ 这个选项用于构建分析,开启该选项后,esbuild 会以 JSON 格式生成有关构建的一些元数据。
475
604
 
476
605
  - 类型:`boolean`
477
606
  - 默认值:`false`
607
+ - 构建类型:`仅支持 buildType: 'bundle'`
608
+
609
+ 开启 `metafile` 生成:
610
+
611
+ ```js modern.config.ts
612
+ export default defineConfig({
613
+ buildConfig: {
614
+ buildType: 'bundle',
615
+ metafile: true,
616
+ },
617
+ });
618
+ ```
619
+
620
+ 在执行 build 构建后,产物目录下会生成 `metafile-[xxx].json` 文件,你可以通过 [esbuild analyze](https://esbuild.github.io/analyze/) 和 [bundle-buddy](https://bundle-buddy.com/esbuild) 等工具进行可视化分析。
478
621
 
479
622
  ## minify
480
623
 
481
624
  使用 esbuild 或者 terser 压缩代码,也可以传入 [terserOptions](https://github.com/terser/terser#minify-options)。
482
625
 
483
- - 类型: `'terser' | 'esbuild' | false | Object`
626
+ - 类型: `'terser' | 'esbuild' | false | object`
484
627
  - 默认值: `false`
485
628
 
486
629
  ```js modern.config.ts
@@ -592,8 +735,8 @@ export default defineConfig({
592
735
 
593
736
  设置源码的格式。默认情况下,会将源码作为 EsModule 进行处理。当源码使用的是 CommonJS 的时候,需要设置 `commonjs`。
594
737
 
595
- - 类型:`commonjs` | `module`
596
- - 默认值:`module`
738
+ - 类型:`'commonjs' | 'module'`
739
+ - 默认值:`'module'`
597
740
 
598
741
  ## splitting
599
742
 
@@ -614,7 +757,7 @@ less 相关配置。
614
757
 
615
758
  详细配置参考 [less](https://less.bootcss.com/usage/#less-options)。
616
759
 
617
- - 类型: `Object`
760
+ - 类型: `object`
618
761
  - 默认值: `{ javascriptEnabled: true }`
619
762
 
620
763
  ## style.less.additionalData
@@ -640,10 +783,10 @@ export default defineConfig({
640
783
 
641
784
  配置 `Less` 使用的实现库,在不指定的情况下,使用的内置版本是 `4.1.3`。
642
785
 
643
- - 类型: `string | Object`
786
+ - 类型: `string | object`
644
787
  - 默认值: `undefined`
645
788
 
646
- `Object` 类型时,指定 `Less` 的实现库
789
+ 设置 `object` 类型时,可以指定 `Less` 的实现库。
647
790
 
648
791
  ```js modern.config.ts
649
792
  export default defineConfig({
@@ -679,7 +822,7 @@ Sass 相关配置。
679
822
 
680
823
  详细配置参考 [node-sass](https://github.com/sass/node-sass#options)
681
824
 
682
- - 类型: `Object`
825
+ - 类型: `object`
683
826
  - 默认值: `{}`
684
827
 
685
828
  ## style.sass.additionalData
@@ -706,10 +849,10 @@ export default defineConfig({
706
849
 
707
850
  配置 `Sass` 使用的实现库,在不指定的情况下,使用的内置版本是 `1.5.4`。
708
851
 
709
- - 类型: `string | Object`
852
+ - 类型: `string | object`
710
853
  - 默认值: `undefined`
711
854
 
712
- `Object` 类型时,指定 `Sass` 的实现库
855
+ 设置为 `object` 类型时,可以指定 `Sass` 的实现库。
713
856
 
714
857
  ```js modern.config.ts
715
858
  export default defineConfig({
@@ -744,6 +887,20 @@ export default defineConfig({
744
887
 
745
888
  详细配置查看 [PostCSS](https://github.com/postcss/postcss#options)。
746
889
 
890
+ **基础使用:**
891
+
892
+ ```js modern.config.ts
893
+ export default defineConfig({
894
+ buildConfig: {
895
+ style: {
896
+ postcss: {
897
+ plugins: [yourPostCSSPlugin],
898
+ },
899
+ },
900
+ },
901
+ });
902
+ ```
903
+
747
904
  ## style.inject
748
905
 
749
906
  配置打包模式下是否将 CSS 样式插入到 JavaScript 代码中。
@@ -807,9 +964,9 @@ style_inject_es_default(css_248z);
807
964
 
808
965
  ## style.modules
809
966
 
810
- CSS Modules 配置
967
+ CSS Modules 配置。
811
968
 
812
- - 类型: `Object`
969
+ - 类型: `object`
813
970
  - 默认值: `{}`
814
971
 
815
972
  一个常用的配置是 `localsConvention`,它可以改变 CSS Modules 的类名生成规则。
@@ -834,7 +991,7 @@ export default defineConfig({
834
991
  }
835
992
  ```
836
993
 
837
- 你可以使用 `styles.boxTitle` 来访问
994
+ 你可以使用 `styles.boxTitle` 来访问。
838
995
 
839
996
  详细配置查看 [postcss-modules](https://github.com/madyankin/postcss-modules#usage)
840
997
 
@@ -842,7 +999,7 @@ export default defineConfig({
842
999
 
843
1000
  Tailwind CSS 相关配置。
844
1001
 
845
- - 类型: `Object | Function`
1002
+ - 类型: `object | Function`
846
1003
  - 默认值: `见下方配置详情`
847
1004
 
848
1005
  <details>
@@ -863,7 +1020,7 @@ const tailwind = {
863
1020
  };
864
1021
  ```
865
1022
 
866
- 值为 `Object` 类型时,与默认配置通过 `Object.assign` 合并。
1023
+ 值为 `object` 类型时,与默认配置通过 `Object.assign` 合并。
867
1024
 
868
1025
  值为 `Function` 类型时,函数返回的对象与默认配置通过 `Object.assign` 合并。
869
1026
 
@@ -908,7 +1065,7 @@ export default defineConfig({
908
1065
 
909
1066
  提供与 babel-plugin-import 等价的能力和配置,基于 SWC 实现。
910
1067
 
911
- - 类型:`Array`
1068
+ - 类型:`object[]`
912
1069
  - 默认值:`[]`
913
1070
 
914
1071
  数组元素为一个 babel-plugin-import 的配置对象。配置对象可以参考 [options](https://github.com/umijs/babel-plugin-import#options)。
@@ -931,7 +1088,7 @@ export default defineConfig({
931
1088
 
932
1089
  ### 注意事项
933
1090
 
934
- 参考[Import 插件——注意事项】](plugins/official-list/plugin-import.html#注意事项)
1091
+ 参考[Import 插件——注意事项」](plugins/official-list/plugin-import.html#注意事项)
935
1092
 
936
1093
  ## umdGlobals
937
1094
 
@@ -957,7 +1114,7 @@ export default defineConfig({
957
1114
 
958
1115
  指定 UMD 产物的模块名。
959
1116
 
960
- - 类型: `string` | `Function`
1117
+ - 类型: `string | Function`
961
1118
  - 默认值: `name => name`
962
1119
 
963
1120
  ```js modern.config.ts
@@ -2,7 +2,7 @@
2
2
  sidebar_position: 2
3
3
  ---
4
4
 
5
- # BuildPreset
5
+ # buildPreset
6
6
 
7
7
  构建的预设字符串或者预设函数。提供开箱即用的构建配置。
8
8
 
@@ -2,15 +2,15 @@
2
2
  sidebar_position: 3
3
3
  ---
4
4
 
5
- # DesignSystem
5
+ # designSystem
6
6
 
7
- 本章描述了有关 designSystem 相关的配置
7
+ 本章描述了有关 designSystem 相关的配置。
8
8
 
9
9
  :::tip
10
10
  需要先通过 `pnpm run new` 启用 Tailwind CSS 功能。
11
11
  :::
12
12
 
13
- - 类型:`Object`
13
+ - 类型:`object`
14
14
  - 默认值: `见下方配置详情`。
15
15
 
16
16
  <details>
@@ -2,16 +2,18 @@
2
2
  sidebar_position: 3
3
3
  ---
4
4
 
5
- # Dev Config
5
+ # dev
6
6
 
7
7
  本章节描述了 Module Tools 关于调试工具相关的所有配置。
8
8
 
9
- ``` ts
9
+ ```ts
10
10
  export default {
11
11
  dev: {
12
- storybook: {/* Storybook Config */},
12
+ storybook: {
13
+ /* Storybook Config */
14
+ },
13
15
  },
14
- }
16
+ };
15
17
  ```
16
18
 
17
19
  ## storybook
@@ -21,36 +23,34 @@ export default {
21
23
  - 开启 Storybook 调试功能或者安装 `@modern-js/plugin-storybook` 插件。
22
24
  - 注册 `@modern-js/plugin-storybook` 插件。
23
25
 
24
- > 关于如何开启 Storybook 调试功能,可以参考:[Storybook 调试】](guide/basic/use-micro-generator#storybook-调试)
25
-
26
-
26
+ > 关于如何开启 Storybook 调试功能,可以参考:[Storybook 调试」](guide/basic/use-micro-generator#storybook-调试)
27
27
 
28
28
  ### storybook.webpack
29
29
 
30
- - 类型:`Object` | `Function` | `undefined`
31
-
30
+ - 类型:`object | Function | undefined`
32
31
  - 默认值:`undefined`
33
32
 
34
- ``` ts
33
+ ```ts
35
34
  export default {
36
35
  dev: {
37
36
  storybook: {
38
37
  webpack(config) {
39
38
  return config;
40
39
  },
41
- }
42
- }
43
- }
40
+ },
41
+ },
42
+ };
44
43
  ```
45
44
 
46
- 你可以通过 `dev.storybook.webpack` 来修改 Storybook Preview-iframe 的 webpack 配置。使用方式可以参考 Modern.js Builder 的 [`tools.webpack`](https://modernjs.dev/builder/api/config-tools.html#tools.webpack) 配置。
45
+ 你可以通过 `dev.storybook.webpack` 来修改 Storybook Preview-iframe 的 webpack 配置。使用方式可以参考 Modern.js Builder 的 [`tools.webpack`](https://modernjs.dev/builder/api/config-tools.html#toolswebpack) 配置。
47
46
 
48
47
  ![Storybook](https://storybook.js.org/71522ac365feaf3338d7c242e53378f6/manager-preview.png)
49
48
 
50
- :::tip
51
- 对于 Storybook Manager app 部分的 webpack 配置,可以通过增加 `./config/storybook/main.js` 文件进行配置。
49
+ #### 配置 Manager App
50
+
51
+ 对于 Storybook Manager App 部分的 webpack 配置,可以通过增加 `./config/storybook/main.js` 文件进行配置。
52
52
 
53
- ``` js
53
+ ```js
54
54
  // ./config/storybook/main.js
55
55
 
56
56
  module.exports = {
@@ -61,25 +61,22 @@ module.exports = {
61
61
  },
62
62
  };
63
63
  ```
64
- :::
65
-
66
64
 
67
65
  ### storybook.webpackChain
68
66
 
69
- - 类型:`Function` | `undefined`
70
-
67
+ - 类型:`Function | undefined`
71
68
  - 默认值:`undefined`
72
69
 
73
- ``` ts
70
+ ```ts
74
71
  export default {
75
72
  dev: {
76
73
  storybook: {
77
74
  webpackChain(chain) {
78
75
  return chain;
79
76
  },
80
- }
81
- }
82
- }
77
+ },
78
+ },
79
+ };
83
80
  ```
84
81
 
85
- 你可以通过 `dev.storybook.webpackChain` 来修改 Storybook Preview-iframe 的 webpack 配置。使用方式可以参考 Modern.js Builder 的 [`tools.webpackChain`](https://modernjs.dev/builder/api/config-tools.html#tools.webpackchain) 配置。
82
+ 你可以通过 `dev.storybook.webpackChain` 来修改 Storybook Preview-iframe 的 webpack 配置。使用方式可以参考 Modern.js Builder 的 [`tools.webpackChain`](https://modernjs.dev/builder/api/config-tools.html#toolswebpackchain) 配置。
@@ -2,17 +2,62 @@
2
2
  sidebar_position: 4
3
3
  ---
4
4
 
5
- # Plugins
5
+ # plugins
6
6
 
7
7
  本章介绍注册 Module Tools 插件的配置。
8
8
 
9
- - 类型:`Array<ModuleToolsPlugin>`
9
+ - 类型:`ModuleToolsPlugin[]`
10
+ - 默认值:`undefined`
11
+
12
+ ## 插件执行顺序
13
+
14
+ 默认情况下,自定义插件会按照 `plugins` 数组的顺序依次执行,Module Tools 内置插件的执行时机早于自定义插件。
15
+
16
+ 当插件内部使用了控制顺序的相关字段,比如 `pre`、`post` 时,会基于声明的字段对执行顺序进行调整,详见 [插件之间的关系](https://modernjs.dev/guides/topic-detail/framework-plugin/relationship)。
17
+
18
+ ## 开发插件
19
+
20
+ 关于如何编写插件,可以查看[「插件编写指南」](/plugins/guide/getting-started)。
21
+
22
+ ## 示例
23
+
24
+ ### 使用 npm 上的插件
25
+
26
+ 使用 npm 上的插件,需要通过包管理器安装插件,并通过 import 引入。
27
+
28
+ ```js modern.config.ts
29
+ import { myPlugin } from 'my-plugin';
30
+
31
+ export default defineConfig({
32
+ plugins: [myPlugin()],
33
+ });
34
+ ```
35
+
36
+ #### 使用本地插件
37
+
38
+ 使用本地代码仓库中的插件,直接通过相对路径 import 引入即可。
10
39
 
11
40
  ```js modern.config.ts
12
- import { examplePlugin } from './plugins/example';
41
+ import { myPlugin } from './plugins/myPlugin';
42
+
13
43
  export default defineConfig({
14
- plugins: [examplePlugin()],
44
+ plugins: [myPlugin()],
15
45
  });
16
46
  ```
17
47
 
18
- 关于如何编写插件,可以查看[【插件编写指南】](/plugins/guide/getting-started)。
48
+ ### 插件配置项
49
+
50
+ 如果插件提供了一些自定义的配置项,你可以通过插件函数的参数传入配置。
51
+
52
+ ```js modern.config.ts
53
+ import { myPlugin } from 'my-plugin';
54
+
55
+ export default defineConfig({
56
+ plugins: [
57
+ myPlugin({
58
+ foo: 1,
59
+ bar: 2,
60
+ }),
61
+ ],
62
+ });
63
+ ```
@@ -2,7 +2,7 @@
2
2
  sidebar_position: 5
3
3
  ---
4
4
 
5
- # Testing
5
+ # testing
6
6
 
7
7
  本章描述了测试相关的配置。
8
8
 
@@ -12,10 +12,10 @@ sidebar_position: 5
12
12
 
13
13
  ## jest
14
14
 
15
- - 类型: `Object | Function`
15
+ - 类型: `object | Function`
16
16
  - 默认值:`{}`
17
17
 
18
- 对应 [Jest](https://jestjs.io/docs/configuration) 的配置,当为 `Object` 类型时,可以配置 Jest 所支持的所有底层配置 。
18
+ 对应 [Jest](https://jestjs.io/docs/configuration) 的配置,当为 `object` 类型时,可以配置 Jest 所支持的所有底层配置 。
19
19
 
20
20
  ```js modern.config.ts
21
21
  import { defineConfig } from '@modern-js/module-tools';