@modern-js/module-tools-docs 2.29.0 → 2.31.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 (53) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/docs/en/api/config/build-config.mdx +80 -53
  3. package/docs/en/api/config/build-preset.mdx +15 -33
  4. package/docs/en/api/config/design-system.md +42 -34
  5. package/docs/en/api/config/plugins.md +3 -3
  6. package/docs/en/api/config/testing.md +2 -2
  7. package/docs/en/api/plugin-api/plugin-hooks.md +24 -24
  8. package/docs/en/components/register-esbuild-plugin.mdx +2 -2
  9. package/docs/en/guide/advance/asset.mdx +8 -27
  10. package/docs/en/guide/advance/build-umd.mdx +18 -66
  11. package/docs/en/guide/advance/external-dependency.mdx +7 -27
  12. package/docs/en/guide/advance/in-depth-about-build.md +4 -4
  13. package/docs/en/guide/advance/in-depth-about-dev-command.md +2 -2
  14. package/docs/en/guide/advance/theme-config.mdx +4 -8
  15. package/docs/en/guide/basic/before-getting-started.md +1 -1
  16. package/docs/en/guide/basic/publish-your-project.md +8 -7
  17. package/docs/en/guide/basic/test-your-project.mdx +10 -47
  18. package/docs/en/guide/basic/use-micro-generator.md +4 -4
  19. package/docs/en/guide/basic/using-storybook.mdx +12 -44
  20. package/docs/en/guide/best-practices/components.mdx +44 -402
  21. package/docs/en/guide/faq/build.mdx +16 -0
  22. package/docs/en/guide/intro/getting-started.md +21 -2
  23. package/docs/en/plugins/guide/getting-started.mdx +8 -24
  24. package/docs/en/plugins/guide/plugin-object.mdx +2 -8
  25. package/docs/en/plugins/official-list/plugin-import.mdx +9 -52
  26. package/docs/en/plugins/official-list/plugin-node-polyfill.md +2 -2
  27. package/docs/zh/api/config/build-config.mdx +83 -56
  28. package/docs/zh/api/config/build-preset.mdx +12 -30
  29. package/docs/zh/api/config/design-system.md +6 -6
  30. package/docs/zh/api/config/plugins.md +3 -3
  31. package/docs/zh/api/config/testing.md +2 -2
  32. package/docs/zh/components/register-esbuild-plugin.mdx +2 -2
  33. package/docs/zh/guide/advance/asset.mdx +9 -30
  34. package/docs/zh/guide/advance/build-umd.mdx +19 -67
  35. package/docs/zh/guide/advance/external-dependency.mdx +8 -28
  36. package/docs/zh/guide/advance/in-depth-about-build.md +4 -4
  37. package/docs/zh/guide/advance/in-depth-about-dev-command.md +2 -2
  38. package/docs/zh/guide/advance/theme-config.mdx +4 -8
  39. package/docs/zh/guide/basic/publish-your-project.md +2 -2
  40. package/docs/zh/guide/basic/test-your-project.mdx +11 -49
  41. package/docs/zh/guide/basic/use-micro-generator.md +4 -4
  42. package/docs/zh/guide/basic/using-storybook.mdx +13 -45
  43. package/docs/zh/guide/best-practices/components.mdx +50 -410
  44. package/docs/zh/guide/faq/build.mdx +16 -0
  45. package/docs/zh/guide/intro/getting-started.md +20 -1
  46. package/docs/zh/plugins/guide/getting-started.mdx +8 -24
  47. package/docs/zh/plugins/guide/plugin-object.mdx +2 -8
  48. package/docs/zh/plugins/official-list/plugin-import.mdx +10 -55
  49. package/docs/zh/plugins/official-list/plugin-node-polyfill.md +2 -2
  50. package/modern.config.ts +1 -12
  51. package/package.json +3 -5
  52. package/theme/index.ts +0 -2
  53. package/theme/index.css +0 -9
