@varlet/cli 1.27.20 → 2.0.0-alpha.1663499244572

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 (232) hide show
  1. package/LICENCE +21 -21
  2. package/README.en-US.md +401 -401
  3. package/README.md +396 -396
  4. package/lib/commands/build.d.ts +1 -1
  5. package/lib/commands/build.js +18 -67
  6. package/lib/commands/changelog.d.ts +6 -6
  7. package/lib/commands/changelog.js +26 -27
  8. package/lib/commands/commitLint.d.ts +1 -1
  9. package/lib/commands/commitLint.js +50 -21
  10. package/lib/commands/compile.d.ts +7 -5
  11. package/lib/commands/compile.js +43 -119
  12. package/lib/commands/create.d.ts +8 -3
  13. package/lib/commands/create.js +90 -132
  14. package/lib/commands/dev.d.ts +5 -3
  15. package/lib/commands/dev.js +44 -123
  16. package/lib/commands/gen.d.ts +8 -1
  17. package/lib/commands/gen.js +85 -112
  18. package/lib/commands/lint.d.ts +1 -1
  19. package/lib/commands/lint.js +48 -123
  20. package/lib/commands/preview.d.ts +1 -1
  21. package/lib/commands/preview.js +23 -74
  22. package/lib/commands/release.d.ts +5 -3
  23. package/lib/commands/release.js +132 -270
  24. package/lib/commands/test.d.ts +7 -0
  25. package/lib/commands/test.js +26 -0
  26. package/lib/commands/vite.d.ts +3 -0
  27. package/lib/commands/vite.js +20 -0
  28. package/lib/compiler/compileModule.d.ts +5 -5
  29. package/lib/compiler/compileModule.js +79 -186
  30. package/lib/compiler/compileSFC.d.ts +2 -2
  31. package/lib/compiler/compileSFC.js +86 -132
  32. package/lib/compiler/compileScript.d.ts +17 -17
  33. package/lib/compiler/compileScript.js +152 -202
  34. package/lib/compiler/compileSiteEntry.d.ts +13 -13
  35. package/lib/compiler/compileSiteEntry.js +140 -237
  36. package/lib/compiler/compileStyle.d.ts +11 -11
  37. package/lib/compiler/compileStyle.js +43 -101
  38. package/lib/compiler/compileTemplateHighlight.d.ts +10 -10
  39. package/lib/compiler/compileTemplateHighlight.js +145 -193
  40. package/lib/compiler/compileTypes.d.ts +2 -2
  41. package/lib/compiler/compileTypes.js +49 -88
  42. package/lib/config/babel.config.d.ts +2 -2
  43. package/lib/config/babel.config.js +30 -31
  44. package/lib/config/babel.sfc.transform.d.ts +1 -1
  45. package/lib/config/babel.sfc.transform.js +18 -18
  46. package/lib/config/varlet.config.d.ts +1 -1
  47. package/lib/config/varlet.config.js +23 -24
  48. package/lib/config/vite.config.d.ts +5 -5
  49. package/lib/config/vite.config.js +157 -162
  50. package/lib/config/vitest.config.d.ts +2 -0
  51. package/lib/config/vitest.config.js +28 -0
  52. package/lib/index.d.ts +2 -2
  53. package/lib/index.js +84 -83
  54. package/lib/shared/constant.d.ts +44 -43
  55. package/lib/shared/constant.js +51 -50
  56. package/lib/shared/fsUtils.d.ts +12 -12
  57. package/lib/shared/fsUtils.js +61 -108
  58. package/lib/shared/logger.d.ts +8 -7
  59. package/lib/shared/logger.js +23 -20
  60. package/package.json +20 -17
  61. package/preset.js +3 -3
  62. package/site/components/button/Button.vue +106 -84
  63. package/site/components/button/button.less +183 -183
  64. package/site/components/button/index.ts +10 -10
  65. package/site/components/button/props.ts +78 -70
  66. package/site/components/cell/Cell.vue +54 -42
  67. package/site/components/cell/cell.less +78 -74
  68. package/site/components/cell/index.ts +10 -10
  69. package/site/components/cell/props.ts +27 -27
  70. package/site/components/code-example/CodeExample.vue +137 -143
  71. package/site/components/code-example/codeExample.less +41 -41
  72. package/site/components/code-example/index.ts +10 -10
  73. package/site/components/context/index.ts +21 -17
  74. package/site/components/context/lock.ts +92 -103
  75. package/site/components/context/zIndex.ts +20 -20
  76. package/site/components/icon/Icon.vue +75 -68
  77. package/site/components/icon/icon.less +26 -26
  78. package/site/components/icon/index.ts +10 -10
  79. package/site/components/icon/props.ts +24 -24
  80. package/site/components/loading/Loading.vue +84 -55
  81. package/site/components/loading/index.ts +10 -10
  82. package/site/components/loading/loading.less +505 -420
  83. package/site/components/loading/props.ts +42 -37
  84. package/site/components/popup/Popup.tsx +102 -0
  85. package/site/components/popup/index.ts +10 -0
  86. package/site/components/popup/popup.less +125 -0
  87. package/site/components/popup/props.ts +63 -0
  88. package/site/components/progress/Progress.vue +112 -108
  89. package/site/components/progress/index.ts +10 -10
  90. package/site/components/progress/progress.less +101 -98
  91. package/site/components/progress/props.ts +55 -55
  92. package/site/components/ripple/index.ts +188 -167
  93. package/site/components/ripple/ripple.less +20 -17
  94. package/site/components/snackbar/Snackbar.vue +41 -38
  95. package/site/components/snackbar/core.vue +132 -117
  96. package/site/components/snackbar/index.tsx +270 -270
  97. package/site/components/snackbar/props.ts +97 -94
  98. package/site/components/snackbar/snackbar.less +135 -135
  99. package/site/components/styles/common.less +64 -64
  100. package/site/components/styles/elevation.less +126 -126
  101. package/site/components/styles/var.less +27 -27
  102. package/site/components/utils/components.ts +117 -69
  103. package/site/components/utils/elements.ts +102 -85
  104. package/site/index.html +49 -49
  105. package/site/mobile/App.vue +291 -291
  106. package/site/mobile/components/AppHome.vue +134 -134
  107. package/site/mobile/components/AppType.vue +22 -22
  108. package/site/mobile/components/app-bar/AppBar.vue +65 -69
  109. package/site/mobile/components/app-bar/appBar.less +57 -56
  110. package/site/mobile/components/app-bar/index.ts +10 -10
  111. package/site/mobile/components/app-bar/props.ts +25 -25
  112. package/site/mobile/main.ts +78 -74
  113. package/site/mobile.html +41 -41
  114. package/site/module.d.ts +5 -5
  115. package/site/pc/App.vue +43 -43
  116. package/site/pc/Layout.vue +423 -397
  117. package/site/pc/components/AnimationBox.vue +33 -45
  118. package/site/pc/components/AppHeader.vue +368 -355
  119. package/site/pc/components/AppMobile.vue +60 -54
  120. package/site/pc/components/AppSidebar.vue +143 -134
  121. package/site/pc/components/LogoAnimation.vue +117 -119
  122. package/site/pc/floating.ts +9 -9
  123. package/site/pc/main.ts +100 -94
  124. package/site/pc/pages/index/index.less +176 -231
  125. package/site/pc/pages/index/index.vue +130 -145
  126. package/site/pc/pages/index/locale/en-US.ts +1 -5
  127. package/site/pc/pages/index/locale/zh-CN.ts +1 -5
  128. package/site/tsconfig.json +11 -11
  129. package/site/useProgress.ts +72 -75
  130. package/site/utils.ts +167 -153
  131. package/template/create/__tests__/index.spec.ejs +8 -0
  132. package/{lib/config/jest.media.mock.d.ts → template/create/docs/en-US.md} +0 -0
  133. package/{lib/config/jest.style.mock.d.ts → template/create/docs/zh-CN.md} +0 -0
  134. package/template/create/example/index.ejs +15 -0
  135. package/template/create/example/locale/en-US.ts +3 -0
  136. package/{generators/config/i18n/tsx/src/button → template/create}/example/locale/index.ts +23 -23
  137. package/template/create/example/locale/zh-CN.ts +3 -0
  138. package/template/create/index.ejs +12 -0
  139. package/template/create/less.ejs +3 -0
  140. package/template/create/props.ts +1 -0
  141. package/template/create/tsx.ejs +13 -0
  142. package/template/create/vue.ejs +17 -0
  143. package/{generators → template/generators}/base/.prettierignore +9 -9
  144. package/{generators → template/generators}/base/.prettierrc +5 -5
  145. package/{generators → template/generators}/base/README.md +82 -82
  146. package/{generators → template/generators}/base/babel.config.js +10 -10
  147. package/{generators → template/generators}/base/public/highlight.css +1 -1
  148. package/{generators → template/generators}/base/public/logo.svg +1 -1
  149. package/{generators → template/generators}/base/shims/shims-md.d.ts +4 -4
  150. package/{generators → template/generators}/base/shims/shims-vue.d.ts +6 -6
  151. package/{generators → template/generators}/base/tsconfig.json +13 -13
  152. package/{generators → template/generators}/config/default/base/docs/home.zh-CN.md +10 -10
  153. package/{generators → template/generators}/config/default/base/package.json +105 -105
  154. package/{generators/config/i18n → template/generators/config/default}/base/types/basicComponent.d.ts +7 -7
  155. package/{generators/config/i18n → template/generators/config/default}/base/types/button.d.ts +12 -12
  156. package/{generators → template/generators}/config/default/base/types/index.d.ts +6 -6
  157. package/{generators → template/generators}/config/default/base/varlet.config.js +110 -110
  158. package/{generators → template/generators}/config/default/sfc/src/button/Button.vue +30 -30
  159. package/{generators/config/default/tsx → template/generators/config/default/sfc}/src/button/__tests__/index.spec.js +7 -7
  160. package/{generators/config/default/tsx → template/generators/config/default/sfc}/src/button/button.less +14 -14
  161. package/{generators/config/default/tsx → template/generators/config/default/sfc}/src/button/docs/zh-CN.md +47 -47
  162. package/{generators → template/generators}/config/default/sfc/src/button/example/BasicUse.vue +7 -7
  163. package/{generators → template/generators}/config/default/sfc/src/button/example/ModifyColor.vue +7 -7
  164. package/{generators/config/default/tsx → template/generators/config/default/sfc}/src/button/example/index.vue +13 -13
  165. package/{generators → template/generators}/config/default/sfc/src/button/index.ts +10 -10
  166. package/{generators → template/generators}/config/default/tsx/src/button/Button.tsx +29 -31
  167. package/{generators/config/default/sfc → template/generators/config/default/tsx}/src/button/__tests__/index.spec.js +7 -7
  168. package/{generators/config/i18n → template/generators/config/default}/tsx/src/button/button.less +14 -14
  169. package/{generators/config/default/sfc → template/generators/config/default/tsx}/src/button/docs/zh-CN.md +47 -47
  170. package/{generators → template/generators}/config/default/tsx/src/button/example/BasicUse.vue +7 -7
  171. package/{generators → template/generators}/config/default/tsx/src/button/example/ModifyColor.vue +7 -7
  172. package/{generators/config/default/sfc → template/generators/config/default/tsx}/src/button/example/index.vue +13 -13
  173. package/{generators → template/generators}/config/default/tsx/src/button/index.ts +10 -10
  174. package/{generators → template/generators}/config/i18n/base/docs/home.en-US.md +11 -11
  175. package/{generators → template/generators}/config/i18n/base/docs/home.zh-CN.md +10 -10
  176. package/{generators → template/generators}/config/i18n/base/package.json +105 -105
  177. package/{generators/config/default → template/generators/config/i18n}/base/types/basicComponent.d.ts +7 -7
  178. package/{generators/config/default → template/generators/config/i18n}/base/types/button.d.ts +12 -12
  179. package/{generators → template/generators}/config/i18n/base/types/index.d.ts +7 -7
  180. package/{generators → template/generators}/config/i18n/base/types/locale.d.ts +24 -24
  181. package/{generators → template/generators}/config/i18n/base/varlet.config.js +122 -122
  182. package/{generators → template/generators}/config/i18n/sfc/src/button/Button.vue +36 -36
  183. package/{generators → template/generators}/config/i18n/sfc/src/button/__tests__/index.spec.js +7 -7
  184. package/{generators → template/generators}/config/i18n/sfc/src/button/button.less +14 -14
  185. package/{generators → template/generators}/config/i18n/sfc/src/button/docs/en-US.md +34 -34
  186. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/button/docs/zh-CN.md +34 -34
  187. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/button/example/BasicUse.vue +11 -11
  188. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/button/example/ModifyColor.vue +11 -11
  189. package/{generators → template/generators}/config/i18n/sfc/src/button/example/index.vue +13 -13
  190. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/button/example/locale/en-US.ts +5 -5
  191. package/{generators → template/generators}/config/i18n/sfc/src/button/example/locale/index.ts +23 -23
  192. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/button/example/locale/zh-CN.ts +5 -5
  193. package/{generators → template/generators}/config/i18n/sfc/src/button/index.ts +10 -10
  194. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/locale/__tests__/index.spec.js +51 -51
  195. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/locale/docs/en-US.md +26 -26
  196. package/{generators → template/generators}/config/i18n/sfc/src/locale/docs/zh-CN.md +25 -25
  197. package/{generators → template/generators}/config/i18n/sfc/src/locale/en-US.d.ts +5 -5
  198. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/locale/en-US.ts +7 -7
  199. package/{generators → template/generators}/config/i18n/sfc/src/locale/index.ts +67 -67
  200. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/locale/zh-CN.d.ts +5 -5
  201. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/locale/zh-CN.ts +7 -7
  202. package/{generators → template/generators}/config/i18n/tsx/src/button/Button.tsx +33 -35
  203. package/{generators → template/generators}/config/i18n/tsx/src/button/__tests__/index.spec.js +7 -7
  204. package/{generators/config/default/sfc → template/generators/config/i18n/tsx}/src/button/button.less +14 -14
  205. package/{generators → template/generators}/config/i18n/tsx/src/button/docs/en-US.md +34 -34
  206. package/{generators/config/i18n/sfc → template/generators/config/i18n/tsx}/src/button/docs/zh-CN.md +34 -34
  207. package/{generators/config/i18n/sfc → template/generators/config/i18n/tsx}/src/button/example/BasicUse.vue +11 -11
  208. package/{generators/config/i18n/sfc → template/generators/config/i18n/tsx}/src/button/example/ModifyColor.vue +11 -11
  209. package/{generators → template/generators}/config/i18n/tsx/src/button/example/index.vue +13 -13
  210. package/{generators/config/i18n/sfc → template/generators/config/i18n/tsx}/src/button/example/locale/en-US.ts +5 -5
  211. package/template/generators/config/i18n/tsx/src/button/example/locale/index.ts +23 -0
  212. package/{generators/config/i18n/sfc → template/generators/config/i18n/tsx}/src/button/example/locale/zh-CN.ts +5 -5
  213. package/{generators → template/generators}/config/i18n/tsx/src/button/index.ts +10 -10
  214. package/{generators/config/i18n/sfc → template/generators/config/i18n/tsx}/src/locale/__tests__/index.spec.js +51 -51
  215. package/{generators/config/i18n/sfc → template/generators/config/i18n/tsx}/src/locale/docs/en-US.md +26 -26
  216. package/{generators → template/generators}/config/i18n/tsx/src/locale/docs/zh-CN.md +25 -25
  217. package/{generators → template/generators}/config/i18n/tsx/src/locale/en-US.d.ts +5 -5
  218. package/{generators/config/i18n/sfc → template/generators/config/i18n/tsx}/src/locale/en-US.ts +7 -7
  219. package/{generators → template/generators}/config/i18n/tsx/src/locale/index.ts +67 -67
  220. package/{generators/config/i18n/sfc → template/generators/config/i18n/tsx}/src/locale/zh-CN.d.ts +5 -5
  221. package/{generators/config/i18n/sfc → template/generators/config/i18n/tsx}/src/locale/zh-CN.ts +7 -7
  222. package/tsconfig.json +15 -14
  223. package/varlet.default.config.js +137 -15
  224. package/lib/commands/jest.d.ts +0 -8
  225. package/lib/commands/jest.js +0 -81
  226. package/lib/config/jest.config.d.ts +0 -1
  227. package/lib/config/jest.config.js +0 -36
  228. package/lib/config/jest.media.mock.js +0 -2
  229. package/lib/config/jest.style.mock.js +0 -2
  230. package/site/mobile/components/styles/common.less +0 -64
  231. package/site/mobile/components/styles/elevation.less +0 -126
  232. package/site/mobile/components/styles/var.less +0 -27
