@modern-js/module-tools-docs 2.0.1 → 2.0.2

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 (192) hide show
  1. package/doc_build/html/main/index.html +16 -0
  2. package/doc_build/route.json +10 -0
  3. package/doc_build/static/css/main.css +3370 -0
  4. package/doc_build/static/css/main.css.map +1 -0
  5. 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 +85 -0
  6. 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 +1 -0
  7. package/doc_build/static/js/async/api_.js +56 -0
  8. package/doc_build/static/js/async/api_.js.map +1 -0
  9. package/doc_build/static/js/async/api_config_build-config.js +11309 -0
  10. package/doc_build/static/js/async/api_config_build-config.js.map +1 -0
  11. package/doc_build/static/js/async/api_config_build-preset.js +7849 -0
  12. package/doc_build/static/js/async/api_config_build-preset.js.map +1 -0
  13. package/doc_build/static/js/async/api_config_design-system.js +48708 -0
  14. package/doc_build/static/js/async/api_config_design-system.js.map +1 -0
  15. package/doc_build/static/js/async/api_config_plugins.js +1492 -0
  16. package/doc_build/static/js/async/api_config_plugins.js.map +1 -0
  17. package/doc_build/static/js/async/api_config_testing.js +2130 -0
  18. package/doc_build/static/js/async/api_config_testing.js.map +1 -0
  19. package/doc_build/static/js/async/api_plugin-api_plugin-hooks.js +14394 -0
  20. package/doc_build/static/js/async/api_plugin-api_plugin-hooks.js.map +1 -0
  21. package/doc_build/static/js/async/en_.js +85 -0
  22. package/doc_build/static/js/async/en_.js.map +1 -0
  23. package/doc_build/static/js/async/en_api_.js +55 -0
  24. package/doc_build/static/js/async/en_api_.js.map +1 -0
  25. package/doc_build/static/js/async/en_api_config_build-config.js +8363 -0
  26. package/doc_build/static/js/async/en_api_config_build-config.js.map +1 -0
  27. package/doc_build/static/js/async/en_api_config_build-preset.js +7845 -0
  28. package/doc_build/static/js/async/en_api_config_build-preset.js.map +1 -0
  29. package/doc_build/static/js/async/en_api_config_design-system.js +16345 -0
  30. package/doc_build/static/js/async/en_api_config_design-system.js.map +1 -0
  31. package/doc_build/static/js/async/en_api_config_plugins.js +1492 -0
  32. package/doc_build/static/js/async/en_api_config_plugins.js.map +1 -0
  33. package/doc_build/static/js/async/en_api_config_testing.js +2137 -0
  34. package/doc_build/static/js/async/en_api_config_testing.js.map +1 -0
  35. package/doc_build/static/js/async/en_api_plugin-api_plugin-hooks.js +14362 -0
  36. package/doc_build/static/js/async/en_api_plugin-api_plugin-hooks.js.map +1 -0
  37. package/doc_build/static/js/async/en_guide_advance_asset.js +3997 -0
  38. package/doc_build/static/js/async/en_guide_advance_asset.js.map +1 -0
  39. package/doc_build/static/js/async/en_guide_advance_build-umd.js +9861 -0
  40. package/doc_build/static/js/async/en_guide_advance_build-umd.js.map +1 -0
  41. package/doc_build/static/js/async/en_guide_advance_copy.js +6539 -0
  42. package/doc_build/static/js/async/en_guide_advance_copy.js.map +1 -0
  43. package/doc_build/static/js/async/en_guide_advance_external-dependency.js +3810 -0
  44. package/doc_build/static/js/async/en_guide_advance_external-dependency.js.map +1 -0
  45. package/doc_build/static/js/async/en_guide_advance_in-depth-about-build.js +5046 -0
  46. package/doc_build/static/js/async/en_guide_advance_in-depth-about-build.js.map +1 -0
  47. package/doc_build/static/js/async/en_guide_advance_in-depth-about-dev-command.js +150 -0
  48. package/doc_build/static/js/async/en_guide_advance_in-depth-about-dev-command.js.map +1 -0
  49. package/doc_build/static/js/async/en_guide_advance_theme-config.js +2484 -0
  50. package/doc_build/static/js/async/en_guide_advance_theme-config.js.map +1 -0
  51. package/doc_build/static/js/async/en_guide_basic_before-getting-started.js +3671 -0
  52. package/doc_build/static/js/async/en_guide_basic_before-getting-started.js.map +1 -0
  53. package/doc_build/static/js/async/en_guide_basic_command-preview.js +3961 -0
  54. package/doc_build/static/js/async/en_guide_basic_command-preview.js.map +1 -0
  55. package/doc_build/static/js/async/en_guide_basic_modify-output-product.js +2970 -0
  56. package/doc_build/static/js/async/en_guide_basic_modify-output-product.js.map +1 -0
  57. package/doc_build/static/js/async/en_guide_basic_publish-your-project.js +2182 -0
  58. package/doc_build/static/js/async/en_guide_basic_publish-your-project.js.map +1 -0
  59. package/doc_build/static/js/async/en_guide_basic_test-your-project.js +3892 -0
  60. package/doc_build/static/js/async/en_guide_basic_test-your-project.js.map +1 -0
  61. package/doc_build/static/js/async/en_guide_basic_use-micro-generator.js +168 -0
  62. package/doc_build/static/js/async/en_guide_basic_use-micro-generator.js.map +1 -0
  63. package/doc_build/static/js/async/en_guide_basic_using-storybook.js +4762 -0
  64. package/doc_build/static/js/async/en_guide_basic_using-storybook.js.map +1 -0
  65. package/doc_build/static/js/async/en_guide_best-practices_components.js +21388 -0
  66. package/doc_build/static/js/async/en_guide_best-practices_components.js.map +1 -0
  67. package/doc_build/static/js/async/en_guide_intro_getting-started.js +1906 -0
  68. package/doc_build/static/js/async/en_guide_intro_getting-started.js.map +1 -0
  69. package/doc_build/static/js/async/en_guide_intro_welcome.js +148 -0
  70. package/doc_build/static/js/async/en_guide_intro_welcome.js.map +1 -0
  71. package/doc_build/static/js/async/en_guide_intro_why-module-engineering-solution.js +92 -0
  72. package/doc_build/static/js/async/en_guide_intro_why-module-engineering-solution.js.map +1 -0
  73. package/doc_build/static/js/async/en_plugins_guide_getting-started.js +2560 -0
  74. package/doc_build/static/js/async/en_plugins_guide_getting-started.js.map +1 -0
  75. package/doc_build/static/js/async/en_plugins_guide_plugin-object.js +4177 -0
  76. package/doc_build/static/js/async/en_plugins_guide_plugin-object.js.map +1 -0
  77. package/doc_build/static/js/async/en_plugins_guide_setup-function.js +3819 -0
  78. package/doc_build/static/js/async/en_plugins_guide_setup-function.js.map +1 -0
  79. package/doc_build/static/js/async/en_plugins_official-list_overview.js +70 -0
  80. package/doc_build/static/js/async/en_plugins_official-list_overview.js.map +1 -0
  81. package/doc_build/static/js/async/guide_advance_asset.js +3997 -0
  82. package/doc_build/static/js/async/guide_advance_asset.js.map +1 -0
  83. package/doc_build/static/js/async/guide_advance_build-umd.js +9863 -0
  84. package/doc_build/static/js/async/guide_advance_build-umd.js.map +1 -0
  85. package/doc_build/static/js/async/guide_advance_copy.js +6539 -0
  86. package/doc_build/static/js/async/guide_advance_copy.js.map +1 -0
  87. package/doc_build/static/js/async/guide_advance_external-dependency.js +3812 -0
  88. package/doc_build/static/js/async/guide_advance_external-dependency.js.map +1 -0
  89. package/doc_build/static/js/async/guide_advance_in-depth-about-build.js +5046 -0
  90. package/doc_build/static/js/async/guide_advance_in-depth-about-build.js.map +1 -0
  91. package/doc_build/static/js/async/guide_advance_in-depth-about-dev-command.js +152 -0
  92. package/doc_build/static/js/async/guide_advance_in-depth-about-dev-command.js.map +1 -0
  93. package/doc_build/static/js/async/guide_advance_theme-config.js +2475 -0
  94. package/doc_build/static/js/async/guide_advance_theme-config.js.map +1 -0
  95. package/doc_build/static/js/async/guide_basic_before-getting-started.js +3662 -0
  96. package/doc_build/static/js/async/guide_basic_before-getting-started.js.map +1 -0
  97. package/doc_build/static/js/async/guide_basic_command-preview.js +3793 -0
  98. package/doc_build/static/js/async/guide_basic_command-preview.js.map +1 -0
  99. package/doc_build/static/js/async/guide_basic_modify-output-product.js +2949 -0
  100. package/doc_build/static/js/async/guide_basic_modify-output-product.js.map +1 -0
  101. package/doc_build/static/js/async/guide_basic_publish-your-project.js +2243 -0
  102. package/doc_build/static/js/async/guide_basic_publish-your-project.js.map +1 -0
  103. package/doc_build/static/js/async/guide_basic_test-your-project.js +3892 -0
  104. package/doc_build/static/js/async/guide_basic_test-your-project.js.map +1 -0
  105. package/doc_build/static/js/async/guide_basic_use-micro-generator.js +172 -0
  106. package/doc_build/static/js/async/guide_basic_use-micro-generator.js.map +1 -0
  107. package/doc_build/static/js/async/guide_basic_using-storybook.js +4762 -0
  108. package/doc_build/static/js/async/guide_basic_using-storybook.js.map +1 -0
  109. package/doc_build/static/js/async/guide_best-practices_components.js +21088 -0
  110. package/doc_build/static/js/async/guide_best-practices_components.js.map +1 -0
  111. package/doc_build/static/js/async/guide_intro_getting-started.js +1782 -0
  112. package/doc_build/static/js/async/guide_intro_getting-started.js.map +1 -0
  113. package/doc_build/static/js/async/guide_intro_welcome.js +148 -0
  114. package/doc_build/static/js/async/guide_intro_welcome.js.map +1 -0
  115. package/doc_build/static/js/async/guide_intro_why-module-engineering-solution.js +92 -0
  116. package/doc_build/static/js/async/guide_intro_why-module-engineering-solution.js.map +1 -0
  117. package/doc_build/static/js/async/index.js +85 -0
  118. package/doc_build/static/js/async/index.js.map +1 -0
  119. package/doc_build/static/js/async/packages_cli_doc-core_src_theme-default_components_Search_logic_search_ts.js +447 -0
  120. package/doc_build/static/js/async/packages_cli_doc-core_src_theme-default_components_Search_logic_search_ts.js.map +1 -0
  121. package/doc_build/static/js/async/plugins_guide_getting-started.js +2608 -0
  122. package/doc_build/static/js/async/plugins_guide_getting-started.js.map +1 -0
  123. package/doc_build/static/js/async/plugins_guide_plugin-object.js +4173 -0
  124. package/doc_build/static/js/async/plugins_guide_plugin-object.js.map +1 -0
  125. package/doc_build/static/js/async/plugins_guide_setup-function.js +3819 -0
  126. package/doc_build/static/js/async/plugins_guide_setup-function.js.map +1 -0
  127. package/doc_build/static/js/async/plugins_official-list_overview.js +70 -0
  128. package/doc_build/static/js/async/plugins_official-list_overview.js.map +1 -0
  129. 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 +6656 -0
  130. 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 +1 -0
  131. package/doc_build/static/js/async/vendors-node_modules_pnpm_flexsearch_0_6_32_node_modules_flexsearch_dist_flexsearch_min_js.js +54 -0
  132. package/doc_build/static/js/async/vendors-node_modules_pnpm_flexsearch_0_6_32_node_modules_flexsearch_dist_flexsearch_min_js.js.map +1 -0
  133. package/doc_build/static/js/builder-runtime.js +1375 -0
  134. package/doc_build/static/js/builder-runtime.js.map +1 -0
  135. package/doc_build/static/js/lib-lodash.js +4907 -0
  136. package/doc_build/static/js/lib-lodash.js.map +1 -0
  137. package/doc_build/static/js/lib-polyfill.js +24769 -0
  138. package/doc_build/static/js/lib-polyfill.js.map +1 -0
  139. package/doc_build/static/js/lib-react.js +39510 -0
  140. package/doc_build/static/js/lib-react.js.map +1 -0
  141. package/doc_build/static/js/main.js +9237 -0
  142. package/doc_build/static/js/main.js.map +1 -0
  143. 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 +8532 -0
  144. 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 +1 -0
  145. package/docs/en/api/config/build-config.md +5 -5
  146. package/docs/en/api/plugin-api/plugin-hooks.md +1 -1
  147. package/docs/en/guide/advance/asset.mdx +1 -1
  148. package/docs/en/guide/advance/build-umd.mdx +3 -3
  149. package/docs/en/guide/advance/copy.md +5 -5
  150. package/docs/en/guide/advance/external-dependency.mdx +2 -2
  151. package/docs/en/guide/advance/in-depth-about-build.md +7 -7
  152. package/docs/en/guide/advance/in-depth-about-dev-command.md +1 -1
  153. package/docs/en/guide/advance/theme-config.mdx +2 -2
  154. package/docs/en/guide/basic/before-getting-started.md +1 -1
  155. package/docs/en/guide/basic/command-preview.md +2 -2
  156. package/docs/en/guide/basic/modify-output-product.md +23 -22
  157. package/docs/en/guide/basic/publish-your-project.md +4 -4
  158. package/docs/en/guide/basic/test-your-project.mdx +5 -3
  159. package/docs/en/guide/basic/use-micro-generator.md +9 -5
  160. package/docs/en/guide/basic/using-storybook.mdx +6 -4
  161. package/docs/en/guide/best-practices/components.mdx +103 -97
  162. package/docs/en/guide/intro/getting-started.md +2 -2
  163. package/docs/en/index.md +14 -17
  164. package/docs/en/plugins/guide/getting-started.mdx +2 -2
  165. package/docs/en/plugins/guide/setup-function.mdx +2 -2
  166. package/docs/zh/api/config/_category_.json +1 -1
  167. package/docs/zh/api/config/build-config.md +16 -5
  168. package/docs/zh/api/config/plugins.md +1 -1
  169. package/docs/zh/api/index.md +1 -0
  170. package/docs/zh/api/plugin-api/_category_.json +1 -1
  171. package/docs/zh/api/plugin-api/plugin-hooks.md +56 -55
  172. package/docs/zh/guide/advance/asset.mdx +1 -1
  173. package/docs/zh/guide/advance/build-umd.mdx +3 -3
  174. package/docs/zh/guide/advance/copy.md +5 -5
  175. package/docs/zh/guide/advance/external-dependency.mdx +3 -3
  176. package/docs/zh/guide/advance/in-depth-about-build.md +7 -7
  177. package/docs/zh/guide/advance/in-depth-about-dev-command.md +1 -1
  178. package/docs/zh/guide/advance/theme-config.mdx +2 -2
  179. package/docs/zh/guide/basic/before-getting-started.md +1 -1
  180. package/docs/zh/guide/basic/command-preview.md +2 -2
  181. package/docs/zh/guide/basic/modify-output-product.md +30 -30
  182. package/docs/zh/guide/basic/publish-your-project.md +4 -4
  183. package/docs/zh/guide/basic/test-your-project.mdx +5 -3
  184. package/docs/zh/guide/basic/use-micro-generator.md +5 -5
  185. package/docs/zh/guide/basic/using-storybook.mdx +6 -4
  186. package/docs/zh/guide/best-practices/components.mdx +10 -10
  187. package/docs/zh/guide/intro/getting-started.md +2 -2
  188. package/docs/zh/index.md +1 -1
  189. package/docs/zh/plugins/guide/getting-started.mdx +3 -3
  190. package/docs/zh/plugins/guide/setup-function.mdx +2 -2
  191. package/modern.config.ts +4 -3
  192. package/package.json +3 -3