@@ -26,7 +26,7 @@ sidebar_position: 1
26
26
  对于 TypeScript 项目,只需要在 `tsconfig.json` 中配置 [compilerOptions.paths](https://www.typescriptlang.org/tsconfig#paths), Module Tools 会自动识别 `tsconfig.json` 里的别名,因此不需要额外配置 `alias` 字段。
27
27
  :::
28
28
 
29
- ```js modern.config.ts
29
+ ```js title="modern.config.ts"
30
30
  export default defineConfig({
31
31
  buildConfig: {
32
32
  alias: {
@@ -40,7 +40,7 @@ export default defineConfig({
40
40
 
41
41
  `alias` 的值定义为函数时,可以接受预设的 alias 对象,并对其进行修改。
42
42
 
43
- ```js modern.config.ts
43
+ ```js title="modern.config.ts"
44
44
  export default defineConfig({
45
45
  buildConfig: {
46
46
  alias: alias => {
@@ -52,7 +52,7 @@ export default defineConfig({
52
52
 
53
53
  也可以在函数中返回一个新对象作为最终结果,新对象会覆盖预设的 alias 对象。
54
54
 
55
- ```js modern.config.ts
55
+ ```js title="modern.config.ts"
56
56
  export default defineConfig({
57
57
  buildConfig: {
58
58
  alias: alias => {
@@ -88,7 +88,7 @@ Module Tools 在进行打包时,默认会内联体积小于 10KB 的图片、
88
88
 
89
89
  例如,将 `limit` 设置为 `0` 来避免资源内联:
90
90
 
91
- ```js modern.config.ts
91
+ ```js title="modern.config.ts"
92
92
  export default defineConfig({
93
93
  buildConfig: {
94
94
  asset: {
@@ -105,7 +105,7 @@ export default defineConfig({
105
105
  - 类型: `string`
106
106
  - 默认值: `undefined`
107
107
 
108
- ```js modern.config.ts
108
+ ```js title="modern.config.ts"
109
109
  export default defineConfig({
110
110
  buildConfig: {
111
111
  asset: {
@@ -126,7 +126,7 @@ export default defineConfig({
126
126
 
127
127
  开启 svgr 功能后,可以使用默认导出的方式将 SVG 当做组件使用。
128
128
 
129
- ```js index.ts
129
+ ```js title="index.ts"
130
130
  // true
131
131
  import Logo from './logo.svg';
132
132
 
@@ -137,7 +137,7 @@ export default () => <Logo />;
137
137
 
138
138
  目前不支持下面的用法:
139
139
 
140
- ```js index.ts
140
+ ```js title="index.ts"
141
141
  import { ReactComponent } from './logo.svg';
142
142
  ```
143
143
 
@@ -145,7 +145,7 @@ import { ReactComponent } from './logo.svg';
145
145
 
146
146
  当开启功能后,可以通过在 `modern-app-env.d.ts` 文件中增加类型定义,修改使用 SVG 的类型:
147
147
 
148
- ```ts modern-app-env.d.ts focus=1:3
148
+ ```ts title="modern-app-env.d.ts"
149
149
  declare module '*.svg' {
150
150
  const src: React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
151
151
  export default src;
@@ -177,7 +177,7 @@ declare module '*.svg' {
177
177
 
178
178
  当我们希望关闭对于第三方依赖的默认处理行为时候,可以通过以下方式来实现:
179
179
 
180
- ```ts modern.config.ts
180
+ ```ts title="modern.config.ts"
181
181
  export default defineConfig({
182
182
  buildConfig: {
183
183
  autoExternal: false,
@@ -188,7 +188,7 @@ export default defineConfig({
188
188
  这样对于 `"dependencies"` 和 `"peerDependencies"` 下面的依赖都会进行打包处理。如果只想要关闭其中某个下面的依赖处理,则可以使用
189
189
  `buildConfig.autoExternal` 的对象形式:
190
190
 
191
- ```ts modern.config.ts
191
+ ```ts title="modern.config.ts"
192
192
  export default defineConfig({
193
193
  buildConfig: {
194
194
  autoExternal: {
@@ -226,7 +226,7 @@ export default defineConfig({
226
226
 
227
227
  - 类型: `object`
228
228
 
229
- ```js modern.config.ts
229
+ ```js title="modern.config.ts"
230
230
  export default defineConfig({
231
231
  buildConfig: {
232
232
  copy: {
@@ -275,7 +275,7 @@ type Options = {
275
275
 
276
276
  由于 `define` 功能是由全局文本替换实现的,所以需要保证全局变量值为字符串,更为安全的做法是将每个全局变量的值转化为字符串,使用 `JSON.stringify` 进行转换,如下所示:
277
277
 
278
- ```js modern.config.ts
278
+ ```js title="modern.config.ts"
279
279
  export default defineConfig({
280
280
  buildConfig: {
281
281
  define: {
@@ -327,7 +327,7 @@ export default defineConfig({
327
327
 
328
328
  **默认情况下,在出现类型错误的时候会导致构建失败**。将 `abortOnError` 设置为 `false` 后,即使代码中出现了类型问题,构建依然会成功:
329
329
 
330
- ```js modern.config.ts
330
+ ```js title="modern.config.ts"
331
331
  export default defineConfig({
332
332
  buildConfig: {
333
333
  dts: {
@@ -350,7 +350,7 @@ export default defineConfig({
350
350
 
351
351
  比如输出到 `outDir` 下面的 `types` 目录:
352
352
 
353
- ```js modern.config.ts
353
+ ```js title="modern.config.ts"
354
354
  export default defineConfig({
355
355
  buildConfig: {
356
356
  dts: {
@@ -367,7 +367,7 @@ export default defineConfig({
367
367
  - 类型: `boolean`
368
368
  - 默认值: `false`
369
369
 
370
- ```js modern.config.ts
370
+ ```js title="modern.config.ts"
371
371
  export default defineConfig({
372
372
  buildConfig: {
373
373
  dts: {
@@ -386,7 +386,7 @@ export default defineConfig({
386
386
  - 类型: `boolean`
387
387
  - 默认值: `true`
388
388
 
389
- ```js modern.config.ts
389
+ ```js title="modern.config.ts"
390
390
  export default defineConfig({
391
391
  buildConfig: {
392
392
  dts: {
@@ -403,7 +403,7 @@ TypeScript 配置文件的路径。
403
403
  - 类型: `string`
404
404
  - 默认值: `./tsconfig.json`
405
405
 
406
- ```js modern.config.ts
406
+ ```js title="modern.config.ts"
407
407
  export default defineConfig({
408
408
  buildConfig: {
409
409
  dts: {
@@ -422,12 +422,12 @@ export default defineConfig({
422
422
 
423
423
  例如,我们需要修改生成文件的后缀:
424
424
 
425
- ```js modern.config.ts
425
+ ```js title="modern.config.ts"
426
426
  export default defineConfig({
427
427
  buildConfig: {
428
428
  esbuildOptions: options => {
429
429
  options.outExtension = { '.js': '.mjs' };
430
- return option;
430
+ return options;
431
431
  },
432
432
  },
433
433
  });
@@ -460,7 +460,7 @@ import RegisterEsbuildPlugin from '@site-docs/components/register-esbuild-plugin
460
460
 
461
461
  开启前:
462
462
 
463
- ```js ./dist/index.js
463
+ ```js title="./dist/index.js"
464
464
  // 辅助函数
465
465
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
466
466
  // ...
@@ -481,7 +481,7 @@ export var yourCode = function () {
481
481
 
482
482
  开启后:
483
483
 
484
- ```js ./dist/index.js
484
+ ```js title="./dist/index.js"
485
485
  // 从 @swc/helpers 导入的辅助函数
486
486
  import { _ as _async_to_generator } from '@swc/helpers/_/_async_to_generator';
487
487
 
@@ -505,7 +505,7 @@ type Externals = (string | RegExp)[];
505
505
  - 构建类型:`仅支持 buildType: 'bundle'`
506
506
  - 示例:
507
507
 
508
- ```js modern.config.ts
508
+ ```js title="modern.config.ts"
509
509
  export default defineConfig({
510
510
  buildConfig: {
511
511
  // 避免打包 React
@@ -527,7 +527,7 @@ esm 代表 "ECMAScript 模块",它需要运行环境支持 import 和 export
527
527
 
528
528
  - 示例:
529
529
 
530
- ```js modern.config.ts
530
+ ```js title="modern.config.ts"
531
531
  export default defineConfig({
532
532
  buildConfig: {
533
533
  format: 'esm',
@@ -541,7 +541,7 @@ cjs 代表 "CommonJS",它需要运行环境支持 exports、require 和 module
541
541
 
542
542
  - 示例:
543
543
 
544
- ```js modern.config.ts
544
+ ```js title="modern.config.ts"
545
545
  export default defineConfig({
546
546
  buildConfig: {
547
547
  format: 'cjs',
@@ -555,7 +555,7 @@ iife 代表 "立即调用函数表达式",它将代码包裹在函数表达式
555
555
 
556
556
  - 示例:
557
557
 
558
- ```js modern.config.ts
558
+ ```js title="modern.config.ts"
559
559
  export default defineConfig({
560
560
  buildConfig: {
561
561
  format: 'iife',
@@ -569,7 +569,7 @@ umd 代表 "Universal Module Definition",用于在不同环境(浏览器、N
569
569
 
570
570
  - 示例:
571
571
 
572
- ```js modern.config.ts
572
+ ```js title="modern.config.ts"
573
573
  export default defineConfig({
574
574
  buildConfig: {
575
575
  format: 'umd',
@@ -595,7 +595,7 @@ type Input =
595
595
 
596
596
  **数组用法:**
597
597
 
598
- ```js modern.config.ts
598
+ ```js title="modern.config.ts"
599
599
  export default defineConfig({
600
600
  buildConfig: {
601
601
  input: ['src/index.ts', 'src/index2.ts'],
@@ -609,7 +609,7 @@ export default defineConfig({
609
609
 
610
610
  **对象的 Key 是产物的文件名称,Value 是源码的文件路径。**
611
611
 
612
- ```js modern.config.ts
612
+ ```js title="modern.config.ts"
613
613
  export default defineConfig({
614
614
  buildConfig: {
615
615
  format: 'esm',
@@ -629,7 +629,7 @@ export default defineConfig({
629
629
 
630
630
  如果你需要支持 React 16,则可以设置 `jsx` 为 `transform`:
631
631
 
632
- ```js modern.config.ts
632
+ ```js title="modern.config.ts"
633
633
  export default defineConfig({
634
634
  buildConfig: {
635
635
  jsx: 'transform',
@@ -655,7 +655,7 @@ export default defineConfig({
655
655
 
656
656
  开启 `metafile` 生成:
657
657
 
658
- ```js modern.config.ts
658
+ ```js title="modern.config.ts"
659
659
  export default defineConfig({
660
660
  buildConfig: {
661
661
  buildType: 'bundle',
@@ -673,7 +673,7 @@ export default defineConfig({
673
673
  - 类型: `'terser' | 'esbuild' | false | object`
674
674
  - 默认值: `false`
675
675
 
676
- ```js modern.config.ts
676
+ ```js title="modern.config.ts"
677
677
  export default defineConfig({
678
678
  buildConfig: {
679
679
  minify: {
@@ -692,7 +692,7 @@ export default defineConfig({
692
692
  - 类型: `string`
693
693
  - 默认值: `./dist`
694
694
 
695
- ```js modern.config.ts
695
+ ```js title="modern.config.ts"
696
696
  export default defineConfig({
697
697
  buildConfig: {
698
698
  outDir: './dist/esm',
@@ -707,7 +707,7 @@ export default defineConfig({
707
707
  - 类型: `'browser' | 'node'`
708
708
  - 默认值: `'node'`
709
709
 
710
- ```js modern.config.ts
710
+ ```js title="modern.config.ts"
711
711
  export default defineConfig({
712
712
  buildConfig: {
713
713
  platform: 'browser',
@@ -724,7 +724,7 @@ export default defineConfig({
724
724
 
725
725
  在某些场景下,你可能不需要这些功能,那么可以通过此配置关闭它,关闭后,其引用路径将不会发生改变。
726
726
 
727
- ```js modern.config.ts
727
+ ```js title="modern.config.ts"
728
728
  export default {
729
729
  buildConfig: {
730
730
  redirect: {
@@ -752,7 +752,7 @@ import 'other-package/dist/index.css';
752
752
 
753
753
  但是这个三方包的 package.json 里并没有将样式文件配置到 `"sideEffects"` 里。
754
754
 
755
- ```json other-package/package.json
755
+ ```json title="other-package/package.json"
756
756
  {
757
757
  "sideEffects": ["dist/index.js"]
758
758
  }
@@ -766,7 +766,7 @@ import 'other-package/dist/index.css';
766
766
 
767
767
  这时候就可以使用这个配置项,手动配置模块的`"sideEffects"`,配置支持正则和函数形式。
768
768
 
769
- ```js modern.config.ts
769
+ ```js title="modern.config.ts"
770
770
  export default defineConfig({
771
771
  buildConfig: {
772
772
  sideEffects: [/\.css$/],
@@ -830,7 +830,7 @@ less 相关配置。
830
830
  - 类型: `string`
831
831
  - 默认值: `undefined`
832
832
 
833
- ```js modern.config.ts
833
+ ```js title="modern.config.ts"
834
834
  export default defineConfig({
835
835
  buildConfig: {
836
836
  style: {
@@ -851,7 +851,7 @@ export default defineConfig({
851
851
 
852
852
  设置 `object` 类型时,可以指定 `Less` 的实现库。
853
853
 
854
- ```js modern.config.ts
854
+ ```js title="modern.config.ts"
855
855
  export default defineConfig({
856
856
  buildConfig: {
857
857
  style: {
@@ -865,7 +865,7 @@ export default defineConfig({
865
865
 
866
866
  `string` 类型时,指定 `Less` 的实现库的路径
867
867
 
868
- ```js modern.config.ts
868
+ ```js title="modern.config.ts"
869
869
  export default defineConfig({
870
870
  buildConfig: {
871
871
  style: {
@@ -895,7 +895,7 @@ Sass 相关配置。
895
895
  - 类型: `string | Function`
896
896
  - 默认值: `undefined`
897
897
 
898
- ```js modern.config.ts
898
+ ```js title="modern.config.ts"
899
899
  export default defineConfig({
900
900
  buildConfig: {
901
901
  style: {
@@ -917,7 +917,7 @@ export default defineConfig({
917
917
 
918
918
  设置为 `object` 类型时,可以指定 `Sass` 的实现库。
919
919
 
920
- ```js modern.config.ts
920
+ ```js title="modern.config.ts"
921
921
  export default defineConfig({
922
922
  buildConfig: {
923
923
  style: {
@@ -931,7 +931,7 @@ export default defineConfig({
931
931
 
932
932
  `string` 类型时,指定 `Sass` 的实现库的路径
933
933
 
934
- ```js modern.config.ts
934
+ ```js title="modern.config.ts"
935
935
  export default defineConfig({
936
936
  buildConfig: {
937
937
  style: {
@@ -945,14 +945,40 @@ export default defineConfig({
945
945
 
946
946
  ## style.postcss
947
947
 
948
- - plugins
949
- - processOptions
948
+ 用于配置 PostCSS 的选项,传入的值会与默认配置通过 `Object.assign` 合并。注意 `Object.assign` 是浅拷贝,因此会完全覆盖内置的 plugins 数组。
950
949
 
951
- 详细配置查看 [PostCSS](https://github.com/postcss/postcss#options)。
950
+ 详细配置请查看 [PostCSS](https://github.com/postcss/postcss#options)。
952
951
 
953
- **基础使用:**
952
+ - 类型:
953
+
954
+ ```ts
955
+ type PostcssOptions = {
956
+ processOptions?: ProcessOptions;
957
+ plugins?: AcceptedPlugin[];
958
+ };
959
+ ```
960
+
961
+ - 默认值:
954
962
 
955
- ```js modern.config.ts
963
+ ```ts
964
+ const defaultConfig = {
965
+ plugins: [
966
+ // 以下插件默认启用
967
+ require('postcss-flexbugs-fixes'),
968
+ require('postcss-media-minmax'),
969
+ require('postcss-nesting'),
970
+ // 以下插件仅在 target 为 `es5` 时启用
971
+ require('postcss-custom-properties'),
972
+ require('postcss-initial'),
973
+ require('postcss-page-break'),
974
+ require('postcss-font-variant'),
975
+ ],
976
+ };
977
+ ```
978
+
979
+ - 示例:
980
+
981
+ ```js title="modern.config.ts"
956
982
  export default defineConfig({
957
983
  buildConfig: {
958
984
  style: {
@@ -973,7 +999,7 @@ export default defineConfig({
973
999
 
974
1000
  将 `inject` 设置为 `true` 来开启此功能:
975
1001
 
976
- ```js modern.config.ts
1002
+ ```js title="modern.config.ts"
977
1003
  export default defineConfig({
978
1004
  buildConfig: {
979
1005
  inject: true,
@@ -985,7 +1011,7 @@ export default defineConfig({
985
1011
 
986
1012
  例如,你在源码里写了 `import './index.scss'`,那么在产物中你会看到以下代码:
987
1013
 
988
- ```js dist/index.js
1014
+ ```js title="dist/index.js"
989
1015
  // node_modules/style-inject/dist/style-inject.es.js
990
1016
  function styleInject(css, ref) {
991
1017
  // ...
@@ -1034,7 +1060,7 @@ CSS Modules 配置。
1034
1060
 
1035
1061
  一个常用的配置是 `localsConvention`,它可以改变 CSS Modules 的类名生成规则。
1036
1062
 
1037
- ```js modern.config.ts
1063
+ ```js title="modern.config.ts"
1038
1064
  export default defineConfig({
1039
1065
  buildConfig: {
1040
1066
  style: {
@@ -1068,7 +1094,7 @@ Tailwind CSS 相关配置。
1068
1094
  <details>
1069
1095
  <summary>Tailwind CSS 配置详情</summary>
1070
1096
 
1071
- ```js modern.config.ts
1097
+ ```js title="modern.config.ts"
1072
1098
  const tailwind = {
1073
1099
  content: [
1074
1100
  './config/html/**/*.html',
@@ -1082,6 +1108,7 @@ const tailwind = {
1082
1108
  ],
1083
1109
  };
1084
1110
  ```
1111
+
1085
1112
  </details>
1086
1113
 
1087
1114
  值为 `object` 类型时,与默认配置通过 `Object.assign` 合并。
@@ -1117,7 +1144,7 @@ type Target =
1117
1144
 
1118
1145
  例如,将代码编译到 `es5` 语法:
1119
1146
 
1120
- ```js modern.config.ts
1147
+ ```js title="modern.config.ts"
1121
1148
  export default defineConfig({
1122
1149
  buildConfig: {
1123
1150
  target: 'es5',
@@ -1136,7 +1163,7 @@ export default defineConfig({
1136
1163
 
1137
1164
  使用示例:
1138
1165
 
1139
- ```js modern.config.ts
1166
+ ```js title="modern.config.ts"
1140
1167
  export default defineConfig({
1141
1168
  buildConfig: {
1142
1169
  transformImport: [
@@ -1161,7 +1188,7 @@ export default defineConfig({
1161
1188
  - 类型: `Record<string, string>`
1162
1189
  - 默认值: `{}`
1163
1190
 
1164
- ```ts modern.config.ts
1191
+ ```ts title="modern.config.ts"
1165
1192
  export default defineConfig({
1166
1193
  buildConfig: {
1167
1194
  umdGlobals: {
@@ -1181,7 +1208,7 @@ export default defineConfig({
1181
1208
  - 类型: `string | Function`
1182
1209
  - 默认值: `name => name`
1183
1210
 
1184
- ```js modern.config.ts
1211
+ ```js title="modern.config.ts"
1185
1212
  export default defineConfig({
1186
1213
  buildConfig: {
1187
1214
  format: 'umd',
@@ -1201,7 +1228,7 @@ export default defineConfig({
1201
1228
 
1202
1229
  同时函数形式可以接收一个参数,为当前打包文件的输出路径
1203
1230
 
1204
- ```js modern.config.ts
1231
+ ```js title="modern.config.ts"
1205
1232
  export default defineConfig({
1206
1233
  buildConfig: {
1207
1234
  format: 'umd',
@@ -13,7 +13,7 @@ sidebar_position: 2
13
13
 
14
14
  字符串的形式可以让你直接使用内置的预设。
15
15
 
16
- ```js modern.config.ts
16
+ ```js title="modern.config.ts"
17
17
  import { defineConfig } from '@modern-js/module-tools';
18
18
 
19
19
  export default defineConfig({
@@ -34,7 +34,7 @@ export default defineConfig({
34
34
 
35
35
  :::
36
36
 
37
- ```json package.json
37
+ ```json title="package.json"
38
38
  {
39
39
  "main": "./dist/lib/index.js",
40
40
  "module": "./dist/es/index.js",
@@ -72,7 +72,7 @@ export const buildConfig = [
72
72
 
73
73
  在类 [NPM](https://www.npmjs.com/) 包管理器下使用,并且 Library 支持类似 [unpkg](https://unpkg.com/) 的模式。在预设 `'npm-library'` 的基础上,额外提供 `umd` 产物。
74
74
 
75
- ```json package.json
75
+ ```json title="package.json"
76
76
  {
77
77
  "main": "./dist/lib/index.js",
78
78
  "module": "./dist/es/index.js",
@@ -120,7 +120,7 @@ export const buildConfig = [
120
120
 
121
121
  对于源码中包含的样式文件,产物中提供样式的编译产物和样式的源文件。
122
122
 
123
- ```json package.json
123
+ ```json title="package.json"
124
124
  {
125
125
  "main": "./dist/lib/index.js", // bundleless type
126
126
  "module": "./dist/es/index.js", // bundleless type
@@ -158,7 +158,7 @@ export const buildConfig = [
158
158
 
159
159
  在类 [NPM](https://www.npmjs.com/) 包管理器下使用的组件(库),同时支持类 [unpkg](https://unpkg.com/) 的模式。 在预设 `'npm-component'` 的基础上,额外提供 `umd` 产物。
160
160
 
161
- ```json package.json
161
+ ```json title="package.json"
162
162
  {
163
163
  "main": "./dist/lib/index.js", // bundleless type
164
164
  "module": "./dist/es/index.js", // bundleless type
@@ -204,7 +204,7 @@ export const buildConfig = [
204
204
 
205
205
  例如希望 `'npm-library'` 预设支持 `'es2017'`,则可以按照如下方式配置:
206
206
 
207
- ```js modern.config.ts
207
+ ```js title="modern.config.ts"
208
208
  import { defineConfig } from '@modern-js/module-tools';
209
209
 
210
210
  export default defineConfig({
@@ -217,7 +217,7 @@ export default defineConfig({
217
217
  函数的配置方式,可以通过 `preset` 参数获取到预设值,然后对里面的构建配置进行修改来自定义你的构建配置。
218
218
  以下是一个函数的配置方式的例子,它配置了压缩构建产物的功能:
219
219
 
220
- ```js modern.config.ts
220
+ ```js title="modern.config.ts"
221
221
  import { defineConfig } from '@modern-js/module-tools';
222
222
 
223
223
  export default defineConfig({
@@ -248,10 +248,9 @@ export default defineConfig({
248
248
 
249
249
  包含了所有可用的构建预设对应的构建配置。可以通过 `buildPreset` 所支持的字符串来使用构建配置,也可以使用这些字符串的下划线命令的方式。下面是两种方式的使用示例:
250
250
 
251
+ - 使用 `buildPreset` 所支持的字符串。
251
252
 
252
- <CH.Spotlight>
253
-
254
- ```ts modern.config.ts
253
+ ```ts title="modern.config.ts"
255
254
  import { defineConfig } from '@modern-js/module-tools';
256
255
 
257
256
  export default defineConfig({
@@ -260,25 +259,10 @@ export default defineConfig({
260
259
  },
261
260
  });
262
261
  ```
263
- ---
264
262
 
265
- 使用 `buildPreset` 所支持的字符串。
263
+ - 使用 `buildPreset` 所支持的字符串的下划线命名方式。
266
264
 
267
- ```ts modern.config.ts
268
- import { defineConfig } from '@modern-js/module-tools';
269
-
270
- export default defineConfig({
271
- buildPreset({ preset }) {
272
- return preset['npm-library'];
273
- },
274
- });
275
- ```
276
-
277
- ---
278
-
279
- 使用 `buildPreset` 所支持的字符串的下划线命名方式。
280
-
281
- ```ts modern.config.ts
265
+ ```ts title="modern.config.ts"
282
266
  import { defineConfig } from '@modern-js/module-tools';
283
267
 
284
268
  export default defineConfig({
@@ -288,8 +272,6 @@ export default defineConfig({
288
272
  });
289
273
  ```
290
274
 
291
- </CH.Spotlight>
292
-
293
275
  #### `extendPreset`
294
276
 
295
277
  类型:`Function`
@@ -300,7 +282,7 @@ export default defineConfig({
300
282
 
301
283
  例如在 `'npm-library'` 构建预设的基础上增加 `define` 配置:
302
284
 
303
- ```ts modern.config.ts
285
+ ```ts title="modern.config.ts"
304
286
  import { defineConfig } from '@modern-js/module-tools';
305
287
 
306
288
  export default defineConfig({
@@ -969,7 +969,7 @@ const designSystem = {
969
969
 
970
970
  要覆盖默认配置中的选项,请在 `designSystem` 中添加要覆盖的属性:
971
971
 
972
- ```js modern.config.ts
972
+ ```js title="modern.config.ts"
973
973
  import { defineConfig } from '@modern-js/module-tools';
974
974
 
975
975
  const designSystem = {
@@ -999,7 +999,7 @@ export default defineConfig({
999
999
 
1000
1000
  例如,如果您想添加一个额外的断点但保留现有的断点,则可以扩展 `screens` 属性:
1001
1001
 
1002
- ```js modern.config.ts
1002
+ ```js title="modern.config.ts"
1003
1003
  import { defineConfig } from '@modern-js/module-tools';
1004
1004
 
1005
1005
  const designSystem = {
@@ -1018,7 +1018,7 @@ export default defineConfig({
1018
1018
 
1019
1019
  您当然可以覆盖默认主题的某些部分,并在同一配置中扩展默认主题的其他部分:
1020
1020
 
1021
- ```js modern.config.ts
1021
+ ```js title="modern.config.ts"
1022
1022
  import { defineConfig } from '@modern-js/module-tools';
1023
1023
 
1024
1024
  const designSystem = {
@@ -1048,7 +1048,7 @@ export default defineConfig({
1048
1048
 
1049
1049
  例如,您可以在 `fill` 配置上通过引用 `theme('colors')` 为调色板中的每种颜色生成 `fill` utilities。
1050
1050
 
1051
- ```js modern.config.ts
1051
+ ```js title="modern.config.ts"
1052
1052
  import { defineConfig } from '@modern-js/module-tools';
1053
1053
 
1054
1054
  const designSystem = {
@@ -1069,7 +1069,7 @@ export default defineConfig({
1069
1069
 
1070
1070
  如果出于任何原因想要引用默认配置中的值,则可以从 `tailwindcss/defaultTheme` 导入它。一个有用的示例是,如果要将添加默认配置提供的字体中某一个字体:
1071
1071
 
1072
- ```js modern.config.ts
1072
+ ```js title="modern.config.ts"
1073
1073
  import { defineConfig } from '@modern-js/module-tools';
1074
1074
 
1075
1075
  const defaultTheme = require('tailwindcss/defaultTheme');
@@ -1134,7 +1134,7 @@ const designSystem = {
1134
1134
 
1135
1135
  另一个示例是在自定义插件中添加新的属性以进行引用。例如,如果您为项目编写了渐变插件,则可以向该插件引用的主题对象添加渐变属性:
1136
1136
 
1137
- ```js modern.config.ts
1137
+ ```js title="modern.config.ts"
1138
1138
  import { defineConfig } from '@modern-js/module-tools';
1139
1139
 
1140
1140
  const designSystem = {
@@ -25,7 +25,7 @@ sidebar_position: 4
25
25
 
26
26
  使用 npm 上的插件,需要通过包管理器安装插件,并通过 import 引入。
27
27
 
28
- ```js modern.config.ts
28
+ ```js title="modern.config.ts"
29
29
  import { myPlugin } from 'my-plugin';
30
30
 
31
31
  export default defineConfig({
@@ -37,7 +37,7 @@ export default defineConfig({
37
37
 
38
38
  使用本地代码仓库中的插件,直接通过相对路径 import 引入即可。
39
39
 
40
- ```js modern.config.ts
40
+ ```js title="modern.config.ts"
41
41
  import { myPlugin } from './plugins/myPlugin';
42
42
 
43
43
  export default defineConfig({
@@ -49,7 +49,7 @@ export default defineConfig({
49
49
 
50
50
  如果插件提供了一些自定义的配置项,你可以通过插件函数的参数传入配置。
51
51
 
52
- ```js modern.config.ts
52
+ ```js title="modern.config.ts"
53
53
  import { myPlugin } from 'my-plugin';
54
54
 
55
55
  export default defineConfig({