package/README.en-US.md CHANGED
@@ -1,402 +1,402 @@
1
- # @varlet/cli
2
-
3
- The out-of-the-box `Vue3 component library` rapid prototyping tool provides a series of commands and tools to solve the problem of component library development
4
-
5
- ### Feature
6
-
7
- - 1.Out-of-the-box component library development environment
8
- - 2.Out-of-the-box component library compilation tool, support exporting `esm` and `umd` two module codes
9
- - 3.Component library document site based on configuration files, support Baidu statistics and theme customization
10
- - 4.Supports `single file component (sfc)` and `tsx, jsx` two styles of component library writing styles
11
- - 5.Code inspection tool out of the box
12
- - 6.Unit testing tools out of the box
13
- - 7.Out-of-the-box code publishing tool, publish to npm and github, and automatically generate a change log
14
- - 8.Support `Typescript`
15
- - 9.Support `Dark Mode`
16
- - 10.Based on `pnpm`
17
-
18
- ### Quickstart
19
-
20
- `@varlet/cli` has built-in `single file component (sfc)` and `tsx, jsx` two styles of component library project templates, which can be directly generated by the `gen` command.
21
- To help users directly enter the development of the component itself, it is recommended to use `pnpm` as a package management tool.
22
-
23
- ```shell
24
- # Install command line tools
25
- pnpm add @varlet/cli -g
26
- # Use the gen command to generate the project
27
- varlet-cli gen projectName
28
- cd projectName
29
- pnpm install
30
- pnpm dev
31
- ```
32
-
33
- Then by simply modifying some basic information of the component library template,
34
- you can start the development of the component library
35
-
36
- ## Advanced customization
37
-
38
- ### Configuration file
39
-
40
- The `varlet.config.js` in the project root directory is used to manage the specific details of the entire component library project
41
-
42
- | Parameter | Description | Type | Default |
43
- | ----- | -------------- | -------- | ---------- |
44
- | `host` | Development server host | _number_ | `localhost` |
45
- | `port` | Development server port | _number_ | `8080` |
46
- | `name` | Full name of the component library | _string_ | `Varlet` |
47
- | `namespace` | Component library namespace, Will be used as a component prefix | _string_ | `var` |
48
- | `title` | The title of the component library in the document | _string_ | `VARLET` |
49
- | `logo` | The logo of the component library in the document | _string_ | `-` |
50
- | `defaultLanguage` | Document default language | _string_ | `zh-CN` |
51
- | `useMobile` | Whether to display the right mobile phone preview | _boolean_ | `false` |
52
- | `themes` | Document themes | _SiteThemes_ | `-` |
53
- | `darkThemes` | Document dark mode themes | _SiteThemes_ | `-` |
54
- | `highlight` | Document code snippet style related | _SiteHighlight_ | `-` |
55
- | `analysis` | Document statistics related | _SiteAnalysis_ | `-` |
56
- | `pc` | PC-side document structure configuration | _SitePC_ | `-` |
57
- | `mobile` | Mobile document structure configuration | _SiteMobile_ | `-` |
58
- | `moduleCompatible` | Module compatible config | _Record<string, string>_ | `-` |
59
-
60
- #### Module Compatible
61
-
62
- Some external dependencies may need to be compatible with module syntax to achieve the purpose of compiling correctly to `commonjs` and `esmodule`. For example, the wording of `esmodule` of `dayjs` is
63
-
64
- ```js
65
- import dayjs from 'dayjs/esm'
66
- ```
67
-
68
- In order to build `commonjs`, the writing method is
69
-
70
- ```js
71
- import * as dayjs from 'dayjs'
72
- ```
73
-
74
- In the project, we embrace the first way of writing the `esmodule` module, and make the following configuration for adaptation
75
-
76
- ```js
77
- // varlet.config.js
78
- module.exports = {
79
- moduleCompatible: {
80
- "import dayjs from 'dayjs/esm'\n": "import * as dayjs from 'dayjs'\n"
81
- }
82
- }
83
- ```
84
-
85
- #### SiteThemes
86
-
87
- Theme variables are related,
88
- because the default theme variables may be modified from time to time,
89
- subject to the theme of the `varlet` official document
90
-
91
- | Variable |
92
- | ----- |
93
- | `color-body` |
94
- | `color-bar` |
95
- | `color-sub-bar` |
96
- | `color-text` |
97
- | `color-sub-text` |
98
- | `color-border` |
99
- | `color-shadow` |
100
- | `color-introduce-border` |
101
- | `color-primary` |
102
- | `color-link` |
103
- | `color-type` |
104
- | `color-progress` |
105
- | `color-progress-track` |
106
- | `color-side-bar` |
107
- | `color-side-bar-active-background` |
108
- | `color-app-bar` |
109
- | `color-nav-button-hover-background` |
110
- | `color-mobile-cell-hover` |
111
- | `color-pc-language-active` |
112
- | `color-pc-language-active-background` |
113
- | `color-mobile-language-active` |
114
- | `color-mobile-language-active-background` |
115
- | `color-hl-background` |
116
- | `color-hl-code` |
117
- | `color-hl-border` |
118
- | `color-hl-group-a` |
119
- | `color-hl-group-b` |
120
- | `color-hl-group-c` |
121
- | `color-hl-group-d` |
122
- | `color-hl-group-e` |
123
- | `color-hl-group-f` |
124
- | `color-hl-group-g` |
125
- | `color-hl-group-h` |
126
- | `color-hl-group-i` |
127
-
128
- #### SiteHighlight
129
-
130
- Code snippets are highlighted, based on [highlight.js](https://highlightjs.org/)
131
-
132
- | Parameter | Description | Type | Default |
133
- | ----- | -------------- | -------- | ---------- |
134
- | `style` | highlight css link | _string_ | `-` |
135
-
136
- #### SiteAnalysis
137
-
138
- Statistics related to buried points
139
-
140
- | Parameter | Description | Type | Default |
141
- | ----- | -------------- | -------- | ---------- |
142
- | `baidu` | Baidu statistics script address | _string_ | `-` |
143
-
144
- #### SitePC, SiteMobile
145
-
146
- The document structure is partly related, and the example configuration is as follows
147
-
148
- ```js
149
- module.exports = {
150
- defaultLanguage: 'en-US',
151
- pc: {
152
- redirect: '/home',
153
- title: {
154
- 'en-US': 'A components library',
155
- },
156
- header: {
157
- darkMode: null,
158
- i18n: null,
159
- github: 'https://github.com/varletjs/varlet',
160
- },
161
- menu: [
162
- {
163
- text: {
164
- 'en-US': 'Develop Guide',
165
- },
166
- // Sidebar menu directory
167
- type: 1,
168
- },
169
- {
170
- text: {
171
- 'en-US': 'Basic Intro',
172
- },
173
- doc: 'home',
174
- // Index the md document in the root directory of the project
175
- type: 3,
176
- },
177
- {
178
- text: {
179
- 'en-US': 'Basic Component',
180
- },
181
- type: 1,
182
- },
183
- {
184
- text: {
185
- 'en-US': 'Button',
186
- },
187
- doc: 'button',
188
- // Md document in the root directory of the index component
189
- type: 2,
190
- },
191
- ],
192
- },
193
- mobile: {
194
- redirect: '/home',
195
- title: {
196
- 'en-US': 'A components library',
197
- },
198
- header: {
199
- darkMode: null,
200
- i18n: null,
201
- playground: null,
202
- github: 'https://github.com/varletjs/varlet',
203
- },
204
- },
205
- }
206
- ```
207
-
208
- ### Commands Intro
209
-
210
- #### Start the development server
211
-
212
- ```shell
213
- varlet-cli dev
214
- ```
215
-
216
- #### Build documentation site
217
-
218
- ```shell
219
- varlet-cli build
220
- ```
221
-
222
- #### Preview documentation site
223
-
224
- ```shell
225
- varlet-cli preview
226
- ```
227
-
228
- #### Build component library code
229
-
230
- ```shell
231
- varlet-cli compile
232
- ```
233
-
234
- #### Perform all unit tests
235
-
236
- ```shell
237
- varlet-cli test
238
- ```
239
-
240
- #### Execute unit tests in watch mode
241
-
242
- ```shell
243
- varlet-cli test -w
244
- or
245
- varlet-cli test -wa
246
- ```
247
-
248
- #### Lint code
249
-
250
- ```shell
251
- varlet-cli lint
252
- ```
253
-
254
- #### Lint commit message
255
-
256
- ```shell
257
- varlet-cli commit-lint
258
- ```
259
-
260
- #### Generate changelog
261
-
262
- ```shell
263
- varlet-cli changelog
264
- ```
265
-
266
- #### Release component library
267
-
268
- ```shell
269
- varlet-cli release
270
- ```
271
-
272
- #### Generate a project template
273
- ```shell
274
- varlet-cli gen <projectName>
275
- ```
276
-
277
- ### babel
278
-
279
- To configure `babel`, first specify the target browser in `package.json`
280
-
281
- ```json
282
- {
283
- "browserslist": [
284
- "Chrome >= 51",
285
- "iOS >= 10"
286
- ]
287
- }
288
- ```
289
-
290
- create `babel.config,js`
291
-
292
- ```js
293
- // babel.config.js
294
- module.exports = {
295
- presets: [
296
- [
297
- '@varlet/cli/preset',
298
- {
299
- loose: process.env.NODE_ENV === 'compile',
300
- },
301
- ],
302
- ],
303
- }
304
- ```
305
-
306
- ### git and npm
307
-
308
- #### git-hook
309
-
310
- `simple-git-hooks`, `lint-staged` cooperate with `eslint`, `stylelint`, `varlet-cli commit-lint` to check before commit,
311
- `package.json` configuration is as follows
312
-
313
- ```json
314
- {
315
- "simple-git-hooks": {
316
- "pre-commit": "pnpm exec lint-staged --allow-empty --concurrent false",
317
- "commit-msg": "npx --no-install varlet-cli commit-lint $1"
318
- },
319
- "lint-staged": {
320
- "*.{ts,tsx,js,vue,less}": "prettier --write",
321
- "*.{ts,tsx,js,vue}": "eslint --fix",
322
- "*.{vue,css,less}": "stylelint --fix"
323
- },
324
- "eslintConfig": {
325
- "root": true,
326
- "ignorePatterns": [
327
- "es/**",
328
- "umd/**",
329
- "site/**",
330
- "public/**",
331
- "src/*/__tests__/**",
332
- ".varlet/**"
333
- ],
334
- "extends": [
335
- "@varlet"
336
- ]
337
- },
338
- "stylelint": {
339
- "extends": [
340
- "@varlet/stylelint-config"
341
- ],
342
- "ignoreFiles": [
343
- "es/**",
344
- "umd/**",
345
- "site/**",
346
- "coverage/**",
347
- "public/**",
348
- "highlight/**"
349
- ]
350
- }
351
- }
352
- ```
353
-
354
- Mount Git Hooks
355
-
356
- ```shell
357
- npx simple-git-hooks
358
- ```
359
-
360
- create `.prettierignore`
361
-
362
- ```text
363
- // .prettierignore
364
- coverage/**
365
- es/**
366
- umd/**
367
- site/**
368
- public/**
369
- src/*/__tests__/**
370
- *.md
371
- ```
372
-
373
- ### typescript
374
-
375
- create `tsconfig.json`
376
-
377
- ```json
378
- {
379
- "compilerOptions": {
380
- "strict": true,
381
- "downlevelIteration": true,
382
- "declaration": true,
383
- "skipLibCheck": true,
384
- "esModuleInterop": true,
385
- "allowJs": true,
386
- "lib": ["esnext", "dom"],
387
- "allowSyntheticDefaultImports": true,
388
- "jsx": "preserve"
389
- }
390
- }
391
- ```
392
-
393
- #### Note before release
394
-
395
- - 1.The registry of npm must set to the official npm mirror
396
- - 2.The npm must execute the login command for user login
397
-
398
- ### Contributors
399
-
400
- <a href="https://github.com/varletjs/varlet/graphs/contributors">
401
- <img src="https://contrib.rocks/image?repo=haoziqaq/varlet" />
1
+ # @varlet/cli
2
+
3
+ The out-of-the-box `Vue3 component library` rapid prototyping tool provides a series of commands and tools to solve the problem of component library development
4
+
5
+ ### Feature
6
+
7
+ - 1.Out-of-the-box component library development environment
8
+ - 2.Out-of-the-box component library compilation tool, support exporting `esm` and `umd` two module codes
9
+ - 3.Component library document site based on configuration files, support Baidu statistics and theme customization
10
+ - 4.Supports `single file component (sfc)` and `tsx, jsx` two styles of component library writing styles
11
+ - 5.Code inspection tool out of the box
12
+ - 6.Unit testing tools out of the box
13
+ - 7.Out-of-the-box code publishing tool, publish to npm and github, and automatically generate a change log
14
+ - 8.Support `Typescript`
15
+ - 9.Support `Dark Mode`
16
+ - 10.Based on `pnpm`
17
+
18
+ ### Quickstart
19
+
20
+ `@varlet/cli` has built-in `single file component (sfc)` and `tsx, jsx` two styles of component library project templates, which can be directly generated by the `gen` command.
21
+ To help users directly enter the development of the component itself, it is recommended to use `pnpm` as a package management tool.
22
+
23
+ ```shell
24
+ # Install command line tools
25
+ pnpm add @varlet/cli -g
26
+ # Use the gen command to generate the project
27
+ varlet-cli gen projectName
28
+ cd projectName
29
+ pnpm install
30
+ pnpm dev
31
+ ```
32
+
33
+ Then by simply modifying some basic information of the component library template,
34
+ you can start the development of the component library
35
+
36
+ ## Advanced customization
37
+
38
+ ### Configuration file
39
+
40
+ The `varlet.config.js` in the project root directory is used to manage the specific details of the entire component library project
41
+
42
+ | Parameter | Description | Type | Default |
43
+ | ----- | -------------- | -------- | ---------- |
44
+ | `host` | Development server host | _number_ | `localhost` |
45
+ | `port` | Development server port | _number_ | `8080` |
46
+ | `name` | Full name of the component library | _string_ | `Varlet` |
47
+ | `namespace` | Component library namespace, Will be used as a component prefix | _string_ | `var` |
48
+ | `title` | The title of the component library in the document | _string_ | `VARLET` |
49
+ | `logo` | The logo of the component library in the document | _string_ | `-` |
50
+ | `defaultLanguage` | Document default language | _string_ | `zh-CN` |
51
+ | `useMobile` | Whether to display the right mobile phone preview | _boolean_ | `false` |
52
+ | `themes` | Document themes | _SiteThemes_ | `-` |
53
+ | `darkThemes` | Document dark mode themes | _SiteThemes_ | `-` |
54
+ | `highlight` | Document code snippet style related | _SiteHighlight_ | `-` |
55
+ | `analysis` | Document statistics related | _SiteAnalysis_ | `-` |
56
+ | `pc` | PC-side document structure configuration | _SitePC_ | `-` |
57
+ | `mobile` | Mobile document structure configuration | _SiteMobile_ | `-` |
58
+ | `moduleCompatible` | Module compatible config | _Record<string, string>_ | `-` |
59
+
60
+ #### Module Compatible
61
+
62
+ Some external dependencies may need to be compatible with module syntax to achieve the purpose of compiling correctly to `commonjs` and `esmodule`. For example, the wording of `esmodule` of `dayjs` is
63
+
64
+ ```js
65
+ import dayjs from 'dayjs/esm'
66
+ ```
67
+
68
+ In order to build `commonjs`, the writing method is
69
+
70
+ ```js
71
+ import * as dayjs from 'dayjs'
72
+ ```
73
+
74
+ In the project, we embrace the first way of writing the `esmodule` module, and make the following configuration for adaptation
75
+
76
+ ```js
77
+ // varlet.config.js
78
+ module.exports = {
79
+ moduleCompatible: {
80
+ "import dayjs from 'dayjs/esm'\n": "import * as dayjs from 'dayjs'\n"
81
+ }
82
+ }
83
+ ```
84
+
85
+ #### SiteThemes
86
+
87
+ Theme variables are related,
88
+ because the default theme variables may be modified from time to time,
89
+ subject to the theme of the `varlet` official document
90
+
91
+ | Variable |
92
+ | ----- |
93
+ | `color-body` |
94
+ | `color-bar` |
95
+ | `color-sub-bar` |
96
+ | `color-text` |
97
+ | `color-sub-text` |
98
+ | `color-border` |
99
+ | `color-shadow` |
100
+ | `color-introduce-border` |
101
+ | `color-primary` |
102
+ | `color-link` |
103
+ | `color-type` |
104
+ | `color-progress` |
105
+ | `color-progress-track` |
106
+ | `color-side-bar` |
107
+ | `color-side-bar-active-background` |
108
+ | `color-app-bar` |
109
+ | `color-nav-button-hover-background` |
110
+ | `color-mobile-cell-hover` |
111
+ | `color-pc-language-active` |
112
+ | `color-pc-language-active-background` |
113
+ | `color-mobile-language-active` |
114
+ | `color-mobile-language-active-background` |
115
+ | `color-hl-background` |
116
+ | `color-hl-code` |
117
+ | `color-hl-border` |
118
+ | `color-hl-group-a` |
119
+ | `color-hl-group-b` |
120
+ | `color-hl-group-c` |
121
+ | `color-hl-group-d` |
122
+ | `color-hl-group-e` |
123
+ | `color-hl-group-f` |
124
+ | `color-hl-group-g` |
125
+ | `color-hl-group-h` |
126
+ | `color-hl-group-i` |
127
+
128
+ #### SiteHighlight
129
+
130
+ Code snippets are highlighted, based on [highlight.js](https://highlightjs.org/)
131
+
132
+ | Parameter | Description | Type | Default |
133
+ | ----- | -------------- | -------- | ---------- |
134
+ | `style` | highlight css link | _string_ | `-` |
135
+
136
+ #### SiteAnalysis
137
+
138
+ Statistics related to buried points
139
+
140
+ | Parameter | Description | Type | Default |
141
+ | ----- | -------------- | -------- | ---------- |
142
+ | `baidu` | Baidu statistics script address | _string_ | `-` |
143
+
144
+ #### SitePC, SiteMobile
145
+
146
+ The document structure is partly related, and the example configuration is as follows
147
+
148
+ ```js
149
+ module.exports = {
150
+ defaultLanguage: 'en-US',
151
+ pc: {
152
+ redirect: '/home',
153
+ title: {
154
+ 'en-US': 'A components library',
155
+ },
156
+ header: {
157
+ darkMode: null,
158
+ i18n: null,
159
+ github: 'https://github.com/varletjs/varlet',
160
+ },
161
+ menu: [
162
+ {
163
+ text: {
164
+ 'en-US': 'Develop Guide',
165
+ },
166
+ // Sidebar menu directory
167
+ type: 1,
168
+ },
169
+ {
170
+ text: {
171
+ 'en-US': 'Basic Intro',
172
+ },
173
+ doc: 'home',
174
+ // Index the md document in the root directory of the project
175
+ type: 3,
176
+ },
177
+ {
178
+ text: {
179
+ 'en-US': 'Basic Component',
180
+ },
181
+ type: 1,
182
+ },
183
+ {
184
+ text: {
185
+ 'en-US': 'Button',
186
+ },
187
+ doc: 'button',
188
+ // Md document in the root directory of the index component
189
+ type: 2,
190
+ },
191
+ ],
192
+ },
193
+ mobile: {
194
+ redirect: '/home',
195
+ title: {
196
+ 'en-US': 'A components library',
197
+ },
198
+ header: {
199
+ darkMode: null,
200
+ i18n: null,
201
+ playground: null,
202
+ github: 'https://github.com/varletjs/varlet',
203
+ },
204
+ },
205
+ }
206
+ ```
207
+
208
+ ### Commands Intro
209
+
210
+ #### Start the development server
211
+
212
+ ```shell
213
+ varlet-cli dev
214
+ ```
215
+
216
+ #### Build documentation site
217
+
218
+ ```shell
219
+ varlet-cli build
220
+ ```
221
+
222
+ #### Preview documentation site
223
+
224
+ ```shell
225
+ varlet-cli preview
226
+ ```
227
+
228
+ #### Build component library code
229
+
230
+ ```shell
231
+ varlet-cli compile
232
+ ```
233
+
234
+ #### Perform all unit tests
235
+
236
+ ```shell
237
+ varlet-cli test
238
+ ```
239
+
240
+ #### Execute unit tests in watch mode
241
+
242
+ ```shell
243
+ varlet-cli test -w
244
+ or
245
+ varlet-cli test -wa
246
+ ```
247
+
248
+ #### Lint code
249
+
250
+ ```shell
251
+ varlet-cli lint
252
+ ```
253
+
254
+ #### Lint commit message
255
+
256
+ ```shell
257
+ varlet-cli commit-lint
258
+ ```
259
+
260
+ #### Generate changelog
261
+
262
+ ```shell
263
+ varlet-cli changelog
264
+ ```
265
+
266
+ #### Release component library
267
+
268
+ ```shell
269
+ varlet-cli release
270
+ ```
271
+
272
+ #### Generate a project template
273
+ ```shell
274
+ varlet-cli gen <projectName>
275
+ ```
276
+
277
+ ### babel
278
+
279
+ To configure `babel`, first specify the target browser in `package.json`
280
+
281
+ ```json
282
+ {
283
+ "browserslist": [
284
+ "Chrome >= 51",
285
+ "iOS >= 10"
286
+ ]
287
+ }
288
+ ```
289
+
290
+ create `babel.config,js`
291
+
292
+ ```js
293
+ // babel.config.js
294
+ module.exports = {
295
+ presets: [
296
+ [
297
+ '@varlet/cli/preset',
298
+ {
299
+ loose: process.env.NODE_ENV === 'compile',
300
+ },
301
+ ],
302
+ ],
303
+ }
304
+ ```
305
+
306
+ ### git and npm
307
+
308
+ #### git-hook
309
+
310
+ `simple-git-hooks`, `lint-staged` cooperate with `eslint`, `stylelint`, `varlet-cli commit-lint` to check before commit,
311
+ `package.json` configuration is as follows
312
+
313
+ ```json
314
+ {
315
+ "simple-git-hooks": {
316
+ "pre-commit": "pnpm exec lint-staged --allow-empty --concurrent false",
317
+ "commit-msg": "npx --no-install varlet-cli commit-lint $1"
318
+ },
319
+ "lint-staged": {
320
+ "*.{ts,tsx,js,vue,less}": "prettier --write",
321
+ "*.{ts,tsx,js,vue}": "eslint --fix",
322
+ "*.{vue,css,less}": "stylelint --fix"
323
+ },
324
+ "eslintConfig": {
325
+ "root": true,
326
+ "ignorePatterns": [
327
+ "es/**",
328
+ "umd/**",
329
+ "site/**",
330
+ "public/**",
331
+ "src/*/__tests__/**",
332
+ ".varlet/**"
333
+ ],
334
+ "extends": [
335
+ "@varlet"
336
+ ]
337
+ },
338
+ "stylelint": {
339
+ "extends": [
340
+ "@varlet/stylelint-config"
341
+ ],
342
+ "ignoreFiles": [
343
+ "es/**",
344
+ "umd/**",
345
+ "site/**",
346
+ "coverage/**",
347
+ "public/**",
348
+ "highlight/**"
349
+ ]
350
+ }
351
+ }
352
+ ```
353
+
354
+ Mount Git Hooks
355
+
356
+ ```shell
357
+ npx simple-git-hooks
358
+ ```
359
+
360
+ create `.prettierignore`
361
+
362
+ ```text
363
+ // .prettierignore
364
+ coverage/**
365
+ es/**
366
+ umd/**
367
+ site/**
368
+ public/**
369
+ src/*/__tests__/**
370
+ *.md
371
+ ```
372
+
373
+ ### typescript
374
+
375
+ create `tsconfig.json`
376
+
377
+ ```json
378
+ {
379
+ "compilerOptions": {
380
+ "strict": true,
381
+ "downlevelIteration": true,
382
+ "declaration": true,
383
+ "skipLibCheck": true,
384
+ "esModuleInterop": true,
385
+ "allowJs": true,
386
+ "lib": ["esnext", "dom"],
387
+ "allowSyntheticDefaultImports": true,
388
+ "jsx": "preserve"
389
+ }
390
+ }
391
+ ```
392
+
393
+ #### Note before release
394
+
395
+ - 1.The registry of npm must set to the official npm mirror
396
+ - 2.The npm must execute the login command for user login
397
+
398
+ ### Contributors
399
+
400
+ <a href="https://github.com/varletjs/varlet/graphs/contributors">
401
+ <img src="https://contrib.rocks/image?repo=haoziqaq/varlet" />
402
402
  </a>