@@ -0,0 +1,3662 @@
1
+ "use strict";
2
+ (self["webpackChunk_modern_js_module_tools_docs"] = self["webpackChunk_modern_js_module_tools_docs"] || []).push([["guide_basic_before-getting-started"],{
3
+
4
+ /***/ "./docs/zh/guide/basic/before-getting-started.md":
5
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6
+
7
+ __webpack_require__.r(__webpack_exports__);
8
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9
+ /* harmony export */ "CH": function() { return /* binding */ CH; },
10
+ /* harmony export */ "chCodeConfig": function() { return /* binding */ chCodeConfig; },
11
+ /* harmony export */ "content": function() { return /* binding */ content; },
12
+ /* harmony export */ "frontmatter": function() { return /* binding */ frontmatter; },
13
+ /* harmony export */ "title": function() { return /* binding */ title; },
14
+ /* harmony export */ "toc": function() { return /* binding */ toc; }
15
+ /* harmony export */ });
16
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js");
17
+ /* harmony import */ var _code_hike_mdx_dist_components_cjs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../../node_modules/.pnpm/@code-hike+mdx@0.7.4_react@18.2.0/node_modules/@code-hike/mdx/dist/components.esm.mjs");
18
+ /*@jsxRuntime automatic @jsxImportSource react*/
19
+
20
+
21
+ var CH = {
22
+ annotations: _code_hike_mdx_dist_components_cjs_js__WEBPACK_IMPORTED_MODULE_1__.annotations,
23
+ Code: _code_hike_mdx_dist_components_cjs_js__WEBPACK_IMPORTED_MODULE_1__.Code
24
+ };
25
+ var chCodeConfig = {
26
+ "staticMediaQuery": "not screen, (max-width: 768px)",
27
+ "theme": {
28
+ "name": "nord",
29
+ "type": "dark",
30
+ "semanticHighlighting": true,
31
+ "colors": {
32
+ "focusBorder": "#3b4252",
33
+ "foreground": "#d8dee9",
34
+ "activityBar.background": "#2e3440",
35
+ "activityBar.dropBackground": "#3b4252",
36
+ "activityBar.foreground": "#d8dee9",
37
+ "activityBar.activeBorder": "#88c0d0",
38
+ "activityBar.activeBackground": "#3b4252",
39
+ "activityBarBadge.background": "#88c0d0",
40
+ "activityBarBadge.foreground": "#2e3440",
41
+ "badge.foreground": "#2e3440",
42
+ "badge.background": "#88c0d0",
43
+ "button.background": "#88c0d0ee",
44
+ "button.foreground": "#2e3440",
45
+ "button.hoverBackground": "#88c0d0",
46
+ "button.secondaryBackground": "#434c5e",
47
+ "button.secondaryForeground": "#d8dee9",
48
+ "button.secondaryHoverBackground": "#4c566a",
49
+ "charts.red": "#bf616a",
50
+ "charts.blue": "#81a1c1",
51
+ "charts.yellow": "#ebcb8b",
52
+ "charts.orange": "#d08770",
53
+ "charts.green": "#a3be8c",
54
+ "charts.purple": "#b48ead",
55
+ "charts.foreground": "#d8dee9",
56
+ "charts.lines": "#88c0d0",
57
+ "debugConsole.infoForeground": "#88c0d0",
58
+ "debugConsole.warningForeground": "#ebcb8b",
59
+ "debugConsole.errorForeground": "#bf616a",
60
+ "debugConsole.sourceForeground": "#616e88",
61
+ "debugConsoleInputIcon.foreground": "#81a1c1",
62
+ "debugExceptionWidget.background": "#4c566a",
63
+ "debugExceptionWidget.border": "#2e3440",
64
+ "debugToolBar.background": "#3b4252",
65
+ "descriptionForeground": "#d8dee9e6",
66
+ "diffEditor.insertedTextBackground": "#81a1c133",
67
+ "diffEditor.removedTextBackground": "#bf616a4d",
68
+ "dropdown.background": "#3b4252",
69
+ "dropdown.border": "#3b4252",
70
+ "dropdown.foreground": "#d8dee9",
71
+ "editorActiveLineNumber.foreground": "#d8dee9cc",
72
+ "editorCursor.foreground": "#d8dee9",
73
+ "editorHint.border": "#ebcb8b00",
74
+ "editorHint.foreground": "#ebcb8b",
75
+ "editorIndentGuide.background": "#434c5eb3",
76
+ "editorIndentGuide.activeBackground": "#4c566a",
77
+ "editorInlayHint.background": "#434c5e",
78
+ "editorInlayHint.foreground": "#d8dee9",
79
+ "editorLineNumber.foreground": "#4c566a",
80
+ "editorLineNumber.activeForeground": "#d8dee9",
81
+ "editorWhitespace.foreground": "#4c566ab3",
82
+ "editorWidget.background": "#2e3440",
83
+ "editorWidget.border": "#3b4252",
84
+ "editor.background": "#2e3440",
85
+ "editor.foreground": "#d8dee9",
86
+ "editor.hoverHighlightBackground": "#3b4252",
87
+ "editor.findMatchBackground": "#88c0d066",
88
+ "editor.findMatchHighlightBackground": "#88c0d033",
89
+ "editor.findRangeHighlightBackground": "#88c0d033",
90
+ "editor.lineHighlightBackground": "#3b4252",
91
+ "editor.lineHighlightBorder": "#3b4252",
92
+ "editor.inactiveSelectionBackground": "#434c5ecc",
93
+ "editor.inlineValuesBackground": "#4c566a",
94
+ "editor.inlineValuesForeground": "#eceff4",
95
+ "editor.selectionBackground": "#434c5ecc",
96
+ "editor.selectionHighlightBackground": "#434c5ecc",
97
+ "editor.rangeHighlightBackground": "#434c5e52",
98
+ "editor.wordHighlightBackground": "#81a1c166",
99
+ "editor.wordHighlightStrongBackground": "#81a1c199",
100
+ "editor.stackFrameHighlightBackground": "#5e81ac",
101
+ "editor.focusedStackFrameHighlightBackground": "#5e81ac",
102
+ "editorError.foreground": "#bf616a",
103
+ "editorError.border": "#bf616a00",
104
+ "editorWarning.foreground": "#ebcb8b",
105
+ "editorWarning.border": "#ebcb8b00",
106
+ "editorBracketMatch.background": "#2e344000",
107
+ "editorBracketMatch.border": "#88c0d0",
108
+ "editorBracketHighlight.foreground1": "#8fbcbb",
109
+ "editorBracketHighlight.foreground2": "#88c0d0",
110
+ "editorBracketHighlight.foreground3": "#81a1c1",
111
+ "editorBracketHighlight.foreground4": "#5e81ac",
112
+ "editorBracketHighlight.foreground5": "#8fbcbb",
113
+ "editorBracketHighlight.foreground6": "#88c0d0",
114
+ "editorBracketHighlight.unexpectedBracket.foreground": "#bf616a",
115
+ "editorCodeLens.foreground": "#4c566a",
116
+ "editorGroup.background": "#2e3440",
117
+ "editorGroup.border": "#3b425201",
118
+ "editorGroup.dropBackground": "#3b425299",
119
+ "editorGroupHeader.border": "#3b425200",
120
+ "editorGroupHeader.noTabsBackground": "#2e3440",
121
+ "editorGroupHeader.tabsBackground": "#2e3440",
122
+ "editorGroupHeader.tabsBorder": "#3b425200",
123
+ "editorGutter.background": "#2e3440",
124
+ "editorGutter.modifiedBackground": "#ebcb8b",
125
+ "editorGutter.addedBackground": "#a3be8c",
126
+ "editorGutter.deletedBackground": "#bf616a",
127
+ "editorHoverWidget.background": "#3b4252",
128
+ "editorHoverWidget.border": "#3b4252",
129
+ "editorLink.activeForeground": "#88c0d0",
130
+ "editorMarkerNavigation.background": "#5e81acc0",
131
+ "editorMarkerNavigationError.background": "#bf616ac0",
132
+ "editorMarkerNavigationWarning.background": "#ebcb8bc0",
133
+ "editorOverviewRuler.border": "#3b4252",
134
+ "editorOverviewRuler.currentContentForeground": "#3b4252",
135
+ "editorOverviewRuler.incomingContentForeground": "#3b4252",
136
+ "editorOverviewRuler.findMatchForeground": "#88c0d066",
137
+ "editorOverviewRuler.rangeHighlightForeground": "#88c0d066",
138
+ "editorOverviewRuler.selectionHighlightForeground": "#88c0d066",
139
+ "editorOverviewRuler.wordHighlightForeground": "#88c0d066",
140
+ "editorOverviewRuler.wordHighlightStrongForeground": "#88c0d066",
141
+ "editorOverviewRuler.modifiedForeground": "#ebcb8b",
142
+ "editorOverviewRuler.addedForeground": "#a3be8c",
143
+ "editorOverviewRuler.deletedForeground": "#bf616a",
144
+ "editorOverviewRuler.errorForeground": "#bf616a",
145
+ "editorOverviewRuler.warningForeground": "#ebcb8b",
146
+ "editorOverviewRuler.infoForeground": "#81a1c1",
147
+ "editorRuler.foreground": "#434c5e",
148
+ "editorSuggestWidget.background": "#2e3440",
149
+ "editorSuggestWidget.border": "#3b4252",
150
+ "editorSuggestWidget.foreground": "#d8dee9",
151
+ "editorSuggestWidget.focusHighlightForeground": "#88c0d0",
152
+ "editorSuggestWidget.highlightForeground": "#88c0d0",
153
+ "editorSuggestWidget.selectedBackground": "#434c5e",
154
+ "editorSuggestWidget.selectedForeground": "#d8dee9",
155
+ "extensionButton.prominentForeground": "#d8dee9",
156
+ "extensionButton.prominentBackground": "#434c5e",
157
+ "extensionButton.prominentHoverBackground": "#4c566a",
158
+ "errorForeground": "#bf616a",
159
+ "gitDecoration.modifiedResourceForeground": "#ebcb8b",
160
+ "gitDecoration.deletedResourceForeground": "#bf616a",
161
+ "gitDecoration.untrackedResourceForeground": "#a3be8c",
162
+ "gitDecoration.ignoredResourceForeground": "#d8dee966",
163
+ "gitDecoration.conflictingResourceForeground": "#5e81ac",
164
+ "gitDecoration.submoduleResourceForeground": "#8fbcbb",
165
+ "gitDecoration.stageDeletedResourceForeground": "#bf616a",
166
+ "gitDecoration.stageModifiedResourceForeground": "#ebcb8b",
167
+ "input.background": "#3b4252",
168
+ "input.foreground": "#d8dee9",
169
+ "input.placeholderForeground": "#d8dee999",
170
+ "input.border": "#3b4252",
171
+ "inputOption.activeBackground": "#5e81ac",
172
+ "inputOption.activeBorder": "#5e81ac",
173
+ "inputOption.activeForeground": "#eceff4",
174
+ "inputValidation.errorBackground": "#bf616a",
175
+ "inputValidation.errorBorder": "#bf616a",
176
+ "inputValidation.infoBackground": "#81a1c1",
177
+ "inputValidation.infoBorder": "#81a1c1",
178
+ "inputValidation.warningBackground": "#d08770",
179
+ "inputValidation.warningBorder": "#d08770",
180
+ "keybindingLabel.background": "#4c566a",
181
+ "keybindingLabel.border": "#4c566a",
182
+ "keybindingLabel.bottomBorder": "#4c566a",
183
+ "keybindingLabel.foreground": "#d8dee9",
184
+ "list.activeSelectionBackground": "#88c0d0",
185
+ "list.activeSelectionForeground": "#2e3440",
186
+ "list.inactiveSelectionBackground": "#434c5e",
187
+ "list.inactiveSelectionForeground": "#d8dee9",
188
+ "list.inactiveFocusBackground": "#434c5ecc",
189
+ "list.hoverForeground": "#eceff4",
190
+ "list.focusForeground": "#d8dee9",
191
+ "list.focusBackground": "#88c0d099",
192
+ "list.focusHighlightForeground": "#eceff4",
193
+ "list.hoverBackground": "#3b4252",
194
+ "list.dropBackground": "#88c0d099",
195
+ "list.highlightForeground": "#88c0d0",
196
+ "list.errorForeground": "#bf616a",
197
+ "list.warningForeground": "#ebcb8b",
198
+ "merge.currentHeaderBackground": "#81a1c166",
199
+ "merge.currentContentBackground": "#81a1c14d",
200
+ "merge.incomingHeaderBackground": "#8fbcbb66",
201
+ "merge.incomingContentBackground": "#8fbcbb4d",
202
+ "merge.border": "#3b425200",
203
+ "minimap.background": "#2e3440",
204
+ "minimap.errorHighlight": "#bf616acc",
205
+ "minimap.findMatchHighlight": "#88c0d0",
206
+ "minimap.selectionHighlight": "#88c0d0cc",
207
+ "minimap.warningHighlight": "#ebcb8bcc",
208
+ "minimapGutter.addedBackground": "#a3be8c",
209
+ "minimapGutter.deletedBackground": "#bf616a",
210
+ "minimapGutter.modifiedBackground": "#ebcb8b",
211
+ "minimapSlider.activeBackground": "#434c5eaa",
212
+ "minimapSlider.background": "#434c5e99",
213
+ "minimapSlider.hoverBackground": "#434c5eaa",
214
+ "notification.background": "#3b4252",
215
+ "notification.buttonBackground": "#434c5e",
216
+ "notification.buttonForeground": "#d8dee9",
217
+ "notification.buttonHoverBackground": "#4c566a",
218
+ "notification.errorBackground": "#bf616a",
219
+ "notification.errorForeground": "#2e3440",
220
+ "notification.foreground": "#d8dee9",
221
+ "notification.infoBackground": "#88c0d0",
222
+ "notification.infoForeground": "#2e3440",
223
+ "notification.warningBackground": "#ebcb8b",
224
+ "notification.warningForeground": "#2e3440",
225
+ "notificationCenter.border": "#3b425200",
226
+ "notificationCenterHeader.background": "#2e3440",
227
+ "notificationCenterHeader.foreground": "#88c0d0",
228
+ "notificationLink.foreground": "#88c0d0",
229
+ "notifications.background": "#3b4252",
230
+ "notifications.border": "#2e3440",
231
+ "notifications.foreground": "#d8dee9",
232
+ "notificationToast.border": "#3b425200",
233
+ "panel.background": "#2e3440",
234
+ "panel.border": "#3b4252",
235
+ "panelTitle.activeBorder": "#88c0d000",
236
+ "panelTitle.activeForeground": "#88c0d0",
237
+ "panelTitle.inactiveForeground": "#d8dee9",
238
+ "peekView.border": "#4c566a",
239
+ "peekViewEditor.background": "#2e3440",
240
+ "peekViewEditorGutter.background": "#2e3440",
241
+ "peekViewEditor.matchHighlightBackground": "#88c0d04d",
242
+ "peekViewResult.background": "#2e3440",
243
+ "peekViewResult.fileForeground": "#88c0d0",
244
+ "peekViewResult.lineForeground": "#d8dee966",
245
+ "peekViewResult.matchHighlightBackground": "#88c0d0cc",
246
+ "peekViewResult.selectionBackground": "#434c5e",
247
+ "peekViewResult.selectionForeground": "#d8dee9",
248
+ "peekViewTitle.background": "#3b4252",
249
+ "peekViewTitleDescription.foreground": "#d8dee9",
250
+ "peekViewTitleLabel.foreground": "#88c0d0",
251
+ "pickerGroup.border": "#3b4252",
252
+ "pickerGroup.foreground": "#88c0d0",
253
+ "progressBar.background": "#88c0d0",
254
+ "quickInputList.focusBackground": "#88c0d0",
255
+ "quickInputList.focusForeground": "#2e3440",
256
+ "sash.hoverBorder": "#88c0d0",
257
+ "scrollbar.shadow": "#00000066",
258
+ "scrollbarSlider.activeBackground": "#434c5eaa",
259
+ "scrollbarSlider.background": "#434c5e99",
260
+ "scrollbarSlider.hoverBackground": "#434c5eaa",
261
+ "selection.background": "#88c0d099",
262
+ "sideBar.background": "#2e3440",
263
+ "sideBar.foreground": "#d8dee9",
264
+ "sideBar.border": "#3b4252",
265
+ "sideBarSectionHeader.background": "#3b4252",
266
+ "sideBarSectionHeader.foreground": "#d8dee9",
267
+ "sideBarTitle.foreground": "#d8dee9",
268
+ "statusBar.background": "#3b4252",
269
+ "statusBar.debuggingBackground": "#5e81ac",
270
+ "statusBar.debuggingForeground": "#d8dee9",
271
+ "statusBar.noFolderForeground": "#d8dee9",
272
+ "statusBar.noFolderBackground": "#3b4252",
273
+ "statusBar.foreground": "#d8dee9",
274
+ "statusBarItem.activeBackground": "#4c566a",
275
+ "statusBarItem.hoverBackground": "#434c5e",
276
+ "statusBarItem.prominentBackground": "#3b4252",
277
+ "statusBarItem.prominentHoverBackground": "#434c5e",
278
+ "statusBarItem.errorBackground": "#3b4252",
279
+ "statusBarItem.errorForeground": "#bf616a",
280
+ "statusBarItem.warningBackground": "#ebcb8b",
281
+ "statusBarItem.warningForeground": "#2e3440",
282
+ "statusBar.border": "#3b425200",
283
+ "tab.activeBackground": "#3b4252",
284
+ "tab.activeForeground": "#d8dee9",
285
+ "tab.border": "#3b425200",
286
+ "tab.activeBorder": "#88c0d000",
287
+ "tab.unfocusedActiveBorder": "#88c0d000",
288
+ "tab.inactiveBackground": "#2e3440",
289
+ "tab.inactiveForeground": "#d8dee966",
290
+ "tab.unfocusedActiveForeground": "#d8dee999",
291
+ "tab.unfocusedInactiveForeground": "#d8dee966",
292
+ "tab.hoverBackground": "#3b4252cc",
293
+ "tab.unfocusedHoverBackground": "#3b4252b3",
294
+ "tab.hoverBorder": "#88c0d000",
295
+ "tab.unfocusedHoverBorder": "#88c0d000",
296
+ "tab.activeBorderTop": "#88c0d000",
297
+ "tab.unfocusedActiveBorderTop": "#88c0d000",
298
+ "tab.lastPinnedBorder": "#4c566a",
299
+ "terminal.background": "#2e3440",
300
+ "terminal.foreground": "#d8dee9",
301
+ "terminal.ansiBlack": "#3b4252",
302
+ "terminal.ansiRed": "#bf616a",
303
+ "terminal.ansiGreen": "#a3be8c",
304
+ "terminal.ansiYellow": "#ebcb8b",
305
+ "terminal.ansiBlue": "#81a1c1",
306
+ "terminal.ansiMagenta": "#b48ead",
307
+ "terminal.ansiCyan": "#88c0d0",
308
+ "terminal.ansiWhite": "#e5e9f0",
309
+ "terminal.ansiBrightBlack": "#4c566a",
310
+ "terminal.ansiBrightRed": "#bf616a",
311
+ "terminal.ansiBrightGreen": "#a3be8c",
312
+ "terminal.ansiBrightYellow": "#ebcb8b",
313
+ "terminal.ansiBrightBlue": "#81a1c1",
314
+ "terminal.ansiBrightMagenta": "#b48ead",
315
+ "terminal.ansiBrightCyan": "#8fbcbb",
316
+ "terminal.ansiBrightWhite": "#eceff4",
317
+ "terminal.tab.activeBorder": "#88c0d0",
318
+ "textBlockQuote.background": "#3b4252",
319
+ "textBlockQuote.border": "#81a1c1",
320
+ "textCodeBlock.background": "#4c566a",
321
+ "textLink.activeForeground": "#88c0d0",
322
+ "textLink.foreground": "#88c0d0",
323
+ "textPreformat.foreground": "#8fbcbb",
324
+ "textSeparator.foreground": "#eceff4",
325
+ "titleBar.activeBackground": "#2e3440",
326
+ "titleBar.activeForeground": "#d8dee9",
327
+ "titleBar.border": "#2e344000",
328
+ "titleBar.inactiveBackground": "#2e3440",
329
+ "titleBar.inactiveForeground": "#d8dee966",
330
+ "tree.indentGuidesStroke": "#616e88",
331
+ "walkThrough.embeddedEditorBackground": "#2e3440",
332
+ "welcomePage.buttonBackground": "#434c5e",
333
+ "welcomePage.buttonHoverBackground": "#4c566a",
334
+ "widget.shadow": "#00000066"
335
+ },
336
+ "tokenColors": [{
337
+ "settings": {
338
+ "foreground": "#d8dee9ff",
339
+ "background": "#2e3440ff"
340
+ }
341
+ }, {
342
+ "scope": "emphasis",
343
+ "settings": {
344
+ "fontStyle": "italic"
345
+ }
346
+ }, {
347
+ "scope": "strong",
348
+ "settings": {
349
+ "fontStyle": "bold"
350
+ }
351
+ }, {
352
+ "name": "Comment",
353
+ "scope": "comment",
354
+ "settings": {
355
+ "foreground": "#616E88"
356
+ }
357
+ }, {
358
+ "name": "Constant Character",
359
+ "scope": "constant.character",
360
+ "settings": {
361
+ "foreground": "#EBCB8B"
362
+ }
363
+ }, {
364
+ "name": "Constant Character Escape",
365
+ "scope": "constant.character.escape",
366
+ "settings": {
367
+ "foreground": "#EBCB8B"
368
+ }
369
+ }, {
370
+ "name": "Constant Language",
371
+ "scope": "constant.language",
372
+ "settings": {
373
+ "foreground": "#81A1C1"
374
+ }
375
+ }, {
376
+ "name": "Constant Numeric",
377
+ "scope": "constant.numeric",
378
+ "settings": {
379
+ "foreground": "#B48EAD"
380
+ }
381
+ }, {
382
+ "name": "Constant Regexp",
383
+ "scope": "constant.regexp",
384
+ "settings": {
385
+ "foreground": "#EBCB8B"
386
+ }
387
+ }, {
388
+ "name": "Entity Name Class/Type",
389
+ "scope": ["entity.name.class", "entity.name.type.class"],
390
+ "settings": {
391
+ "foreground": "#8FBCBB"
392
+ }
393
+ }, {
394
+ "name": "Entity Name Function",
395
+ "scope": "entity.name.function",
396
+ "settings": {
397
+ "foreground": "#88C0D0"
398
+ }
399
+ }, {
400
+ "name": "Entity Name Tag",
401
+ "scope": "entity.name.tag",
402
+ "settings": {
403
+ "foreground": "#81A1C1"
404
+ }
405
+ }, {
406
+ "name": "Entity Other Attribute Name",
407
+ "scope": "entity.other.attribute-name",
408
+ "settings": {
409
+ "foreground": "#8FBCBB"
410
+ }
411
+ }, {
412
+ "name": "Entity Other Inherited Class",
413
+ "scope": "entity.other.inherited-class",
414
+ "settings": {
415
+ "fontStyle": "bold",
416
+ "foreground": "#8FBCBB"
417
+ }
418
+ }, {
419
+ "name": "Invalid Deprecated",
420
+ "scope": "invalid.deprecated",
421
+ "settings": {
422
+ "foreground": "#D8DEE9",
423
+ "background": "#EBCB8B"
424
+ }
425
+ }, {
426
+ "name": "Invalid Illegal",
427
+ "scope": "invalid.illegal",
428
+ "settings": {
429
+ "foreground": "#D8DEE9",
430
+ "background": "#BF616A"
431
+ }
432
+ }, {
433
+ "name": "Keyword",
434
+ "scope": "keyword",
435
+ "settings": {
436
+ "foreground": "#81A1C1"
437
+ }
438
+ }, {
439
+ "name": "Keyword Operator",
440
+ "scope": "keyword.operator",
441
+ "settings": {
442
+ "foreground": "#81A1C1"
443
+ }
444
+ }, {
445
+ "name": "Keyword Other New",
446
+ "scope": "keyword.other.new",
447
+ "settings": {
448
+ "foreground": "#81A1C1"
449
+ }
450
+ }, {
451
+ "name": "Markup Bold",
452
+ "scope": "markup.bold",
453
+ "settings": {
454
+ "fontStyle": "bold"
455
+ }
456
+ }, {
457
+ "name": "Markup Changed",
458
+ "scope": "markup.changed",
459
+ "settings": {
460
+ "foreground": "#EBCB8B"
461
+ }
462
+ }, {
463
+ "name": "Markup Deleted",
464
+ "scope": "markup.deleted",
465
+ "settings": {
466
+ "foreground": "#BF616A"
467
+ }
468
+ }, {
469
+ "name": "Markup Inserted",
470
+ "scope": "markup.inserted",
471
+ "settings": {
472
+ "foreground": "#A3BE8C"
473
+ }
474
+ }, {
475
+ "name": "Meta Preprocessor",
476
+ "scope": "meta.preprocessor",
477
+ "settings": {
478
+ "foreground": "#5E81AC"
479
+ }
480
+ }, {
481
+ "name": "Punctuation",
482
+ "scope": "punctuation",
483
+ "settings": {
484
+ "foreground": "#ECEFF4"
485
+ }
486
+ }, {
487
+ "name": "Punctuation Definition Parameters",
488
+ "scope": ["punctuation.definition.method-parameters", "punctuation.definition.function-parameters", "punctuation.definition.parameters"],
489
+ "settings": {
490
+ "foreground": "#ECEFF4"
491
+ }
492
+ }, {
493
+ "name": "Punctuation Definition Tag",
494
+ "scope": "punctuation.definition.tag",
495
+ "settings": {
496
+ "foreground": "#81A1C1"
497
+ }
498
+ }, {
499
+ "name": "Punctuation Definition Comment",
500
+ "scope": ["punctuation.definition.comment", "punctuation.end.definition.comment", "punctuation.start.definition.comment"],
501
+ "settings": {
502
+ "foreground": "#616E88"
503
+ }
504
+ }, {
505
+ "name": "Punctuation Section",
506
+ "scope": "punctuation.section",
507
+ "settings": {
508
+ "foreground": "#ECEFF4"
509
+ }
510
+ }, {
511
+ "name": "Punctuation Section Embedded",
512
+ "scope": ["punctuation.section.embedded.begin", "punctuation.section.embedded.end"],
513
+ "settings": {
514
+ "foreground": "#81A1C1"
515
+ }
516
+ }, {
517
+ "name": "Punctuation Terminator",
518
+ "scope": "punctuation.terminator",
519
+ "settings": {
520
+ "foreground": "#81A1C1"
521
+ }
522
+ }, {
523
+ "name": "Punctuation Variable",
524
+ "scope": "punctuation.definition.variable",
525
+ "settings": {
526
+ "foreground": "#81A1C1"
527
+ }
528
+ }, {
529
+ "name": "Storage",
530
+ "scope": "storage",
531
+ "settings": {
532
+ "foreground": "#81A1C1"
533
+ }
534
+ }, {
535
+ "name": "String",
536
+ "scope": "string",
537
+ "settings": {
538
+ "foreground": "#A3BE8C"
539
+ }
540
+ }, {
541
+ "name": "String Regexp",
542
+ "scope": "string.regexp",
543
+ "settings": {
544
+ "foreground": "#EBCB8B"
545
+ }
546
+ }, {
547
+ "name": "Support Class",
548
+ "scope": "support.class",
549
+ "settings": {
550
+ "foreground": "#8FBCBB"
551
+ }
552
+ }, {
553
+ "name": "Support Constant",
554
+ "scope": "support.constant",
555
+ "settings": {
556
+ "foreground": "#81A1C1"
557
+ }
558
+ }, {
559
+ "name": "Support Function",
560
+ "scope": "support.function",
561
+ "settings": {
562
+ "foreground": "#88C0D0"
563
+ }
564
+ }, {
565
+ "name": "Support Function Construct",
566
+ "scope": "support.function.construct",
567
+ "settings": {
568
+ "foreground": "#81A1C1"
569
+ }
570
+ }, {
571
+ "name": "Support Type",
572
+ "scope": "support.type",
573
+ "settings": {
574
+ "foreground": "#8FBCBB"
575
+ }
576
+ }, {
577
+ "name": "Support Type Exception",
578
+ "scope": "support.type.exception",
579
+ "settings": {
580
+ "foreground": "#8FBCBB"
581
+ }
582
+ }, {
583
+ "name": "Token Debug",
584
+ "scope": "token.debug-token",
585
+ "settings": {
586
+ "foreground": "#b48ead"
587
+ }
588
+ }, {
589
+ "name": "Token Error",
590
+ "scope": "token.error-token",
591
+ "settings": {
592
+ "foreground": "#bf616a"
593
+ }
594
+ }, {
595
+ "name": "Token Info",
596
+ "scope": "token.info-token",
597
+ "settings": {
598
+ "foreground": "#88c0d0"
599
+ }
600
+ }, {
601
+ "name": "Token Warning",
602
+ "scope": "token.warn-token",
603
+ "settings": {
604
+ "foreground": "#ebcb8b"
605
+ }
606
+ }, {
607
+ "name": "Variable",
608
+ "scope": "variable.other",
609
+ "settings": {
610
+ "foreground": "#D8DEE9"
611
+ }
612
+ }, {
613
+ "name": "Variable Language",
614
+ "scope": "variable.language",
615
+ "settings": {
616
+ "foreground": "#81A1C1"
617
+ }
618
+ }, {
619
+ "name": "Variable Parameter",
620
+ "scope": "variable.parameter",
621
+ "settings": {
622
+ "foreground": "#D8DEE9"
623
+ }
624
+ }, {
625
+ "name": "[C/CPP] Punctuation Separator Pointer-Access",
626
+ "scope": "punctuation.separator.pointer-access.c",
627
+ "settings": {
628
+ "foreground": "#81A1C1"
629
+ }
630
+ }, {
631
+ "name": "[C/CPP] Meta Preprocessor Include",
632
+ "scope": ["source.c meta.preprocessor.include", "source.c string.quoted.other.lt-gt.include"],
633
+ "settings": {
634
+ "foreground": "#8FBCBB"
635
+ }
636
+ }, {
637
+ "name": "[C/CPP] Conditional Directive",
638
+ "scope": ["source.cpp keyword.control.directive.conditional", "source.cpp punctuation.definition.directive", "source.c keyword.control.directive.conditional", "source.c punctuation.definition.directive"],
639
+ "settings": {
640
+ "foreground": "#5E81AC",
641
+ "fontStyle": "bold"
642
+ }
643
+ }, {
644
+ "name": "[CSS] Constant Other Color RGB Value",
645
+ "scope": "source.css constant.other.color.rgb-value",
646
+ "settings": {
647
+ "foreground": "#B48EAD"
648
+ }
649
+ }, {
650
+ "name": "[CSS](Function) Meta Property-Value",
651
+ "scope": "source.css meta.property-value",
652
+ "settings": {
653
+ "foreground": "#88C0D0"
654
+ }
655
+ }, {
656
+ "name": "[CSS] Media Queries",
657
+ "scope": ["source.css keyword.control.at-rule.media", "source.css keyword.control.at-rule.media punctuation.definition.keyword"],
658
+ "settings": {
659
+ "foreground": "#D08770"
660
+ }
661
+ }, {
662
+ "name": "[CSS] Punctuation Definition Keyword",
663
+ "scope": "source.css punctuation.definition.keyword",
664
+ "settings": {
665
+ "foreground": "#81A1C1"
666
+ }
667
+ }, {
668
+ "name": "[CSS] Support Type Property Name",
669
+ "scope": "source.css support.type.property-name",
670
+ "settings": {
671
+ "foreground": "#D8DEE9"
672
+ }
673
+ }, {
674
+ "name": "[diff] Meta Range Context",
675
+ "scope": "source.diff meta.diff.range.context",
676
+ "settings": {
677
+ "foreground": "#8FBCBB"
678
+ }
679
+ }, {
680
+ "name": "[diff] Meta Header From-File",
681
+ "scope": "source.diff meta.diff.header.from-file",
682
+ "settings": {
683
+ "foreground": "#8FBCBB"
684
+ }
685
+ }, {
686
+ "name": "[diff] Punctuation Definition From-File",
687
+ "scope": "source.diff punctuation.definition.from-file",
688
+ "settings": {
689
+ "foreground": "#8FBCBB"
690
+ }
691
+ }, {
692
+ "name": "[diff] Punctuation Definition Range",
693
+ "scope": "source.diff punctuation.definition.range",
694
+ "settings": {
695
+ "foreground": "#8FBCBB"
696
+ }
697
+ }, {
698
+ "name": "[diff] Punctuation Definition Separator",
699
+ "scope": "source.diff punctuation.definition.separator",
700
+ "settings": {
701
+ "foreground": "#81A1C1"
702
+ }
703
+ }, {
704
+ "name": "[Elixir](JakeBecker.elixir-ls) module names",
705
+ "scope": "entity.name.type.module.elixir",
706
+ "settings": {
707
+ "foreground": "#8FBCBB"
708
+ }
709
+ }, {
710
+ "name": "[Elixir](JakeBecker.elixir-ls) module attributes",
711
+ "scope": "variable.other.readwrite.module.elixir",
712
+ "settings": {
713
+ "foreground": "#D8DEE9",
714
+ "fontStyle": "bold"
715
+ }
716
+ }, {
717
+ "name": "[Elixir](JakeBecker.elixir-ls) atoms",
718
+ "scope": "constant.other.symbol.elixir",
719
+ "settings": {
720
+ "foreground": "#D8DEE9",
721
+ "fontStyle": "bold"
722
+ }
723
+ }, {
724
+ "name": "[Elixir](JakeBecker.elixir-ls) modules",
725
+ "scope": "variable.other.constant.elixir",
726
+ "settings": {
727
+ "foreground": "#8FBCBB"
728
+ }
729
+ }, {
730
+ "name": "[Go] String Format Placeholder",
731
+ "scope": "source.go constant.other.placeholder.go",
732
+ "settings": {
733
+ "foreground": "#EBCB8B"
734
+ }
735
+ }, {
736
+ "name": "[Java](JavaDoc) Comment Block Documentation HTML Entities",
737
+ "scope": "source.java comment.block.documentation.javadoc punctuation.definition.entity.html",
738
+ "settings": {
739
+ "foreground": "#81A1C1"
740
+ }
741
+ }, {
742
+ "name": "[Java](JavaDoc) Constant Other",
743
+ "scope": "source.java constant.other",
744
+ "settings": {
745
+ "foreground": "#D8DEE9"
746
+ }
747
+ }, {
748
+ "name": "[Java](JavaDoc) Keyword Other Documentation",
749
+ "scope": "source.java keyword.other.documentation",
750
+ "settings": {
751
+ "foreground": "#8FBCBB"
752
+ }
753
+ }, {
754
+ "name": "[Java](JavaDoc) Keyword Other Documentation Author",
755
+ "scope": "source.java keyword.other.documentation.author.javadoc",
756
+ "settings": {
757
+ "foreground": "#8FBCBB"
758
+ }
759
+ }, {
760
+ "name": "[Java](JavaDoc) Keyword Other Documentation Directive/Custom",
761
+ "scope": ["source.java keyword.other.documentation.directive", "source.java keyword.other.documentation.custom"],
762
+ "settings": {
763
+ "foreground": "#8FBCBB"
764
+ }
765
+ }, {
766
+ "name": "[Java](JavaDoc) Keyword Other Documentation See",
767
+ "scope": "source.java keyword.other.documentation.see.javadoc",
768
+ "settings": {
769
+ "foreground": "#8FBCBB"
770
+ }
771
+ }, {
772
+ "name": "[Java] Meta Method-Call",
773
+ "scope": "source.java meta.method-call meta.method",
774
+ "settings": {
775
+ "foreground": "#88C0D0"
776
+ }
777
+ }, {
778
+ "name": "[Java](JavaDoc) Meta Tag Template Link",
779
+ "scope": ["source.java meta.tag.template.link.javadoc", "source.java string.other.link.title.javadoc"],
780
+ "settings": {
781
+ "foreground": "#8FBCBB"
782
+ }
783
+ }, {
784
+ "name": "[Java](JavaDoc) Meta Tag Template Value",
785
+ "scope": "source.java meta.tag.template.value.javadoc",
786
+ "settings": {
787
+ "foreground": "#88C0D0"
788
+ }
789
+ }, {
790
+ "name": "[Java](JavaDoc) Punctuation Definition Keyword",
791
+ "scope": "source.java punctuation.definition.keyword.javadoc",
792
+ "settings": {
793
+ "foreground": "#8FBCBB"
794
+ }
795
+ }, {
796
+ "name": "[Java](JavaDoc) Punctuation Definition Tag",
797
+ "scope": ["source.java punctuation.definition.tag.begin.javadoc", "source.java punctuation.definition.tag.end.javadoc"],
798
+ "settings": {
799
+ "foreground": "#616E88"
800
+ }
801
+ }, {
802
+ "name": "[Java] Storage Modifier Import",
803
+ "scope": "source.java storage.modifier.import",
804
+ "settings": {
805
+ "foreground": "#8FBCBB"
806
+ }
807
+ }, {
808
+ "name": "[Java] Storage Modifier Package",
809
+ "scope": "source.java storage.modifier.package",
810
+ "settings": {
811
+ "foreground": "#8FBCBB"
812
+ }
813
+ }, {
814
+ "name": "[Java] Storage Type",
815
+ "scope": "source.java storage.type",
816
+ "settings": {
817
+ "foreground": "#8FBCBB"
818
+ }
819
+ }, {
820
+ "name": "[Java] Storage Type Annotation",
821
+ "scope": "source.java storage.type.annotation",
822
+ "settings": {
823
+ "foreground": "#D08770"
824
+ }
825
+ }, {
826
+ "name": "[Java] Storage Type Generic",
827
+ "scope": "source.java storage.type.generic",
828
+ "settings": {
829
+ "foreground": "#8FBCBB"
830
+ }
831
+ }, {
832
+ "name": "[Java] Storage Type Primitive",
833
+ "scope": "source.java storage.type.primitive",
834
+ "settings": {
835
+ "foreground": "#81A1C1"
836
+ }
837
+ }, {
838
+ "name": "[JavaScript] Decorator",
839
+ "scope": ["source.js punctuation.decorator", "source.js meta.decorator variable.other.readwrite", "source.js meta.decorator entity.name.function"],
840
+ "settings": {
841
+ "foreground": "#D08770"
842
+ }
843
+ }, {
844
+ "name": "[JavaScript] Meta Object-Literal Key",
845
+ "scope": "source.js meta.object-literal.key",
846
+ "settings": {
847
+ "foreground": "#88C0D0"
848
+ }
849
+ }, {
850
+ "name": "[JavaScript](JSDoc) Storage Type Class",
851
+ "scope": "source.js storage.type.class.jsdoc",
852
+ "settings": {
853
+ "foreground": "#8FBCBB"
854
+ }
855
+ }, {
856
+ "name": "[JavaScript] String Template Literals Punctuation",
857
+ "scope": ["source.js string.quoted.template punctuation.quasi.element.begin", "source.js string.quoted.template punctuation.quasi.element.end", "source.js string.template punctuation.definition.template-expression"],
858
+ "settings": {
859
+ "foreground": "#81A1C1"
860
+ }
861
+ }, {
862
+ "name": "[JavaScript] Interpolated String Template Punctuation Functions",
863
+ "scope": "source.js string.quoted.template meta.method-call.with-arguments",
864
+ "settings": {
865
+ "foreground": "#ECEFF4"
866
+ }
867
+ }, {
868
+ "name": "[JavaScript] String Template Literal Variable",
869
+ "scope": ["source.js string.template meta.template.expression support.variable.property", "source.js string.template meta.template.expression variable.other.object"],
870
+ "settings": {
871
+ "foreground": "#D8DEE9"
872
+ }
873
+ }, {
874
+ "name": "[JavaScript] Support Type Primitive",
875
+ "scope": "source.js support.type.primitive",
876
+ "settings": {
877
+ "foreground": "#81A1C1"
878
+ }
879
+ }, {
880
+ "name": "[JavaScript] Variable Other Object",
881
+ "scope": "source.js variable.other.object",
882
+ "settings": {
883
+ "foreground": "#D8DEE9"
884
+ }
885
+ }, {
886
+ "name": "[JavaScript] Variable Other Read-Write Alias",
887
+ "scope": "source.js variable.other.readwrite.alias",
888
+ "settings": {
889
+ "foreground": "#8FBCBB"
890
+ }
891
+ }, {
892
+ "name": "[JavaScript] Parentheses in Template Strings",
893
+ "scope": ["source.js meta.embedded.line meta.brace.square", "source.js meta.embedded.line meta.brace.round", "source.js string.quoted.template meta.brace.square", "source.js string.quoted.template meta.brace.round"],
894
+ "settings": {
895
+ "foreground": "#ECEFF4"
896
+ }
897
+ }, {
898
+ "name": "[HTML] Constant Character Entity",
899
+ "scope": "text.html.basic constant.character.entity.html",
900
+ "settings": {
901
+ "foreground": "#EBCB8B"
902
+ }
903
+ }, {
904
+ "name": "[HTML] Constant Other Inline-Data",
905
+ "scope": "text.html.basic constant.other.inline-data",
906
+ "settings": {
907
+ "foreground": "#D08770",
908
+ "fontStyle": "italic"
909
+ }
910
+ }, {
911
+ "name": "[HTML] Meta Tag SGML Doctype",
912
+ "scope": "text.html.basic meta.tag.sgml.doctype",
913
+ "settings": {
914
+ "foreground": "#5E81AC"
915
+ }
916
+ }, {
917
+ "name": "[HTML] Punctuation Definition Entity",
918
+ "scope": "text.html.basic punctuation.definition.entity",
919
+ "settings": {
920
+ "foreground": "#81A1C1"
921
+ }
922
+ }, {
923
+ "name": "[INI] Entity Name Section Group-Title",
924
+ "scope": "source.properties entity.name.section.group-title.ini",
925
+ "settings": {
926
+ "foreground": "#88C0D0"
927
+ }
928
+ }, {
929
+ "name": "[INI] Punctuation Separator Key-Value",
930
+ "scope": "source.properties punctuation.separator.key-value.ini",
931
+ "settings": {
932
+ "foreground": "#81A1C1"
933
+ }
934
+ }, {
935
+ "name": "[Markdown] Markup Fenced Code Block",
936
+ "scope": ["text.html.markdown markup.fenced_code.block", "text.html.markdown markup.fenced_code.block punctuation.definition"],
937
+ "settings": {
938
+ "foreground": "#8FBCBB"
939
+ }
940
+ }, {
941
+ "name": "[Markdown] Markup Heading",
942
+ "scope": "markup.heading",
943
+ "settings": {
944
+ "foreground": "#88C0D0"
945
+ }
946
+ }, {
947
+ "name": "[Markdown] Markup Inline",
948
+ "scope": ["text.html.markdown markup.inline.raw", "text.html.markdown markup.inline.raw punctuation.definition.raw"],
949
+ "settings": {
950
+ "foreground": "#8FBCBB"
951
+ }
952
+ }, {
953
+ "name": "[Markdown] Markup Italic",
954
+ "scope": "text.html.markdown markup.italic",
955
+ "settings": {
956
+ "fontStyle": "italic"
957
+ }
958
+ }, {
959
+ "name": "[Markdown] Markup Link",
960
+ "scope": "text.html.markdown markup.underline.link",
961
+ "settings": {
962
+ "fontStyle": "underline"
963
+ }
964
+ }, {
965
+ "name": "[Markdown] Markup List Numbered/Unnumbered",
966
+ "scope": "text.html.markdown beginning.punctuation.definition.list",
967
+ "settings": {
968
+ "foreground": "#81A1C1"
969
+ }
970
+ }, {
971
+ "name": "[Markdown] Markup Quote Punctuation Definition",
972
+ "scope": "text.html.markdown beginning.punctuation.definition.quote",
973
+ "settings": {
974
+ "foreground": "#8FBCBB"
975
+ }
976
+ }, {
977
+ "name": "[Markdown] Markup Quote Punctuation Definition",
978
+ "scope": "text.html.markdown markup.quote",
979
+ "settings": {
980
+ "foreground": "#616E88"
981
+ }
982
+ }, {
983
+ "name": "[Markdown] Markup Math Constant",
984
+ "scope": "text.html.markdown constant.character.math.tex",
985
+ "settings": {
986
+ "foreground": "#81A1C1"
987
+ }
988
+ }, {
989
+ "name": "[Markdown] Markup Math Definition Marker",
990
+ "scope": ["text.html.markdown punctuation.definition.math.begin", "text.html.markdown punctuation.definition.math.end"],
991
+ "settings": {
992
+ "foreground": "#5E81AC"
993
+ }
994
+ }, {
995
+ "name": "[Markdown] Markup Math Function Definition Marker",
996
+ "scope": "text.html.markdown punctuation.definition.function.math.tex",
997
+ "settings": {
998
+ "foreground": "#88C0D0"
999
+ }
1000
+ }, {
1001
+ "name": "[Markdown] Markup Math Operator",
1002
+ "scope": "text.html.markdown punctuation.math.operator.latex",
1003
+ "settings": {
1004
+ "foreground": "#81A1C1"
1005
+ }
1006
+ }, {
1007
+ "name": "[Markdown] Punctuation Definition Heading",
1008
+ "scope": "text.html.markdown punctuation.definition.heading",
1009
+ "settings": {
1010
+ "foreground": "#81A1C1"
1011
+ }
1012
+ }, {
1013
+ "name": "[Markdown] Punctuation Definition Constant/String",
1014
+ "scope": ["text.html.markdown punctuation.definition.constant", "text.html.markdown punctuation.definition.string"],
1015
+ "settings": {
1016
+ "foreground": "#81A1C1"
1017
+ }
1018
+ }, {
1019
+ "name": "[Markdown] String Other Link Description/Title",
1020
+ "scope": ["text.html.markdown constant.other.reference.link", "text.html.markdown string.other.link.description", "text.html.markdown string.other.link.title"],
1021
+ "settings": {
1022
+ "foreground": "#88C0D0"
1023
+ }
1024
+ }, {
1025
+ "name": "[Perl] Perl Sigils",
1026
+ "scope": "source.perl punctuation.definition.variable",
1027
+ "settings": {
1028
+ "foreground": "#D8DEE9"
1029
+ }
1030
+ }, {
1031
+ "name": "[PHP] Meta Function-Call Object",
1032
+ "scope": ["source.php meta.function-call", "source.php meta.function-call.object"],
1033
+ "settings": {
1034
+ "foreground": "#88C0D0"
1035
+ }
1036
+ }, {
1037
+ "name": "[Python] Decorator",
1038
+ "scope": ["source.python entity.name.function.decorator", "source.python meta.function.decorator support.type"],
1039
+ "settings": {
1040
+ "foreground": "#D08770"
1041
+ }
1042
+ }, {
1043
+ "name": "[Python] Function Call",
1044
+ "scope": "source.python meta.function-call.generic",
1045
+ "settings": {
1046
+ "foreground": "#88C0D0"
1047
+ }
1048
+ }, {
1049
+ "name": "[Python] Support Type",
1050
+ "scope": "source.python support.type",
1051
+ "settings": {
1052
+ "foreground": "#88C0D0"
1053
+ }
1054
+ }, {
1055
+ "name": "[Python] Function Parameter",
1056
+ "scope": ["source.python variable.parameter.function.language"],
1057
+ "settings": {
1058
+ "foreground": "#D8DEE9"
1059
+ }
1060
+ }, {
1061
+ "name": "[Python] Function Parameter Special",
1062
+ "scope": ["source.python meta.function.parameters variable.parameter.function.language.special.self"],
1063
+ "settings": {
1064
+ "foreground": "#81A1C1"
1065
+ }
1066
+ }, {
1067
+ "name": "[Rust] Entity types",
1068
+ "scope": "source.rust entity.name.type",
1069
+ "settings": {
1070
+ "foreground": "#8FBCBB"
1071
+ }
1072
+ }, {
1073
+ "name": "[Rust] Macro",
1074
+ "scope": "source.rust meta.macro entity.name.function",
1075
+ "settings": {
1076
+ "fontStyle": "bold",
1077
+ "foreground": "#88C0D0"
1078
+ }
1079
+ }, {
1080
+ "name": "[Rust] Attributes",
1081
+ "scope": ["source.rust meta.attribute", "source.rust meta.attribute punctuation", "source.rust meta.attribute keyword.operator"],
1082
+ "settings": {
1083
+ "foreground": "#5E81AC"
1084
+ }
1085
+ }, {
1086
+ "name": "[Rust] Traits",
1087
+ "scope": "source.rust entity.name.type.trait",
1088
+ "settings": {
1089
+ "fontStyle": "bold"
1090
+ }
1091
+ }, {
1092
+ "name": "[Rust] Interpolation Bracket Curly",
1093
+ "scope": "source.rust punctuation.definition.interpolation",
1094
+ "settings": {
1095
+ "foreground": "#EBCB8B"
1096
+ }
1097
+ }, {
1098
+ "name": "[SCSS] Punctuation Definition Interpolation Bracket Curly",
1099
+ "scope": ["source.css.scss punctuation.definition.interpolation.begin.bracket.curly", "source.css.scss punctuation.definition.interpolation.end.bracket.curly"],
1100
+ "settings": {
1101
+ "foreground": "#81A1C1"
1102
+ }
1103
+ }, {
1104
+ "name": "[SCSS] Variable Interpolation",
1105
+ "scope": "source.css.scss variable.interpolation",
1106
+ "settings": {
1107
+ "foreground": "#D8DEE9",
1108
+ "fontStyle": "italic"
1109
+ }
1110
+ }, {
1111
+ "name": "[TypeScript] Decorators",
1112
+ "scope": ["source.ts punctuation.decorator", "source.ts meta.decorator variable.other.readwrite", "source.ts meta.decorator entity.name.function", "source.tsx punctuation.decorator", "source.tsx meta.decorator variable.other.readwrite", "source.tsx meta.decorator entity.name.function"],
1113
+ "settings": {
1114
+ "foreground": "#D08770"
1115
+ }
1116
+ }, {
1117
+ "name": "[TypeScript] Object-literal keys",
1118
+ "scope": ["source.ts meta.object-literal.key", "source.tsx meta.object-literal.key"],
1119
+ "settings": {
1120
+ "foreground": "#D8DEE9"
1121
+ }
1122
+ }, {
1123
+ "name": "[TypeScript] Object-literal functions",
1124
+ "scope": ["source.ts meta.object-literal.key entity.name.function", "source.tsx meta.object-literal.key entity.name.function"],
1125
+ "settings": {
1126
+ "foreground": "#88C0D0"
1127
+ }
1128
+ }, {
1129
+ "name": "[TypeScript] Type/Class",
1130
+ "scope": ["source.ts support.class", "source.ts support.type", "source.ts entity.name.type", "source.ts entity.name.class", "source.tsx support.class", "source.tsx support.type", "source.tsx entity.name.type", "source.tsx entity.name.class"],
1131
+ "settings": {
1132
+ "foreground": "#8FBCBB"
1133
+ }
1134
+ }, {
1135
+ "name": "[TypeScript] Static Class Support",
1136
+ "scope": ["source.ts support.constant.math", "source.ts support.constant.dom", "source.ts support.constant.json", "source.tsx support.constant.math", "source.tsx support.constant.dom", "source.tsx support.constant.json"],
1137
+ "settings": {
1138
+ "foreground": "#8FBCBB"
1139
+ }
1140
+ }, {
1141
+ "name": "[TypeScript] Variables",
1142
+ "scope": ["source.ts support.variable", "source.tsx support.variable"],
1143
+ "settings": {
1144
+ "foreground": "#D8DEE9"
1145
+ }
1146
+ }, {
1147
+ "name": "[TypeScript] Parentheses in Template Strings",
1148
+ "scope": ["source.ts meta.embedded.line meta.brace.square", "source.ts meta.embedded.line meta.brace.round", "source.tsx meta.embedded.line meta.brace.square", "source.tsx meta.embedded.line meta.brace.round"],
1149
+ "settings": {
1150
+ "foreground": "#ECEFF4"
1151
+ }
1152
+ }, {
1153
+ "name": "[XML] Entity Name Tag Namespace",
1154
+ "scope": "text.xml entity.name.tag.namespace",
1155
+ "settings": {
1156
+ "foreground": "#8FBCBB"
1157
+ }
1158
+ }, {
1159
+ "name": "[XML] Keyword Other Doctype",
1160
+ "scope": "text.xml keyword.other.doctype",
1161
+ "settings": {
1162
+ "foreground": "#5E81AC"
1163
+ }
1164
+ }, {
1165
+ "name": "[XML] Meta Tag Preprocessor",
1166
+ "scope": "text.xml meta.tag.preprocessor entity.name.tag",
1167
+ "settings": {
1168
+ "foreground": "#5E81AC"
1169
+ }
1170
+ }, {
1171
+ "name": "[XML] Entity Name Tag Namespace",
1172
+ "scope": ["text.xml string.unquoted.cdata", "text.xml string.unquoted.cdata punctuation.definition.string"],
1173
+ "settings": {
1174
+ "foreground": "#D08770",
1175
+ "fontStyle": "italic"
1176
+ }
1177
+ }, {
1178
+ "name": "[YAML] Entity Name Tag",
1179
+ "scope": "source.yaml entity.name.tag",
1180
+ "settings": {
1181
+ "foreground": "#8FBCBB"
1182
+ }
1183
+ }]
1184
+ },
1185
+ "autoImport": true,
1186
+ "showCopyButton": true,
1187
+ "skipLanguages": [],
1188
+ "filepath": "/Users/bytedance/modern.js/website/module-tools/docs/zh/guide/basic/before-getting-started.md"
1189
+ };
1190
+ var frontmatter = {
1191
+ "sidebar_position": 1
1192
+ };
1193
+ var toc = [{
1194
+ "id": "环境准备",
1195
+ "text": "环境准备",
1196
+ "depth": 2
1197
+ }, {
1198
+ "id": "初识-npm",
1199
+ "text": "初识 npm",
1200
+ "depth": 2
1201
+ }, {
1202
+ "id": "npm-包类型项目",
1203
+ "text": "npm 包类型项目",
1204
+ "depth": 2
1205
+ }, {
1206
+ "id": "使用第三方-npm-包",
1207
+ "text": "使用第三方 npm 包",
1208
+ "depth": 2
1209
+ }, {
1210
+ "id": "还需要了解的-npm-零碎知识",
1211
+ "text": "还需要了解的 npm 零碎知识",
1212
+ "depth": 2
1213
+ }, {
1214
+ "id": "npm-包的程序入口",
1215
+ "text": "npm 包的程序入口",
1216
+ "depth": 3
1217
+ }, {
1218
+ "id": "scripts",
1219
+ "text": "\"scripts\"",
1220
+ "depth": 3
1221
+ }, {
1222
+ "id": "npm-install",
1223
+ "text": "npm install",
1224
+ "depth": 4
1225
+ }, {
1226
+ "id": "npm-publish",
1227
+ "text": "npm publish",
1228
+ "depth": 4
1229
+ }, {
1230
+ "id": "peerdependencies",
1231
+ "text": "peerDependencies",
1232
+ "depth": 3
1233
+ }, {
1234
+ "id": "npm-包管理器",
1235
+ "text": "npm 包管理器",
1236
+ "depth": 2
1237
+ }, {
1238
+ "id": "module-tools-配置文件",
1239
+ "text": "Module Tools 配置文件",
1240
+ "depth": 2
1241
+ }];
1242
+ var title = "\u5F00\u59CB\u4E4B\u524D";
1243
+ var content = "\"---\\nsidebar_position: 1\\n---\\n\\n# 开始之前\\n\\n## 环境准备\\n\\n为了使用 Modern.js 模块工程解决方案,首先需要 [NodeJS](https://nodejs.org/zh/),我们推荐最新的[长期维护版本](https://github.com/nodejs/Release),并确保 Node 版本大于等于 **14.17.6**。因为非稳定的 NodeJS 时常有一些 Bug,你可以使用 [nvm-windows](https://github.com/coreybutler/nvm-windows) 和 [nvm](https://github.com/nvm-sh/nvm)(Mac/linux)安装,这样你就可以方便地切换到不同的 NodeJS 版本,这些版本可能会用于不同的项目。\\n\\n## 初识 npm\\n\\n当 NodeJS 被安装后,你不仅可以在命令行中访问 `node` 可执行程序,同时你也可以执行 `npm` 命令。\\n\\nnpm 是 NodeJS 的标准软件包管理器。它一开始的用途是用于下载和管理 NodeJS 包的依赖关系,但后来它逐渐变成为一个用于前端 JavaScript 的工具。\\n\\n**如果你已经对 npm 和 npm 包的使用方式有所了解,那么可以直接跳到[【npm 包管理器】](/guide/basic/before-getting-started#npm-包管理器)部分。**\\n\\n## npm 包类型项目\\n\\n那么什么是 npm 包类型的项目呢?当我们在一个空的项目目录下执行 `npm init` 命令的时候,它会在当前目录下面创建一个文件名为 `package.json` 的 JSON 文件。在创建过程中,我们需要填写包括但不限于 npm 包的名称、版本号、描述等等内容,这些填写的内容都会在生成的 `package.json` 文件中找到:\\n\\n```json\\n{\\n \\\"name\\\": \\\"npm-demo\\\",\\n \\\"version\\\": \\\"1.0.0\\\",\\n \\\"description\\\": \\\"\\\",\\n \\\"main\\\": \\\"index.js\\\",\\n \\\"scripts\\\": {\\n \\\"test\\\": \\\"echo \\\\\\\"Error: no test specified\\\\\\\" && exit 1\\\"\\n },\\n \\\"author\\\": \\\"\\\",\\n \\\"license\\\": \\\"ISC\\\"\\n}\\n```\\n\\n此时这个包含了初始化后的 `package.json` 文件的项目就是一个 npm 包类型的项目,你可以执行 `npm publish` 命令将这个项目发布到 [npm Registry](https://www.npmjs.com/)。\\n\\nnpm Registry 是一个 [npm 包存储的地方](https://docs.npmjs.com/about-the-public-npm-registry),开发者们不仅可以将他们自己的 npm 包发布到 npm Registry,还可以通过 npm Registry 使用其他开发者发布的 npm 包。\\n\\n优质的 npm 包会有更多的人去使用,因为它不仅节省了很多代码实现的工作,同时也不容易让项目出现问题。\\n\\n## 使用第三方 npm 包\\n\\n当要为初始化的项目增加第三方的 npm 包的时候,我们可以把这一过程叫做“为项目安装依赖”或是“为项目增加依赖”。在增加依赖之前,首先我们要特别了解一件事情 —— **npm 依赖的软件包类型**:\\n\\n- `\\\"dependencies\\\"`:一种是你的应用程序在生产环境中需要的软件包。\\n- `\\\"devDependencies\\\"`:另一种是仅在本地开发和测试中需要的软件包。\\n > 软件包可以理解为是第三方的 npm 包。\\n\\n你可以通过执行 `npm install npm-package-name` 或者 `npm add npm-package-name` 的方式来安装在**生产环境中需要的软件包**,或者也可以在 `package.json` 文件中手动的将需要安装的包和对应的[语义化版本](https://docs.npmjs.com/about-semantic-versioning)写在 `\\\"dependencies\\\"` 里,并执行 `npm install` 命令:\\n\\n```json\\n{\\n \\\"name\\\": \\\"your-npm-project\\\",\\n \\\"dependencies\\\": {\\n \\\"npm-package-name\\\": \\\"0.1.0\\\"\\n }\\n}\\n```\\n\\n同理,你也可以执行 `npm install npm-package-name --save-dev` 或 `npm add npm-package-name --save-dev` 的方式来安装**仅在本地开发和测试中需要的软件包**,或者也可以在 `package.json` 文件中手动的将需要安装的包和对应的[语义化版本](https://docs.npmjs.com/about-semantic-versioning)写在 `\\\"devDependencies\\\"` 里,并执行 `npm install` 命令:\\n\\n```json\\n{\\n \\\"name\\\": \\\"your-npm-project\\\",\\n \\\"devDependencies\\\": {\\n \\\"npm-package-name\\\": \\\"0.1.0\\\"\\n }\\n}\\n```\\n\\n**在安装或者使用第三方 npm 包的时候一定要确定它们的用途,以及通过区分它们的类型确定好它们应该放在 `\\\"dependencies\\\"` 还是 `\\\"devDependencies\\\"` 中。**\\n:::tip\\n一般来说,需要在源代码中使用到的包都属于 `dependencies` 依赖。除非你通过打包的方式将依赖的代码输出到本地,那么这种情况可以将它作为 `devDependencies` 依赖。\\n:::\\n\\n## 还需要了解的 npm 零碎知识\\n\\n### npm 包的程序入口\\n\\n在 `package.json` 中存在一个 `\\\"main\\\"` 属性,它对应的值是一个模块 ID,或者更直观的说是一个 NodeJS 文件路径,它是你程序的主要入口。\\n\\n例如你的包名为 `foo`,并且用户安装了它,然后执行 `require(\\\"foo\\\")` 代码,那么 `foo` 这个 npm 包的 `\\\"main\\\"` 字段对应的文件将会被导出。\\n\\n**推荐在你的 npm 包里一定要设置 `\\\"main\\\"` 字段**。如果没有设置 `\\\"main\\\"`,则默认入口为包的根目录下的 `index.js` 文件。\\n\\n除了需要设置 `\\\"main\\\"` 属性以外,一般还会设置 `\\\"module\\\"` 属性。它与 `\\\"main\\\"` 属性的用途类似,它主要是用于在 webpack 场景下使用。webpack 在大多数情况下,会以 **\\\"module\\\" -> \\\"main\\\"** 这个顺序读取 npm 包的入口(文件)。\\n\\n> 想要了解关于 webpack 如何做这件事,可以查看这个[链接](https://webpack.js.org/configuration/resolve/#resolvemainfields)。\\n\\n### `\\\"scripts\\\"`\\n\\n`package.json` 文件的 `\\\"scripts\\\"` 属性支持一些内置的脚本和 npm 预设的生命周期事件,以及任意的脚本。\\n\\n这些都可以通过运行 `npm run-script <stage>` 或简称 `npm run <stage>` 来执行。\\n\\n名称匹配的[前置命令和后置命令](https://docs.npmjs.com/cli/v9/using-npm/scripts#pre--post-scripts)也会被运行(例如 `premyscript`、`myscript`、`postmyscript`)。\\n\\n```json\\n{\\n \\\"scripts\\\": {\\n \\\"premyscript\\\": \\\"\\\",\\n \\\"myscript\\\": \\\"\\\",\\n \\\"postmyscript\\\": \\\"\\\"\\n }\\n}\\n```\\n\\n当执行 `npm run myscripts` 的时候,`premyscripts` 对应的脚本会在它之前执行,`postmyscripts` 对应的脚本会在它之后执行。\\n\\n来自依赖的脚本命令可以用 `npm explore <pkg> -- npm run <stage>` 运行。\\n\\n还有一些特殊的生命周期脚本(Life Scripts),只在某些情况下发生。这里介绍几个通常需要了解的情况。\\n\\n#### `npm install`\\n\\n当你运行 `npm install -g <pkg-name>` 时,以下脚本会运行。\\n\\n- `preinstall`\\n- `install`\\n- `postinstall`\\n- `prepublish`\\n- `preprepare`\\n- `prepare`\\n- `postprepare`\\n\\n如果你的软件包根目录有一个 `binding.gyp` 文件,而你没有定义 `install` 或 `preinstall` 脚本,那么 npm 将以 `node-gyp rebuild` 作为默认的 install 命令,使用 [node-gyp](https://github.com/nodejs/node-gyp) 进行编译。\\n\\n#### `npm publish`\\n\\n当发布项目的时候,执行该命令会触发以下脚本:\\n\\n- `prepublishOnly`\\n- `prepack`\\n- `prepare`\\n- `postpack`\\n- `publish`\\n- `postpublish`\\n\\n当以 [`--dry-run`](https://docs.npmjs.com/cli/v7/commands/npm-publish#dry-run) 模式运行的时候,`prepare` 对应的脚本将不会执行。\\n\\n### peerDependencies\\n\\n在某些情况下,你的 npm 项目与它的宿主工具或者库之间存在某种兼容关系(例如一个 webpack 插件项目和 webpack),同时你的 npm 项目不想将宿主作为必要的依赖,这个时候通常说明你的项目可能是这个宿主工具或者库的插件。你的 npm 项目会对宿主包的版本有一定的要求,因为只有在特定的版本下才会暴露出 npm 项目所需要的 API。\\n\\n关于更多 `peerDependencies` 的解释,可以通过下面的链接了解 npm、pnpm、Yarn 对于它的不同处理方式:\\n\\n- [npm 对 peerDependencies 的解释](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#peerdependencies)\\n- [pnpm vs npm VS Yarn](https://pnpm.io/feature-comparison)\\n\\n## npm 包管理器\\n\\n除了 npm 这种标准的包管理器以外,目前主流的还有 **pnpm** 和 **Yarn**,它们都是不错的 npm cli 替代品。\\n\\n推荐使用 [pnpm](https://pnpm.io/installation) 来管理项目依赖,可以通过下面的方式安装它:\\n\\n```bash\\nnpm install -g pnpm\\n```\\n\\n## Module Tools 配置文件\\n\\n初始化的模块工程项目目录下提供了 Module Tools 的配置文件 —— `modern.config.(j|t)s`。默认情况下,不需要做任何配置,因此 `modern.config` 配置文件不是必须存在的。\\n\\n初始化的配置文件的内容如下:\\n\\n```typescript\\n// modern.config.ts\\nimport { defineConfig } from '@modern-js/module-tools';\\n\\nexport default defineConfig({});\\n```\\n\\n```js\\n// modern.config.js\\nconst { defineConfig } = require('@modern-js/module-tools');\\n\\nmodule.exports = defineConfig({});\\n```\\n\\n**我们推荐使用 `defineConfig` 函数**,不过并不强制使用它。因此你也可以在配置文件中直接返回一个对象:\\n\\n```typescript\\n// modern.config.ts\\nexport default {};\\n```\\n\\n```js\\n// modern.config.js\\nmodule.exports = {};\\n```\\n\"";
1244
+ function _createMdxContent(props) {
1245
+ var _components = Object.assign({
1246
+ h1: "h1",
1247
+ a: "a",
1248
+ h2: "h2",
1249
+ p: "p",
1250
+ strong: "strong",
1251
+ code: "code",
1252
+ ul: "ul",
1253
+ li: "li",
1254
+ blockquote: "blockquote",
1255
+ div: "div",
1256
+ h3: "h3",
1257
+ h4: "h4"
1258
+ }, props.components);
1259
+ if (!CH) _missingMdxReference("CH", false, "23:1-35:4");
1260
+ if (!CH.Code) _missingMdxReference("CH.Code", true, "23:1-35:4");
1261
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
1262
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.h1, {
1263
+ id: "开始之前",
1264
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
1265
+ className: "header-anchor",
1266
+ "aria-hidden": "true",
1267
+ href: "#开始之前",
1268
+ children: "#"
1269
+ }), "开始之前"]
1270
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.h2, {
1271
+ id: "环境准备",
1272
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
1273
+ className: "header-anchor",
1274
+ "aria-hidden": "true",
1275
+ href: "#环境准备",
1276
+ children: "#"
1277
+ }), "环境准备"]
1278
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
1279
+ children: ["为了使用 Modern.js 模块工程解决方案,首先需要 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
1280
+ href: "https://nodejs.org/zh/",
1281
+ children: "NodeJS"
1282
+ }), ",我们推荐最新的", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
1283
+ href: "https://github.com/nodejs/Release",
1284
+ children: "长期维护版本"
1285
+ }), ",并确保 Node 版本大于等于 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, {
1286
+ children: "14.17.6"
1287
+ }), "。因为非稳定的 NodeJS 时常有一些 Bug,你可以使用 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
1288
+ href: "https://github.com/coreybutler/nvm-windows",
1289
+ children: "nvm-windows"
1290
+ }), " 和 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
1291
+ href: "https://github.com/nvm-sh/nvm",
1292
+ children: "nvm"
1293
+ }), "(Mac/linux)安装,这样你就可以方便地切换到不同的 NodeJS 版本,这些版本可能会用于不同的项目。"]
1294
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.h2, {
1295
+ id: "初识-npm",
1296
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
1297
+ className: "header-anchor",
1298
+ "aria-hidden": "true",
1299
+ href: "#初识-npm",
1300
+ children: "#"
1301
+ }), "初识 npm"]
1302
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
1303
+ children: ["当 NodeJS 被安装后,你不仅可以在命令行中访问 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
1304
+ children: "node"
1305
+ }), " 可执行程序,同时你也可以执行 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
1306
+ children: "npm"
1307
+ }), " 命令。"]
1308
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, {
1309
+ children: "npm 是 NodeJS 的标准软件包管理器。它一开始的用途是用于下载和管理 NodeJS 包的依赖关系,但后来它逐渐变成为一个用于前端 JavaScript 的工具。"
1310
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, {
1311
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.strong, {
1312
+ children: ["如果你已经对 npm 和 npm 包的使用方式有所了解,那么可以直接跳到", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
1313
+ href: "/guide/basic/before-getting-started#npm-%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8.html",
1314
+ children: "【npm 包管理器】"
1315
+ }), "部分。"]
1316
+ })
1317
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.h2, {
1318
+ id: "npm-包类型项目",
1319
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
1320
+ className: "header-anchor",
1321
+ "aria-hidden": "true",
1322
+ href: "#npm-包类型项目",
1323
+ children: "#"
1324
+ }), "npm 包类型项目"]
1325
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
1326
+ children: ["那么什么是 npm 包类型的项目呢?当我们在一个空的项目目录下执行 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
1327
+ children: "npm init"
1328
+ }), " 命令的时候,它会在当前目录下面创建一个文件名为 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
1329
+ children: "package.json"
1330
+ }), " 的 JSON 文件。在创建过程中,我们需要填写包括但不限于 npm 包的名称、版本号、描述等等内容,这些填写的内容都会在生成的 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
1331
+ children: "package.json"
1332
+ }), " 文件中找到:"]
1333
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CH.Code, {
1334
+ codeConfig: chCodeConfig,
1335
+ northPanel: {
1336
+ "tabs": [""],
1337
+ "active": "",
1338
+ "heightRatio": 1
1339
+ },
1340
+ files: [{
1341
+ "name": "",
1342
+ "focus": "",
1343
+ "code": {
1344
+ "lines": [{
1345
+ "tokens": [{
1346
+ "content": "{",
1347
+ "props": {
1348
+ "style": {
1349
+ "color": "#ECEFF4"
1350
+ }
1351
+ }
1352
+ }]
1353
+ }, {
1354
+ "tokens": [{
1355
+ "content": " ",
1356
+ "props": {
1357
+ "style": {
1358
+ "color": "#D8DEE9FF"
1359
+ }
1360
+ }
1361
+ }, {
1362
+ "content": "\"",
1363
+ "props": {
1364
+ "style": {
1365
+ "color": "#ECEFF4"
1366
+ }
1367
+ }
1368
+ }, {
1369
+ "content": "name",
1370
+ "props": {
1371
+ "style": {
1372
+ "color": "#8FBCBB"
1373
+ }
1374
+ }
1375
+ }, {
1376
+ "content": "\"",
1377
+ "props": {
1378
+ "style": {
1379
+ "color": "#ECEFF4"
1380
+ }
1381
+ }
1382
+ }, {
1383
+ "content": ":",
1384
+ "props": {
1385
+ "style": {
1386
+ "color": "#ECEFF4"
1387
+ }
1388
+ }
1389
+ }, {
1390
+ "content": " ",
1391
+ "props": {
1392
+ "style": {
1393
+ "color": "#D8DEE9FF"
1394
+ }
1395
+ }
1396
+ }, {
1397
+ "content": "\"",
1398
+ "props": {
1399
+ "style": {
1400
+ "color": "#ECEFF4"
1401
+ }
1402
+ }
1403
+ }, {
1404
+ "content": "npm-demo",
1405
+ "props": {
1406
+ "style": {
1407
+ "color": "#A3BE8C"
1408
+ }
1409
+ }
1410
+ }, {
1411
+ "content": "\"",
1412
+ "props": {
1413
+ "style": {
1414
+ "color": "#ECEFF4"
1415
+ }
1416
+ }
1417
+ }, {
1418
+ "content": ",",
1419
+ "props": {
1420
+ "style": {
1421
+ "color": "#ECEFF4"
1422
+ }
1423
+ }
1424
+ }]
1425
+ }, {
1426
+ "tokens": [{
1427
+ "content": " ",
1428
+ "props": {
1429
+ "style": {
1430
+ "color": "#D8DEE9FF"
1431
+ }
1432
+ }
1433
+ }, {
1434
+ "content": "\"",
1435
+ "props": {
1436
+ "style": {
1437
+ "color": "#ECEFF4"
1438
+ }
1439
+ }
1440
+ }, {
1441
+ "content": "version",
1442
+ "props": {
1443
+ "style": {
1444
+ "color": "#8FBCBB"
1445
+ }
1446
+ }
1447
+ }, {
1448
+ "content": "\"",
1449
+ "props": {
1450
+ "style": {
1451
+ "color": "#ECEFF4"
1452
+ }
1453
+ }
1454
+ }, {
1455
+ "content": ":",
1456
+ "props": {
1457
+ "style": {
1458
+ "color": "#ECEFF4"
1459
+ }
1460
+ }
1461
+ }, {
1462
+ "content": " ",
1463
+ "props": {
1464
+ "style": {
1465
+ "color": "#D8DEE9FF"
1466
+ }
1467
+ }
1468
+ }, {
1469
+ "content": "\"",
1470
+ "props": {
1471
+ "style": {
1472
+ "color": "#ECEFF4"
1473
+ }
1474
+ }
1475
+ }, {
1476
+ "content": "1.0.0",
1477
+ "props": {
1478
+ "style": {
1479
+ "color": "#A3BE8C"
1480
+ }
1481
+ }
1482
+ }, {
1483
+ "content": "\"",
1484
+ "props": {
1485
+ "style": {
1486
+ "color": "#ECEFF4"
1487
+ }
1488
+ }
1489
+ }, {
1490
+ "content": ",",
1491
+ "props": {
1492
+ "style": {
1493
+ "color": "#ECEFF4"
1494
+ }
1495
+ }
1496
+ }]
1497
+ }, {
1498
+ "tokens": [{
1499
+ "content": " ",
1500
+ "props": {
1501
+ "style": {
1502
+ "color": "#D8DEE9FF"
1503
+ }
1504
+ }
1505
+ }, {
1506
+ "content": "\"",
1507
+ "props": {
1508
+ "style": {
1509
+ "color": "#ECEFF4"
1510
+ }
1511
+ }
1512
+ }, {
1513
+ "content": "description",
1514
+ "props": {
1515
+ "style": {
1516
+ "color": "#8FBCBB"
1517
+ }
1518
+ }
1519
+ }, {
1520
+ "content": "\"",
1521
+ "props": {
1522
+ "style": {
1523
+ "color": "#ECEFF4"
1524
+ }
1525
+ }
1526
+ }, {
1527
+ "content": ":",
1528
+ "props": {
1529
+ "style": {
1530
+ "color": "#ECEFF4"
1531
+ }
1532
+ }
1533
+ }, {
1534
+ "content": " ",
1535
+ "props": {
1536
+ "style": {
1537
+ "color": "#D8DEE9FF"
1538
+ }
1539
+ }
1540
+ }, {
1541
+ "content": "\"\"",
1542
+ "props": {
1543
+ "style": {
1544
+ "color": "#ECEFF4"
1545
+ }
1546
+ }
1547
+ }, {
1548
+ "content": ",",
1549
+ "props": {
1550
+ "style": {
1551
+ "color": "#ECEFF4"
1552
+ }
1553
+ }
1554
+ }]
1555
+ }, {
1556
+ "tokens": [{
1557
+ "content": " ",
1558
+ "props": {
1559
+ "style": {
1560
+ "color": "#D8DEE9FF"
1561
+ }
1562
+ }
1563
+ }, {
1564
+ "content": "\"",
1565
+ "props": {
1566
+ "style": {
1567
+ "color": "#ECEFF4"
1568
+ }
1569
+ }
1570
+ }, {
1571
+ "content": "main",
1572
+ "props": {
1573
+ "style": {
1574
+ "color": "#8FBCBB"
1575
+ }
1576
+ }
1577
+ }, {
1578
+ "content": "\"",
1579
+ "props": {
1580
+ "style": {
1581
+ "color": "#ECEFF4"
1582
+ }
1583
+ }
1584
+ }, {
1585
+ "content": ":",
1586
+ "props": {
1587
+ "style": {
1588
+ "color": "#ECEFF4"
1589
+ }
1590
+ }
1591
+ }, {
1592
+ "content": " ",
1593
+ "props": {
1594
+ "style": {
1595
+ "color": "#D8DEE9FF"
1596
+ }
1597
+ }
1598
+ }, {
1599
+ "content": "\"",
1600
+ "props": {
1601
+ "style": {
1602
+ "color": "#ECEFF4"
1603
+ }
1604
+ }
1605
+ }, {
1606
+ "content": "index.js",
1607
+ "props": {
1608
+ "style": {
1609
+ "color": "#A3BE8C"
1610
+ }
1611
+ }
1612
+ }, {
1613
+ "content": "\"",
1614
+ "props": {
1615
+ "style": {
1616
+ "color": "#ECEFF4"
1617
+ }
1618
+ }
1619
+ }, {
1620
+ "content": ",",
1621
+ "props": {
1622
+ "style": {
1623
+ "color": "#ECEFF4"
1624
+ }
1625
+ }
1626
+ }]
1627
+ }, {
1628
+ "tokens": [{
1629
+ "content": " ",
1630
+ "props": {
1631
+ "style": {
1632
+ "color": "#D8DEE9FF"
1633
+ }
1634
+ }
1635
+ }, {
1636
+ "content": "\"",
1637
+ "props": {
1638
+ "style": {
1639
+ "color": "#ECEFF4"
1640
+ }
1641
+ }
1642
+ }, {
1643
+ "content": "scripts",
1644
+ "props": {
1645
+ "style": {
1646
+ "color": "#8FBCBB"
1647
+ }
1648
+ }
1649
+ }, {
1650
+ "content": "\"",
1651
+ "props": {
1652
+ "style": {
1653
+ "color": "#ECEFF4"
1654
+ }
1655
+ }
1656
+ }, {
1657
+ "content": ":",
1658
+ "props": {
1659
+ "style": {
1660
+ "color": "#ECEFF4"
1661
+ }
1662
+ }
1663
+ }, {
1664
+ "content": " ",
1665
+ "props": {
1666
+ "style": {
1667
+ "color": "#D8DEE9FF"
1668
+ }
1669
+ }
1670
+ }, {
1671
+ "content": "{",
1672
+ "props": {
1673
+ "style": {
1674
+ "color": "#ECEFF4"
1675
+ }
1676
+ }
1677
+ }]
1678
+ }, {
1679
+ "tokens": [{
1680
+ "content": " ",
1681
+ "props": {
1682
+ "style": {
1683
+ "color": "#D8DEE9FF"
1684
+ }
1685
+ }
1686
+ }, {
1687
+ "content": "\"",
1688
+ "props": {
1689
+ "style": {
1690
+ "color": "#ECEFF4"
1691
+ }
1692
+ }
1693
+ }, {
1694
+ "content": "test",
1695
+ "props": {
1696
+ "style": {
1697
+ "color": "#8FBCBB"
1698
+ }
1699
+ }
1700
+ }, {
1701
+ "content": "\"",
1702
+ "props": {
1703
+ "style": {
1704
+ "color": "#ECEFF4"
1705
+ }
1706
+ }
1707
+ }, {
1708
+ "content": ":",
1709
+ "props": {
1710
+ "style": {
1711
+ "color": "#ECEFF4"
1712
+ }
1713
+ }
1714
+ }, {
1715
+ "content": " ",
1716
+ "props": {
1717
+ "style": {
1718
+ "color": "#D8DEE9FF"
1719
+ }
1720
+ }
1721
+ }, {
1722
+ "content": "\"",
1723
+ "props": {
1724
+ "style": {
1725
+ "color": "#ECEFF4"
1726
+ }
1727
+ }
1728
+ }, {
1729
+ "content": "echo ",
1730
+ "props": {
1731
+ "style": {
1732
+ "color": "#A3BE8C"
1733
+ }
1734
+ }
1735
+ }, {
1736
+ "content": "\\\"",
1737
+ "props": {
1738
+ "style": {
1739
+ "color": "#EBCB8B"
1740
+ }
1741
+ }
1742
+ }, {
1743
+ "content": "Error: no test specified",
1744
+ "props": {
1745
+ "style": {
1746
+ "color": "#A3BE8C"
1747
+ }
1748
+ }
1749
+ }, {
1750
+ "content": "\\\"",
1751
+ "props": {
1752
+ "style": {
1753
+ "color": "#EBCB8B"
1754
+ }
1755
+ }
1756
+ }, {
1757
+ "content": " && exit 1",
1758
+ "props": {
1759
+ "style": {
1760
+ "color": "#A3BE8C"
1761
+ }
1762
+ }
1763
+ }, {
1764
+ "content": "\"",
1765
+ "props": {
1766
+ "style": {
1767
+ "color": "#ECEFF4"
1768
+ }
1769
+ }
1770
+ }]
1771
+ }, {
1772
+ "tokens": [{
1773
+ "content": " ",
1774
+ "props": {
1775
+ "style": {
1776
+ "color": "#D8DEE9FF"
1777
+ }
1778
+ }
1779
+ }, {
1780
+ "content": "},",
1781
+ "props": {
1782
+ "style": {
1783
+ "color": "#ECEFF4"
1784
+ }
1785
+ }
1786
+ }]
1787
+ }, {
1788
+ "tokens": [{
1789
+ "content": " ",
1790
+ "props": {
1791
+ "style": {
1792
+ "color": "#D8DEE9FF"
1793
+ }
1794
+ }
1795
+ }, {
1796
+ "content": "\"",
1797
+ "props": {
1798
+ "style": {
1799
+ "color": "#ECEFF4"
1800
+ }
1801
+ }
1802
+ }, {
1803
+ "content": "author",
1804
+ "props": {
1805
+ "style": {
1806
+ "color": "#8FBCBB"
1807
+ }
1808
+ }
1809
+ }, {
1810
+ "content": "\"",
1811
+ "props": {
1812
+ "style": {
1813
+ "color": "#ECEFF4"
1814
+ }
1815
+ }
1816
+ }, {
1817
+ "content": ":",
1818
+ "props": {
1819
+ "style": {
1820
+ "color": "#ECEFF4"
1821
+ }
1822
+ }
1823
+ }, {
1824
+ "content": " ",
1825
+ "props": {
1826
+ "style": {
1827
+ "color": "#D8DEE9FF"
1828
+ }
1829
+ }
1830
+ }, {
1831
+ "content": "\"\"",
1832
+ "props": {
1833
+ "style": {
1834
+ "color": "#ECEFF4"
1835
+ }
1836
+ }
1837
+ }, {
1838
+ "content": ",",
1839
+ "props": {
1840
+ "style": {
1841
+ "color": "#ECEFF4"
1842
+ }
1843
+ }
1844
+ }]
1845
+ }, {
1846
+ "tokens": [{
1847
+ "content": " ",
1848
+ "props": {
1849
+ "style": {
1850
+ "color": "#D8DEE9FF"
1851
+ }
1852
+ }
1853
+ }, {
1854
+ "content": "\"",
1855
+ "props": {
1856
+ "style": {
1857
+ "color": "#ECEFF4"
1858
+ }
1859
+ }
1860
+ }, {
1861
+ "content": "license",
1862
+ "props": {
1863
+ "style": {
1864
+ "color": "#8FBCBB"
1865
+ }
1866
+ }
1867
+ }, {
1868
+ "content": "\"",
1869
+ "props": {
1870
+ "style": {
1871
+ "color": "#ECEFF4"
1872
+ }
1873
+ }
1874
+ }, {
1875
+ "content": ":",
1876
+ "props": {
1877
+ "style": {
1878
+ "color": "#ECEFF4"
1879
+ }
1880
+ }
1881
+ }, {
1882
+ "content": " ",
1883
+ "props": {
1884
+ "style": {
1885
+ "color": "#D8DEE9FF"
1886
+ }
1887
+ }
1888
+ }, {
1889
+ "content": "\"",
1890
+ "props": {
1891
+ "style": {
1892
+ "color": "#ECEFF4"
1893
+ }
1894
+ }
1895
+ }, {
1896
+ "content": "ISC",
1897
+ "props": {
1898
+ "style": {
1899
+ "color": "#A3BE8C"
1900
+ }
1901
+ }
1902
+ }, {
1903
+ "content": "\"",
1904
+ "props": {
1905
+ "style": {
1906
+ "color": "#ECEFF4"
1907
+ }
1908
+ }
1909
+ }]
1910
+ }, {
1911
+ "tokens": [{
1912
+ "content": "}",
1913
+ "props": {
1914
+ "style": {
1915
+ "color": "#ECEFF4"
1916
+ }
1917
+ }
1918
+ }]
1919
+ }],
1920
+ "lang": "json"
1921
+ },
1922
+ "annotations": []
1923
+ }]
1924
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
1925
+ children: ["此时这个包含了初始化后的 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
1926
+ children: "package.json"
1927
+ }), " 文件的项目就是一个 npm 包类型的项目,你可以执行 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
1928
+ children: "npm publish"
1929
+ }), " 命令将这个项目发布到 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
1930
+ href: "https://www.npmjs.com/",
1931
+ children: "npm Registry"
1932
+ }), "。"]
1933
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
1934
+ children: ["npm Registry 是一个 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
1935
+ href: "https://docs.npmjs.com/about-the-public-npm-registry",
1936
+ children: "npm 包存储的地方"
1937
+ }), ",开发者们不仅可以将他们自己的 npm 包发布到 npm Registry,还可以通过 npm Registry 使用其他开发者发布的 npm 包。"]
1938
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, {
1939
+ children: "优质的 npm 包会有更多的人去使用,因为它不仅节省了很多代码实现的工作,同时也不容易让项目出现问题。"
1940
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.h2, {
1941
+ id: "使用第三方-npm-包",
1942
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
1943
+ className: "header-anchor",
1944
+ "aria-hidden": "true",
1945
+ href: "#使用第三方-npm-包",
1946
+ children: "#"
1947
+ }), "使用第三方 npm 包"]
1948
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
1949
+ children: ["当要为初始化的项目增加第三方的 npm 包的时候,我们可以把这一过程叫做“为项目安装依赖”或是“为项目增加依赖”。在增加依赖之前,首先我们要特别了解一件事情 —— ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, {
1950
+ children: "npm 依赖的软件包类型"
1951
+ }), ":"]
1952
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.ul, {
1953
+ children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.li, {
1954
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
1955
+ children: "\"dependencies\""
1956
+ }), ":一种是你的应用程序在生产环境中需要的软件包。"]
1957
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.li, {
1958
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
1959
+ children: "\"devDependencies\""
1960
+ }), ":另一种是仅在本地开发和测试中需要的软件包。", "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.blockquote, {
1961
+ children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, {
1962
+ children: "软件包可以理解为是第三方的 npm 包。"
1963
+ }), "\n"]
1964
+ }), "\n"]
1965
+ }), "\n"]
1966
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
1967
+ children: ["你可以通过执行 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
1968
+ children: "npm install npm-package-name"
1969
+ }), " 或者 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
1970
+ children: "npm add npm-package-name"
1971
+ }), " 的方式来安装在", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, {
1972
+ children: "生产环境中需要的软件包"
1973
+ }), ",或者也可以在 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
1974
+ children: "package.json"
1975
+ }), " 文件中手动的将需要安装的包和对应的", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
1976
+ href: "https://docs.npmjs.com/about-semantic-versioning",
1977
+ children: "语义化版本"
1978
+ }), "写在 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
1979
+ children: "\"dependencies\""
1980
+ }), " 里,并执行 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
1981
+ children: "npm install"
1982
+ }), " 命令:"]
1983
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CH.Code, {
1984
+ codeConfig: chCodeConfig,
1985
+ northPanel: {
1986
+ "tabs": [""],
1987
+ "active": "",
1988
+ "heightRatio": 1
1989
+ },
1990
+ files: [{
1991
+ "name": "",
1992
+ "focus": "",
1993
+ "code": {
1994
+ "lines": [{
1995
+ "tokens": [{
1996
+ "content": "{",
1997
+ "props": {
1998
+ "style": {
1999
+ "color": "#ECEFF4"
2000
+ }
2001
+ }
2002
+ }]
2003
+ }, {
2004
+ "tokens": [{
2005
+ "content": " ",
2006
+ "props": {
2007
+ "style": {
2008
+ "color": "#D8DEE9FF"
2009
+ }
2010
+ }
2011
+ }, {
2012
+ "content": "\"",
2013
+ "props": {
2014
+ "style": {
2015
+ "color": "#ECEFF4"
2016
+ }
2017
+ }
2018
+ }, {
2019
+ "content": "name",
2020
+ "props": {
2021
+ "style": {
2022
+ "color": "#8FBCBB"
2023
+ }
2024
+ }
2025
+ }, {
2026
+ "content": "\"",
2027
+ "props": {
2028
+ "style": {
2029
+ "color": "#ECEFF4"
2030
+ }
2031
+ }
2032
+ }, {
2033
+ "content": ":",
2034
+ "props": {
2035
+ "style": {
2036
+ "color": "#ECEFF4"
2037
+ }
2038
+ }
2039
+ }, {
2040
+ "content": " ",
2041
+ "props": {
2042
+ "style": {
2043
+ "color": "#D8DEE9FF"
2044
+ }
2045
+ }
2046
+ }, {
2047
+ "content": "\"",
2048
+ "props": {
2049
+ "style": {
2050
+ "color": "#ECEFF4"
2051
+ }
2052
+ }
2053
+ }, {
2054
+ "content": "your-npm-project",
2055
+ "props": {
2056
+ "style": {
2057
+ "color": "#A3BE8C"
2058
+ }
2059
+ }
2060
+ }, {
2061
+ "content": "\"",
2062
+ "props": {
2063
+ "style": {
2064
+ "color": "#ECEFF4"
2065
+ }
2066
+ }
2067
+ }, {
2068
+ "content": ",",
2069
+ "props": {
2070
+ "style": {
2071
+ "color": "#ECEFF4"
2072
+ }
2073
+ }
2074
+ }]
2075
+ }, {
2076
+ "tokens": [{
2077
+ "content": " ",
2078
+ "props": {
2079
+ "style": {
2080
+ "color": "#D8DEE9FF"
2081
+ }
2082
+ }
2083
+ }, {
2084
+ "content": "\"",
2085
+ "props": {
2086
+ "style": {
2087
+ "color": "#ECEFF4"
2088
+ }
2089
+ }
2090
+ }, {
2091
+ "content": "dependencies",
2092
+ "props": {
2093
+ "style": {
2094
+ "color": "#8FBCBB"
2095
+ }
2096
+ }
2097
+ }, {
2098
+ "content": "\"",
2099
+ "props": {
2100
+ "style": {
2101
+ "color": "#ECEFF4"
2102
+ }
2103
+ }
2104
+ }, {
2105
+ "content": ":",
2106
+ "props": {
2107
+ "style": {
2108
+ "color": "#ECEFF4"
2109
+ }
2110
+ }
2111
+ }, {
2112
+ "content": " ",
2113
+ "props": {
2114
+ "style": {
2115
+ "color": "#D8DEE9FF"
2116
+ }
2117
+ }
2118
+ }, {
2119
+ "content": "{",
2120
+ "props": {
2121
+ "style": {
2122
+ "color": "#ECEFF4"
2123
+ }
2124
+ }
2125
+ }]
2126
+ }, {
2127
+ "tokens": [{
2128
+ "content": " ",
2129
+ "props": {
2130
+ "style": {
2131
+ "color": "#D8DEE9FF"
2132
+ }
2133
+ }
2134
+ }, {
2135
+ "content": "\"",
2136
+ "props": {
2137
+ "style": {
2138
+ "color": "#ECEFF4"
2139
+ }
2140
+ }
2141
+ }, {
2142
+ "content": "npm-package-name",
2143
+ "props": {
2144
+ "style": {
2145
+ "color": "#8FBCBB"
2146
+ }
2147
+ }
2148
+ }, {
2149
+ "content": "\"",
2150
+ "props": {
2151
+ "style": {
2152
+ "color": "#ECEFF4"
2153
+ }
2154
+ }
2155
+ }, {
2156
+ "content": ":",
2157
+ "props": {
2158
+ "style": {
2159
+ "color": "#ECEFF4"
2160
+ }
2161
+ }
2162
+ }, {
2163
+ "content": " ",
2164
+ "props": {
2165
+ "style": {
2166
+ "color": "#D8DEE9FF"
2167
+ }
2168
+ }
2169
+ }, {
2170
+ "content": "\"",
2171
+ "props": {
2172
+ "style": {
2173
+ "color": "#ECEFF4"
2174
+ }
2175
+ }
2176
+ }, {
2177
+ "content": "0.1.0",
2178
+ "props": {
2179
+ "style": {
2180
+ "color": "#A3BE8C"
2181
+ }
2182
+ }
2183
+ }, {
2184
+ "content": "\"",
2185
+ "props": {
2186
+ "style": {
2187
+ "color": "#ECEFF4"
2188
+ }
2189
+ }
2190
+ }]
2191
+ }, {
2192
+ "tokens": [{
2193
+ "content": " ",
2194
+ "props": {
2195
+ "style": {
2196
+ "color": "#D8DEE9FF"
2197
+ }
2198
+ }
2199
+ }, {
2200
+ "content": "}",
2201
+ "props": {
2202
+ "style": {
2203
+ "color": "#ECEFF4"
2204
+ }
2205
+ }
2206
+ }]
2207
+ }, {
2208
+ "tokens": [{
2209
+ "content": "}",
2210
+ "props": {
2211
+ "style": {
2212
+ "color": "#ECEFF4"
2213
+ }
2214
+ }
2215
+ }]
2216
+ }],
2217
+ "lang": "json"
2218
+ },
2219
+ "annotations": []
2220
+ }]
2221
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2222
+ children: ["同理,你也可以执行 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2223
+ children: "npm install npm-package-name --save-dev"
2224
+ }), " 或 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2225
+ children: "npm add npm-package-name --save-dev"
2226
+ }), " 的方式来安装", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, {
2227
+ children: "仅在本地开发和测试中需要的软件包"
2228
+ }), ",或者也可以在 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2229
+ children: "package.json"
2230
+ }), " 文件中手动的将需要安装的包和对应的", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
2231
+ href: "https://docs.npmjs.com/about-semantic-versioning",
2232
+ children: "语义化版本"
2233
+ }), "写在 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2234
+ children: "\"devDependencies\""
2235
+ }), " 里,并执行 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2236
+ children: "npm install"
2237
+ }), " 命令:"]
2238
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CH.Code, {
2239
+ codeConfig: chCodeConfig,
2240
+ northPanel: {
2241
+ "tabs": [""],
2242
+ "active": "",
2243
+ "heightRatio": 1
2244
+ },
2245
+ files: [{
2246
+ "name": "",
2247
+ "focus": "",
2248
+ "code": {
2249
+ "lines": [{
2250
+ "tokens": [{
2251
+ "content": "{",
2252
+ "props": {
2253
+ "style": {
2254
+ "color": "#ECEFF4"
2255
+ }
2256
+ }
2257
+ }]
2258
+ }, {
2259
+ "tokens": [{
2260
+ "content": " ",
2261
+ "props": {
2262
+ "style": {
2263
+ "color": "#D8DEE9FF"
2264
+ }
2265
+ }
2266
+ }, {
2267
+ "content": "\"",
2268
+ "props": {
2269
+ "style": {
2270
+ "color": "#ECEFF4"
2271
+ }
2272
+ }
2273
+ }, {
2274
+ "content": "name",
2275
+ "props": {
2276
+ "style": {
2277
+ "color": "#8FBCBB"
2278
+ }
2279
+ }
2280
+ }, {
2281
+ "content": "\"",
2282
+ "props": {
2283
+ "style": {
2284
+ "color": "#ECEFF4"
2285
+ }
2286
+ }
2287
+ }, {
2288
+ "content": ":",
2289
+ "props": {
2290
+ "style": {
2291
+ "color": "#ECEFF4"
2292
+ }
2293
+ }
2294
+ }, {
2295
+ "content": " ",
2296
+ "props": {
2297
+ "style": {
2298
+ "color": "#D8DEE9FF"
2299
+ }
2300
+ }
2301
+ }, {
2302
+ "content": "\"",
2303
+ "props": {
2304
+ "style": {
2305
+ "color": "#ECEFF4"
2306
+ }
2307
+ }
2308
+ }, {
2309
+ "content": "your-npm-project",
2310
+ "props": {
2311
+ "style": {
2312
+ "color": "#A3BE8C"
2313
+ }
2314
+ }
2315
+ }, {
2316
+ "content": "\"",
2317
+ "props": {
2318
+ "style": {
2319
+ "color": "#ECEFF4"
2320
+ }
2321
+ }
2322
+ }, {
2323
+ "content": ",",
2324
+ "props": {
2325
+ "style": {
2326
+ "color": "#ECEFF4"
2327
+ }
2328
+ }
2329
+ }]
2330
+ }, {
2331
+ "tokens": [{
2332
+ "content": " ",
2333
+ "props": {
2334
+ "style": {
2335
+ "color": "#D8DEE9FF"
2336
+ }
2337
+ }
2338
+ }, {
2339
+ "content": "\"",
2340
+ "props": {
2341
+ "style": {
2342
+ "color": "#ECEFF4"
2343
+ }
2344
+ }
2345
+ }, {
2346
+ "content": "devDependencies",
2347
+ "props": {
2348
+ "style": {
2349
+ "color": "#8FBCBB"
2350
+ }
2351
+ }
2352
+ }, {
2353
+ "content": "\"",
2354
+ "props": {
2355
+ "style": {
2356
+ "color": "#ECEFF4"
2357
+ }
2358
+ }
2359
+ }, {
2360
+ "content": ":",
2361
+ "props": {
2362
+ "style": {
2363
+ "color": "#ECEFF4"
2364
+ }
2365
+ }
2366
+ }, {
2367
+ "content": " ",
2368
+ "props": {
2369
+ "style": {
2370
+ "color": "#D8DEE9FF"
2371
+ }
2372
+ }
2373
+ }, {
2374
+ "content": "{",
2375
+ "props": {
2376
+ "style": {
2377
+ "color": "#ECEFF4"
2378
+ }
2379
+ }
2380
+ }]
2381
+ }, {
2382
+ "tokens": [{
2383
+ "content": " ",
2384
+ "props": {
2385
+ "style": {
2386
+ "color": "#D8DEE9FF"
2387
+ }
2388
+ }
2389
+ }, {
2390
+ "content": "\"",
2391
+ "props": {
2392
+ "style": {
2393
+ "color": "#ECEFF4"
2394
+ }
2395
+ }
2396
+ }, {
2397
+ "content": "npm-package-name",
2398
+ "props": {
2399
+ "style": {
2400
+ "color": "#8FBCBB"
2401
+ }
2402
+ }
2403
+ }, {
2404
+ "content": "\"",
2405
+ "props": {
2406
+ "style": {
2407
+ "color": "#ECEFF4"
2408
+ }
2409
+ }
2410
+ }, {
2411
+ "content": ":",
2412
+ "props": {
2413
+ "style": {
2414
+ "color": "#ECEFF4"
2415
+ }
2416
+ }
2417
+ }, {
2418
+ "content": " ",
2419
+ "props": {
2420
+ "style": {
2421
+ "color": "#D8DEE9FF"
2422
+ }
2423
+ }
2424
+ }, {
2425
+ "content": "\"",
2426
+ "props": {
2427
+ "style": {
2428
+ "color": "#ECEFF4"
2429
+ }
2430
+ }
2431
+ }, {
2432
+ "content": "0.1.0",
2433
+ "props": {
2434
+ "style": {
2435
+ "color": "#A3BE8C"
2436
+ }
2437
+ }
2438
+ }, {
2439
+ "content": "\"",
2440
+ "props": {
2441
+ "style": {
2442
+ "color": "#ECEFF4"
2443
+ }
2444
+ }
2445
+ }]
2446
+ }, {
2447
+ "tokens": [{
2448
+ "content": " ",
2449
+ "props": {
2450
+ "style": {
2451
+ "color": "#D8DEE9FF"
2452
+ }
2453
+ }
2454
+ }, {
2455
+ "content": "}",
2456
+ "props": {
2457
+ "style": {
2458
+ "color": "#ECEFF4"
2459
+ }
2460
+ }
2461
+ }]
2462
+ }, {
2463
+ "tokens": [{
2464
+ "content": "}",
2465
+ "props": {
2466
+ "style": {
2467
+ "color": "#ECEFF4"
2468
+ }
2469
+ }
2470
+ }]
2471
+ }],
2472
+ "lang": "json"
2473
+ },
2474
+ "annotations": []
2475
+ }]
2476
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, {
2477
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.strong, {
2478
+ children: ["在安装或者使用第三方 npm 包的时候一定要确定它们的用途,以及通过区分它们的类型确定好它们应该放在 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2479
+ children: "\"dependencies\""
2480
+ }), " 还是 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2481
+ children: "\"devDependencies\""
2482
+ }), " 中。"]
2483
+ })
2484
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.div, {
2485
+ className: "modern-directive tip",
2486
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, {
2487
+ className: "modern-directive-title",
2488
+ children: "TIP"
2489
+ }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.div, {
2490
+ className: "island-directive-content",
2491
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2492
+ children: ["一般来说,需要在源代码中使用到的包都属于 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2493
+ children: "dependencies"
2494
+ }), " 依赖。除非你通过打包的方式将依赖的代码输出到本地,那么这种情况可以将它作为 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2495
+ children: "devDependencies"
2496
+ }), " 依赖。"]
2497
+ })
2498
+ })]
2499
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.h2, {
2500
+ id: "还需要了解的-npm-零碎知识",
2501
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
2502
+ className: "header-anchor",
2503
+ "aria-hidden": "true",
2504
+ href: "#还需要了解的-npm-零碎知识",
2505
+ children: "#"
2506
+ }), "还需要了解的 npm 零碎知识"]
2507
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.h3, {
2508
+ id: "npm-包的程序入口",
2509
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
2510
+ className: "header-anchor",
2511
+ "aria-hidden": "true",
2512
+ href: "#npm-包的程序入口",
2513
+ children: "#"
2514
+ }), "npm 包的程序入口"]
2515
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2516
+ children: ["在 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2517
+ children: "package.json"
2518
+ }), " 中存在一个 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2519
+ children: "\"main\""
2520
+ }), " 属性,它对应的值是一个模块 ID,或者更直观的说是一个 NodeJS 文件路径,它是你程序的主要入口。"]
2521
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2522
+ children: ["例如你的包名为 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2523
+ children: "foo"
2524
+ }), ",并且用户安装了它,然后执行 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2525
+ children: "require(\"foo\")"
2526
+ }), " 代码,那么 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2527
+ children: "foo"
2528
+ }), " 这个 npm 包的 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2529
+ children: "\"main\""
2530
+ }), " 字段对应的文件将会被导出。"]
2531
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2532
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.strong, {
2533
+ children: ["推荐在你的 npm 包里一定要设置 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2534
+ children: "\"main\""
2535
+ }), " 字段"]
2536
+ }), "。如果没有设置 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2537
+ children: "\"main\""
2538
+ }), ",则默认入口为包的根目录下的 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2539
+ children: "index.js"
2540
+ }), " 文件。"]
2541
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2542
+ children: ["除了需要设置 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2543
+ children: "\"main\""
2544
+ }), " 属性以外,一般还会设置 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2545
+ children: "\"module\""
2546
+ }), " 属性。它与 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2547
+ children: "\"main\""
2548
+ }), " 属性的用途类似,它主要是用于在 webpack 场景下使用。webpack 在大多数情况下,会以 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, {
2549
+ children: "\"module\" -> \"main\""
2550
+ }), " 这个顺序读取 npm 包的入口(文件)。"]
2551
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.blockquote, {
2552
+ children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2553
+ children: ["想要了解关于 webpack 如何做这件事,可以查看这个", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
2554
+ href: "https://webpack.js.org/configuration/resolve/#resolvemainfields",
2555
+ children: "链接"
2556
+ }), "。"]
2557
+ }), "\n"]
2558
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.h3, {
2559
+ id: "scripts",
2560
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
2561
+ className: "header-anchor",
2562
+ "aria-hidden": "true",
2563
+ href: "#scripts",
2564
+ children: "#"
2565
+ }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2566
+ children: "\"scripts\""
2567
+ })]
2568
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2569
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2570
+ children: "package.json"
2571
+ }), " 文件的 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2572
+ children: "\"scripts\""
2573
+ }), " 属性支持一些内置的脚本和 npm 预设的生命周期事件,以及任意的脚本。"]
2574
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2575
+ children: ["这些都可以通过运行 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2576
+ children: "npm run-script <stage>"
2577
+ }), " 或简称 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2578
+ children: "npm run <stage>"
2579
+ }), " 来执行。"]
2580
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2581
+ children: ["名称匹配的", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
2582
+ href: "https://docs.npmjs.com/cli/v9/using-npm/scripts#pre--post-scripts",
2583
+ children: "前置命令和后置命令"
2584
+ }), "也会被运行(例如 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2585
+ children: "premyscript"
2586
+ }), "、", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2587
+ children: "myscript"
2588
+ }), "、", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2589
+ children: "postmyscript"
2590
+ }), ")。"]
2591
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CH.Code, {
2592
+ codeConfig: chCodeConfig,
2593
+ northPanel: {
2594
+ "tabs": [""],
2595
+ "active": "",
2596
+ "heightRatio": 1
2597
+ },
2598
+ files: [{
2599
+ "name": "",
2600
+ "focus": "",
2601
+ "code": {
2602
+ "lines": [{
2603
+ "tokens": [{
2604
+ "content": "{",
2605
+ "props": {
2606
+ "style": {
2607
+ "color": "#ECEFF4"
2608
+ }
2609
+ }
2610
+ }]
2611
+ }, {
2612
+ "tokens": [{
2613
+ "content": " ",
2614
+ "props": {
2615
+ "style": {
2616
+ "color": "#D8DEE9FF"
2617
+ }
2618
+ }
2619
+ }, {
2620
+ "content": "\"",
2621
+ "props": {
2622
+ "style": {
2623
+ "color": "#ECEFF4"
2624
+ }
2625
+ }
2626
+ }, {
2627
+ "content": "scripts",
2628
+ "props": {
2629
+ "style": {
2630
+ "color": "#8FBCBB"
2631
+ }
2632
+ }
2633
+ }, {
2634
+ "content": "\"",
2635
+ "props": {
2636
+ "style": {
2637
+ "color": "#ECEFF4"
2638
+ }
2639
+ }
2640
+ }, {
2641
+ "content": ":",
2642
+ "props": {
2643
+ "style": {
2644
+ "color": "#ECEFF4"
2645
+ }
2646
+ }
2647
+ }, {
2648
+ "content": " ",
2649
+ "props": {
2650
+ "style": {
2651
+ "color": "#D8DEE9FF"
2652
+ }
2653
+ }
2654
+ }, {
2655
+ "content": "{",
2656
+ "props": {
2657
+ "style": {
2658
+ "color": "#ECEFF4"
2659
+ }
2660
+ }
2661
+ }]
2662
+ }, {
2663
+ "tokens": [{
2664
+ "content": " ",
2665
+ "props": {
2666
+ "style": {
2667
+ "color": "#D8DEE9FF"
2668
+ }
2669
+ }
2670
+ }, {
2671
+ "content": "\"",
2672
+ "props": {
2673
+ "style": {
2674
+ "color": "#ECEFF4"
2675
+ }
2676
+ }
2677
+ }, {
2678
+ "content": "premyscript",
2679
+ "props": {
2680
+ "style": {
2681
+ "color": "#8FBCBB"
2682
+ }
2683
+ }
2684
+ }, {
2685
+ "content": "\"",
2686
+ "props": {
2687
+ "style": {
2688
+ "color": "#ECEFF4"
2689
+ }
2690
+ }
2691
+ }, {
2692
+ "content": ":",
2693
+ "props": {
2694
+ "style": {
2695
+ "color": "#ECEFF4"
2696
+ }
2697
+ }
2698
+ }, {
2699
+ "content": " ",
2700
+ "props": {
2701
+ "style": {
2702
+ "color": "#D8DEE9FF"
2703
+ }
2704
+ }
2705
+ }, {
2706
+ "content": "\"\"",
2707
+ "props": {
2708
+ "style": {
2709
+ "color": "#ECEFF4"
2710
+ }
2711
+ }
2712
+ }, {
2713
+ "content": ",",
2714
+ "props": {
2715
+ "style": {
2716
+ "color": "#ECEFF4"
2717
+ }
2718
+ }
2719
+ }]
2720
+ }, {
2721
+ "tokens": [{
2722
+ "content": " ",
2723
+ "props": {
2724
+ "style": {
2725
+ "color": "#D8DEE9FF"
2726
+ }
2727
+ }
2728
+ }, {
2729
+ "content": "\"",
2730
+ "props": {
2731
+ "style": {
2732
+ "color": "#ECEFF4"
2733
+ }
2734
+ }
2735
+ }, {
2736
+ "content": "myscript",
2737
+ "props": {
2738
+ "style": {
2739
+ "color": "#8FBCBB"
2740
+ }
2741
+ }
2742
+ }, {
2743
+ "content": "\"",
2744
+ "props": {
2745
+ "style": {
2746
+ "color": "#ECEFF4"
2747
+ }
2748
+ }
2749
+ }, {
2750
+ "content": ":",
2751
+ "props": {
2752
+ "style": {
2753
+ "color": "#ECEFF4"
2754
+ }
2755
+ }
2756
+ }, {
2757
+ "content": " ",
2758
+ "props": {
2759
+ "style": {
2760
+ "color": "#D8DEE9FF"
2761
+ }
2762
+ }
2763
+ }, {
2764
+ "content": "\"\"",
2765
+ "props": {
2766
+ "style": {
2767
+ "color": "#ECEFF4"
2768
+ }
2769
+ }
2770
+ }, {
2771
+ "content": ",",
2772
+ "props": {
2773
+ "style": {
2774
+ "color": "#ECEFF4"
2775
+ }
2776
+ }
2777
+ }]
2778
+ }, {
2779
+ "tokens": [{
2780
+ "content": " ",
2781
+ "props": {
2782
+ "style": {
2783
+ "color": "#D8DEE9FF"
2784
+ }
2785
+ }
2786
+ }, {
2787
+ "content": "\"",
2788
+ "props": {
2789
+ "style": {
2790
+ "color": "#ECEFF4"
2791
+ }
2792
+ }
2793
+ }, {
2794
+ "content": "postmyscript",
2795
+ "props": {
2796
+ "style": {
2797
+ "color": "#8FBCBB"
2798
+ }
2799
+ }
2800
+ }, {
2801
+ "content": "\"",
2802
+ "props": {
2803
+ "style": {
2804
+ "color": "#ECEFF4"
2805
+ }
2806
+ }
2807
+ }, {
2808
+ "content": ":",
2809
+ "props": {
2810
+ "style": {
2811
+ "color": "#ECEFF4"
2812
+ }
2813
+ }
2814
+ }, {
2815
+ "content": " ",
2816
+ "props": {
2817
+ "style": {
2818
+ "color": "#D8DEE9FF"
2819
+ }
2820
+ }
2821
+ }, {
2822
+ "content": "\"\"",
2823
+ "props": {
2824
+ "style": {
2825
+ "color": "#ECEFF4"
2826
+ }
2827
+ }
2828
+ }]
2829
+ }, {
2830
+ "tokens": [{
2831
+ "content": " ",
2832
+ "props": {
2833
+ "style": {
2834
+ "color": "#D8DEE9FF"
2835
+ }
2836
+ }
2837
+ }, {
2838
+ "content": "}",
2839
+ "props": {
2840
+ "style": {
2841
+ "color": "#ECEFF4"
2842
+ }
2843
+ }
2844
+ }]
2845
+ }, {
2846
+ "tokens": [{
2847
+ "content": "}",
2848
+ "props": {
2849
+ "style": {
2850
+ "color": "#ECEFF4"
2851
+ }
2852
+ }
2853
+ }]
2854
+ }],
2855
+ "lang": "json"
2856
+ },
2857
+ "annotations": []
2858
+ }]
2859
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2860
+ children: ["当执行 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2861
+ children: "npm run myscripts"
2862
+ }), " 的时候,", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2863
+ children: "premyscripts"
2864
+ }), " 对应的脚本会在它之前执行,", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2865
+ children: "postmyscripts"
2866
+ }), " 对应的脚本会在它之后执行。"]
2867
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2868
+ children: ["来自依赖的脚本命令可以用 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2869
+ children: "npm explore <pkg> -- npm run <stage>"
2870
+ }), " 运行。"]
2871
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, {
2872
+ children: "还有一些特殊的生命周期脚本(Life Scripts),只在某些情况下发生。这里介绍几个通常需要了解的情况。"
2873
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.h4, {
2874
+ id: "npm-install",
2875
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
2876
+ className: "header-anchor",
2877
+ "aria-hidden": "true",
2878
+ href: "#npm-install",
2879
+ children: "#"
2880
+ }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2881
+ children: "npm install"
2882
+ })]
2883
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2884
+ children: ["当你运行 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2885
+ children: "npm install -g <pkg-name>"
2886
+ }), " 时,以下脚本会运行。"]
2887
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.ul, {
2888
+ children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2889
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2890
+ children: "preinstall"
2891
+ })
2892
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2893
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2894
+ children: "install"
2895
+ })
2896
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2897
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2898
+ children: "postinstall"
2899
+ })
2900
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2901
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2902
+ children: "prepublish"
2903
+ })
2904
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2905
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2906
+ children: "preprepare"
2907
+ })
2908
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2909
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2910
+ children: "prepare"
2911
+ })
2912
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2913
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2914
+ children: "postprepare"
2915
+ })
2916
+ }), "\n"]
2917
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2918
+ children: ["如果你的软件包根目录有一个 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2919
+ children: "binding.gyp"
2920
+ }), " 文件,而你没有定义 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2921
+ children: "install"
2922
+ }), " 或 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2923
+ children: "preinstall"
2924
+ }), " 脚本,那么 npm 将以 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2925
+ children: "node-gyp rebuild"
2926
+ }), " 作为默认的 install 命令,使用 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
2927
+ href: "https://github.com/nodejs/node-gyp",
2928
+ children: "node-gyp"
2929
+ }), " 进行编译。"]
2930
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.h4, {
2931
+ id: "npm-publish",
2932
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
2933
+ className: "header-anchor",
2934
+ "aria-hidden": "true",
2935
+ href: "#npm-publish",
2936
+ children: "#"
2937
+ }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2938
+ children: "npm publish"
2939
+ })]
2940
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, {
2941
+ children: "当发布项目的时候,执行该命令会触发以下脚本:"
2942
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.ul, {
2943
+ children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2944
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2945
+ children: "prepublishOnly"
2946
+ })
2947
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2948
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2949
+ children: "prepack"
2950
+ })
2951
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2952
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2953
+ children: "prepare"
2954
+ })
2955
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2956
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2957
+ children: "postpack"
2958
+ })
2959
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2960
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2961
+ children: "publish"
2962
+ })
2963
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2964
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2965
+ children: "postpublish"
2966
+ })
2967
+ }), "\n"]
2968
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2969
+ children: ["当以 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
2970
+ href: "https://docs.npmjs.com/cli/v7/commands/npm-publish#dry-run",
2971
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2972
+ children: "--dry-run"
2973
+ })
2974
+ }), " 模式运行的时候,", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2975
+ children: "prepare"
2976
+ }), " 对应的脚本将不会执行。"]
2977
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.h3, {
2978
+ id: "peerdependencies",
2979
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
2980
+ className: "header-anchor",
2981
+ "aria-hidden": "true",
2982
+ href: "#peerdependencies",
2983
+ children: "#"
2984
+ }), "peerDependencies"]
2985
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, {
2986
+ children: "在某些情况下,你的 npm 项目与它的宿主工具或者库之间存在某种兼容关系(例如一个 webpack 插件项目和 webpack),同时你的 npm 项目不想将宿主作为必要的依赖,这个时候通常说明你的项目可能是这个宿主工具或者库的插件。你的 npm 项目会对宿主包的版本有一定的要求,因为只有在特定的版本下才会暴露出 npm 项目所需要的 API。"
2987
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
2988
+ children: ["关于更多 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
2989
+ children: "peerDependencies"
2990
+ }), " 的解释,可以通过下面的链接了解 npm、pnpm、Yarn 对于它的不同处理方式:"]
2991
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.ul, {
2992
+ children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2993
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
2994
+ href: "https://docs.npmjs.com/cli/v9/configuring-npm/package-json#peerdependencies",
2995
+ children: "npm 对 peerDependencies 的解释"
2996
+ })
2997
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, {
2998
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
2999
+ href: "https://pnpm.io/feature-comparison",
3000
+ children: "pnpm vs npm VS Yarn"
3001
+ })
3002
+ }), "\n"]
3003
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.h2, {
3004
+ id: "npm-包管理器",
3005
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
3006
+ className: "header-anchor",
3007
+ "aria-hidden": "true",
3008
+ href: "#npm-包管理器",
3009
+ children: "#"
3010
+ }), "npm 包管理器"]
3011
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
3012
+ children: ["除了 npm 这种标准的包管理器以外,目前主流的还有 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, {
3013
+ children: "pnpm"
3014
+ }), " 和 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, {
3015
+ children: "Yarn"
3016
+ }), ",它们都是不错的 npm cli 替代品。"]
3017
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
3018
+ children: ["推荐使用 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
3019
+ href: "https://pnpm.io/installation",
3020
+ children: "pnpm"
3021
+ }), " 来管理项目依赖,可以通过下面的方式安装它:"]
3022
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CH.Code, {
3023
+ codeConfig: chCodeConfig,
3024
+ northPanel: {
3025
+ "tabs": [""],
3026
+ "active": "",
3027
+ "heightRatio": 1
3028
+ },
3029
+ files: [{
3030
+ "name": "",
3031
+ "focus": "",
3032
+ "code": {
3033
+ "lines": [{
3034
+ "tokens": [{
3035
+ "content": "npm install -g pnpm",
3036
+ "props": {
3037
+ "style": {
3038
+ "color": "#D8DEE9FF"
3039
+ }
3040
+ }
3041
+ }]
3042
+ }],
3043
+ "lang": "bash"
3044
+ },
3045
+ "annotations": []
3046
+ }]
3047
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.h2, {
3048
+ id: "module-tools-配置文件",
3049
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, {
3050
+ className: "header-anchor",
3051
+ "aria-hidden": "true",
3052
+ href: "#module-tools-配置文件",
3053
+ children: "#"
3054
+ }), "Module Tools 配置文件"]
3055
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
3056
+ children: ["初始化的模块工程项目目录下提供了 Module Tools 的配置文件 —— ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
3057
+ children: "modern.config.(j|t)s"
3058
+ }), "。默认情况下,不需要做任何配置,因此 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
3059
+ children: "modern.config"
3060
+ }), " 配置文件不是必须存在的。"]
3061
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, {
3062
+ children: "初始化的配置文件的内容如下:"
3063
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CH.Code, {
3064
+ codeConfig: chCodeConfig,
3065
+ northPanel: {
3066
+ "tabs": [""],
3067
+ "active": "",
3068
+ "heightRatio": 1
3069
+ },
3070
+ files: [{
3071
+ "name": "",
3072
+ "focus": "",
3073
+ "code": {
3074
+ "lines": [{
3075
+ "tokens": [{
3076
+ "content": "// modern.config.ts",
3077
+ "props": {
3078
+ "style": {
3079
+ "color": "#616E88"
3080
+ }
3081
+ }
3082
+ }]
3083
+ }, {
3084
+ "tokens": [{
3085
+ "content": "import",
3086
+ "props": {
3087
+ "style": {
3088
+ "color": "#81A1C1"
3089
+ }
3090
+ }
3091
+ }, {
3092
+ "content": " ",
3093
+ "props": {
3094
+ "style": {
3095
+ "color": "#D8DEE9FF"
3096
+ }
3097
+ }
3098
+ }, {
3099
+ "content": "{",
3100
+ "props": {
3101
+ "style": {
3102
+ "color": "#ECEFF4"
3103
+ }
3104
+ }
3105
+ }, {
3106
+ "content": " ",
3107
+ "props": {
3108
+ "style": {
3109
+ "color": "#D8DEE9FF"
3110
+ }
3111
+ }
3112
+ }, {
3113
+ "content": "defineConfig",
3114
+ "props": {
3115
+ "style": {
3116
+ "color": "#D8DEE9"
3117
+ }
3118
+ }
3119
+ }, {
3120
+ "content": " ",
3121
+ "props": {
3122
+ "style": {
3123
+ "color": "#D8DEE9FF"
3124
+ }
3125
+ }
3126
+ }, {
3127
+ "content": "}",
3128
+ "props": {
3129
+ "style": {
3130
+ "color": "#ECEFF4"
3131
+ }
3132
+ }
3133
+ }, {
3134
+ "content": " ",
3135
+ "props": {
3136
+ "style": {
3137
+ "color": "#D8DEE9FF"
3138
+ }
3139
+ }
3140
+ }, {
3141
+ "content": "from",
3142
+ "props": {
3143
+ "style": {
3144
+ "color": "#81A1C1"
3145
+ }
3146
+ }
3147
+ }, {
3148
+ "content": " ",
3149
+ "props": {
3150
+ "style": {
3151
+ "color": "#D8DEE9FF"
3152
+ }
3153
+ }
3154
+ }, {
3155
+ "content": "'",
3156
+ "props": {
3157
+ "style": {
3158
+ "color": "#ECEFF4"
3159
+ }
3160
+ }
3161
+ }, {
3162
+ "content": "@modern-js/module-tools",
3163
+ "props": {
3164
+ "style": {
3165
+ "color": "#A3BE8C"
3166
+ }
3167
+ }
3168
+ }, {
3169
+ "content": "'",
3170
+ "props": {
3171
+ "style": {
3172
+ "color": "#ECEFF4"
3173
+ }
3174
+ }
3175
+ }, {
3176
+ "content": ";",
3177
+ "props": {
3178
+ "style": {
3179
+ "color": "#81A1C1"
3180
+ }
3181
+ }
3182
+ }]
3183
+ }, {
3184
+ "tokens": []
3185
+ }, {
3186
+ "tokens": [{
3187
+ "content": "export",
3188
+ "props": {
3189
+ "style": {
3190
+ "color": "#81A1C1"
3191
+ }
3192
+ }
3193
+ }, {
3194
+ "content": " ",
3195
+ "props": {
3196
+ "style": {
3197
+ "color": "#D8DEE9FF"
3198
+ }
3199
+ }
3200
+ }, {
3201
+ "content": "default",
3202
+ "props": {
3203
+ "style": {
3204
+ "color": "#81A1C1"
3205
+ }
3206
+ }
3207
+ }, {
3208
+ "content": " ",
3209
+ "props": {
3210
+ "style": {
3211
+ "color": "#D8DEE9FF"
3212
+ }
3213
+ }
3214
+ }, {
3215
+ "content": "defineConfig",
3216
+ "props": {
3217
+ "style": {
3218
+ "color": "#88C0D0"
3219
+ }
3220
+ }
3221
+ }, {
3222
+ "content": "(",
3223
+ "props": {
3224
+ "style": {
3225
+ "color": "#D8DEE9FF"
3226
+ }
3227
+ }
3228
+ }, {
3229
+ "content": "{}",
3230
+ "props": {
3231
+ "style": {
3232
+ "color": "#ECEFF4"
3233
+ }
3234
+ }
3235
+ }, {
3236
+ "content": ")",
3237
+ "props": {
3238
+ "style": {
3239
+ "color": "#D8DEE9FF"
3240
+ }
3241
+ }
3242
+ }, {
3243
+ "content": ";",
3244
+ "props": {
3245
+ "style": {
3246
+ "color": "#81A1C1"
3247
+ }
3248
+ }
3249
+ }]
3250
+ }],
3251
+ "lang": "typescript"
3252
+ },
3253
+ "annotations": []
3254
+ }]
3255
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CH.Code, {
3256
+ codeConfig: chCodeConfig,
3257
+ northPanel: {
3258
+ "tabs": [""],
3259
+ "active": "",
3260
+ "heightRatio": 1
3261
+ },
3262
+ files: [{
3263
+ "name": "",
3264
+ "focus": "",
3265
+ "code": {
3266
+ "lines": [{
3267
+ "tokens": [{
3268
+ "content": "// modern.config.js",
3269
+ "props": {
3270
+ "style": {
3271
+ "color": "#616E88"
3272
+ }
3273
+ }
3274
+ }]
3275
+ }, {
3276
+ "tokens": [{
3277
+ "content": "const",
3278
+ "props": {
3279
+ "style": {
3280
+ "color": "#81A1C1"
3281
+ }
3282
+ }
3283
+ }, {
3284
+ "content": " ",
3285
+ "props": {
3286
+ "style": {
3287
+ "color": "#D8DEE9FF"
3288
+ }
3289
+ }
3290
+ }, {
3291
+ "content": "{",
3292
+ "props": {
3293
+ "style": {
3294
+ "color": "#ECEFF4"
3295
+ }
3296
+ }
3297
+ }, {
3298
+ "content": " ",
3299
+ "props": {
3300
+ "style": {
3301
+ "color": "#D8DEE9FF"
3302
+ }
3303
+ }
3304
+ }, {
3305
+ "content": "defineConfig",
3306
+ "props": {
3307
+ "style": {
3308
+ "color": "#D8DEE9"
3309
+ }
3310
+ }
3311
+ }, {
3312
+ "content": " ",
3313
+ "props": {
3314
+ "style": {
3315
+ "color": "#D8DEE9FF"
3316
+ }
3317
+ }
3318
+ }, {
3319
+ "content": "}",
3320
+ "props": {
3321
+ "style": {
3322
+ "color": "#ECEFF4"
3323
+ }
3324
+ }
3325
+ }, {
3326
+ "content": " ",
3327
+ "props": {
3328
+ "style": {
3329
+ "color": "#D8DEE9FF"
3330
+ }
3331
+ }
3332
+ }, {
3333
+ "content": "=",
3334
+ "props": {
3335
+ "style": {
3336
+ "color": "#81A1C1"
3337
+ }
3338
+ }
3339
+ }, {
3340
+ "content": " ",
3341
+ "props": {
3342
+ "style": {
3343
+ "color": "#D8DEE9FF"
3344
+ }
3345
+ }
3346
+ }, {
3347
+ "content": "require",
3348
+ "props": {
3349
+ "style": {
3350
+ "color": "#88C0D0"
3351
+ }
3352
+ }
3353
+ }, {
3354
+ "content": "(",
3355
+ "props": {
3356
+ "style": {
3357
+ "color": "#D8DEE9FF"
3358
+ }
3359
+ }
3360
+ }, {
3361
+ "content": "'",
3362
+ "props": {
3363
+ "style": {
3364
+ "color": "#ECEFF4"
3365
+ }
3366
+ }
3367
+ }, {
3368
+ "content": "@modern-js/module-tools",
3369
+ "props": {
3370
+ "style": {
3371
+ "color": "#A3BE8C"
3372
+ }
3373
+ }
3374
+ }, {
3375
+ "content": "'",
3376
+ "props": {
3377
+ "style": {
3378
+ "color": "#ECEFF4"
3379
+ }
3380
+ }
3381
+ }, {
3382
+ "content": ")",
3383
+ "props": {
3384
+ "style": {
3385
+ "color": "#D8DEE9FF"
3386
+ }
3387
+ }
3388
+ }, {
3389
+ "content": ";",
3390
+ "props": {
3391
+ "style": {
3392
+ "color": "#81A1C1"
3393
+ }
3394
+ }
3395
+ }]
3396
+ }, {
3397
+ "tokens": []
3398
+ }, {
3399
+ "tokens": [{
3400
+ "content": "module",
3401
+ "props": {
3402
+ "style": {
3403
+ "color": "#8FBCBB"
3404
+ }
3405
+ }
3406
+ }, {
3407
+ "content": ".",
3408
+ "props": {
3409
+ "style": {
3410
+ "color": "#ECEFF4"
3411
+ }
3412
+ }
3413
+ }, {
3414
+ "content": "exports",
3415
+ "props": {
3416
+ "style": {
3417
+ "color": "#8FBCBB"
3418
+ }
3419
+ }
3420
+ }, {
3421
+ "content": " ",
3422
+ "props": {
3423
+ "style": {
3424
+ "color": "#D8DEE9FF"
3425
+ }
3426
+ }
3427
+ }, {
3428
+ "content": "=",
3429
+ "props": {
3430
+ "style": {
3431
+ "color": "#81A1C1"
3432
+ }
3433
+ }
3434
+ }, {
3435
+ "content": " ",
3436
+ "props": {
3437
+ "style": {
3438
+ "color": "#D8DEE9FF"
3439
+ }
3440
+ }
3441
+ }, {
3442
+ "content": "defineConfig",
3443
+ "props": {
3444
+ "style": {
3445
+ "color": "#88C0D0"
3446
+ }
3447
+ }
3448
+ }, {
3449
+ "content": "(",
3450
+ "props": {
3451
+ "style": {
3452
+ "color": "#D8DEE9FF"
3453
+ }
3454
+ }
3455
+ }, {
3456
+ "content": "{}",
3457
+ "props": {
3458
+ "style": {
3459
+ "color": "#ECEFF4"
3460
+ }
3461
+ }
3462
+ }, {
3463
+ "content": ")",
3464
+ "props": {
3465
+ "style": {
3466
+ "color": "#D8DEE9FF"
3467
+ }
3468
+ }
3469
+ }, {
3470
+ "content": ";",
3471
+ "props": {
3472
+ "style": {
3473
+ "color": "#81A1C1"
3474
+ }
3475
+ }
3476
+ }]
3477
+ }],
3478
+ "lang": "js"
3479
+ },
3480
+ "annotations": []
3481
+ }]
3482
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, {
3483
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.strong, {
3484
+ children: ["我们推荐使用 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, {
3485
+ children: "defineConfig"
3486
+ }), " 函数"]
3487
+ }), ",不过并不强制使用它。因此你也可以在配置文件中直接返回一个对象:"]
3488
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CH.Code, {
3489
+ codeConfig: chCodeConfig,
3490
+ northPanel: {
3491
+ "tabs": [""],
3492
+ "active": "",
3493
+ "heightRatio": 1
3494
+ },
3495
+ files: [{
3496
+ "name": "",
3497
+ "focus": "",
3498
+ "code": {
3499
+ "lines": [{
3500
+ "tokens": [{
3501
+ "content": "// modern.config.ts",
3502
+ "props": {
3503
+ "style": {
3504
+ "color": "#616E88"
3505
+ }
3506
+ }
3507
+ }]
3508
+ }, {
3509
+ "tokens": [{
3510
+ "content": "export",
3511
+ "props": {
3512
+ "style": {
3513
+ "color": "#81A1C1"
3514
+ }
3515
+ }
3516
+ }, {
3517
+ "content": " ",
3518
+ "props": {
3519
+ "style": {
3520
+ "color": "#D8DEE9FF"
3521
+ }
3522
+ }
3523
+ }, {
3524
+ "content": "default",
3525
+ "props": {
3526
+ "style": {
3527
+ "color": "#81A1C1"
3528
+ }
3529
+ }
3530
+ }, {
3531
+ "content": " ",
3532
+ "props": {
3533
+ "style": {
3534
+ "color": "#D8DEE9FF"
3535
+ }
3536
+ }
3537
+ }, {
3538
+ "content": "{}",
3539
+ "props": {
3540
+ "style": {
3541
+ "color": "#ECEFF4"
3542
+ }
3543
+ }
3544
+ }, {
3545
+ "content": ";",
3546
+ "props": {
3547
+ "style": {
3548
+ "color": "#81A1C1"
3549
+ }
3550
+ }
3551
+ }]
3552
+ }],
3553
+ "lang": "typescript"
3554
+ },
3555
+ "annotations": []
3556
+ }]
3557
+ }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CH.Code, {
3558
+ codeConfig: chCodeConfig,
3559
+ northPanel: {
3560
+ "tabs": [""],
3561
+ "active": "",
3562
+ "heightRatio": 1
3563
+ },
3564
+ files: [{
3565
+ "name": "",
3566
+ "focus": "",
3567
+ "code": {
3568
+ "lines": [{
3569
+ "tokens": [{
3570
+ "content": "// modern.config.js",
3571
+ "props": {
3572
+ "style": {
3573
+ "color": "#616E88"
3574
+ }
3575
+ }
3576
+ }]
3577
+ }, {
3578
+ "tokens": [{
3579
+ "content": "module",
3580
+ "props": {
3581
+ "style": {
3582
+ "color": "#8FBCBB"
3583
+ }
3584
+ }
3585
+ }, {
3586
+ "content": ".",
3587
+ "props": {
3588
+ "style": {
3589
+ "color": "#ECEFF4"
3590
+ }
3591
+ }
3592
+ }, {
3593
+ "content": "exports",
3594
+ "props": {
3595
+ "style": {
3596
+ "color": "#8FBCBB"
3597
+ }
3598
+ }
3599
+ }, {
3600
+ "content": " ",
3601
+ "props": {
3602
+ "style": {
3603
+ "color": "#D8DEE9FF"
3604
+ }
3605
+ }
3606
+ }, {
3607
+ "content": "=",
3608
+ "props": {
3609
+ "style": {
3610
+ "color": "#81A1C1"
3611
+ }
3612
+ }
3613
+ }, {
3614
+ "content": " ",
3615
+ "props": {
3616
+ "style": {
3617
+ "color": "#D8DEE9FF"
3618
+ }
3619
+ }
3620
+ }, {
3621
+ "content": "{}",
3622
+ "props": {
3623
+ "style": {
3624
+ "color": "#ECEFF4"
3625
+ }
3626
+ }
3627
+ }, {
3628
+ "content": ";",
3629
+ "props": {
3630
+ "style": {
3631
+ "color": "#81A1C1"
3632
+ }
3633
+ }
3634
+ }]
3635
+ }],
3636
+ "lang": "js"
3637
+ },
3638
+ "annotations": []
3639
+ }]
3640
+ })]
3641
+ });
3642
+ }
3643
+ function MDXContent() {
3644
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3645
+ var _ref = props.components || {},
3646
+ MDXLayout = _ref.wrapper;
3647
+ return MDXLayout ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MDXLayout, Object.assign({}, props, {
3648
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_createMdxContent, props)
3649
+ })) : _createMdxContent(props);
3650
+ }
3651
+ _c = MDXContent;
3652
+ /* harmony default export */ __webpack_exports__["default"] = (MDXContent);
3653
+ function _missingMdxReference(id, component, place) {
3654
+ throw new Error("Expected " + (component ? "component" : "object") + " `" + id + "` to be defined: you likely forgot to import, pass, or provide it." + (place ? "\nIt’s referenced in your code at `" + place + "` in `/Users/bytedance/modern.js/website/module-tools/docs/zh/guide/basic/before-getting-started.md`" : ""));
3655
+ }
3656
+ var _c;
3657
+ __webpack_require__.$Refresh$.register(_c, "MDXContent");
3658
+
3659
+ /***/ })
3660
+
3661
+ }]);
3662
+ //# sourceMappingURL=guide_basic_before-getting-started.js.map