@varlet/cli 1.27.20 → 2.0.0-alpha.1663742071515

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 (176) hide show
  1. package/LICENCE +1 -1
  2. package/lib/commands/commitLint.js +1 -1
  3. package/lib/commands/compile.d.ts +5 -3
  4. package/lib/commands/compile.js +2 -2
  5. package/lib/commands/create.d.ts +8 -3
  6. package/lib/commands/create.js +100 -51
  7. package/lib/commands/dev.d.ts +4 -2
  8. package/lib/commands/dev.js +3 -3
  9. package/lib/commands/gen.d.ts +8 -1
  10. package/lib/commands/gen.js +61 -33
  11. package/lib/commands/jest.js +11 -7
  12. package/lib/commands/release.d.ts +4 -2
  13. package/lib/commands/release.js +2 -2
  14. package/lib/commands/test.d.ts +7 -0
  15. package/lib/commands/test.js +26 -0
  16. package/lib/commands/useVite.d.ts +1 -0
  17. package/lib/commands/useVite.js +70 -0
  18. package/lib/commands/vite.d.ts +3 -0
  19. package/lib/commands/vite.js +69 -0
  20. package/lib/compiler/compileModule.js +9 -5
  21. package/lib/compiler/compileSFC.js +14 -11
  22. package/lib/compiler/compileScript.js +4 -12
  23. package/lib/compiler/compileStyle.d.ts +1 -1
  24. package/lib/compiler/compileStyle.js +7 -17
  25. package/lib/compiler/compileTypes.js +4 -7
  26. package/lib/config/jest.config.js +1 -0
  27. package/lib/config/vite.config.js +1 -1
  28. package/lib/config/vitest.config.d.ts +2 -0
  29. package/lib/config/vitest.config.js +28 -0
  30. package/lib/index.js +22 -3
  31. package/lib/shared/constant.js +1 -1
  32. package/lib/shared/logger.d.ts +1 -0
  33. package/lib/shared/logger.js +3 -0
  34. package/package.json +16 -12
  35. package/site/components/button/Button.vue +45 -23
  36. package/site/components/button/button.less +6 -6
  37. package/site/components/button/props.ts +10 -2
  38. package/site/components/cell/Cell.vue +24 -12
  39. package/site/components/cell/cell.less +11 -7
  40. package/site/components/cell/props.ts +2 -2
  41. package/site/components/code-example/CodeExample.vue +17 -23
  42. package/site/components/context/index.ts +4 -0
  43. package/site/components/context/lock.ts +30 -41
  44. package/site/components/icon/Icon.vue +16 -9
  45. package/site/components/loading/Loading.vue +54 -25
  46. package/site/components/loading/loading.less +120 -35
  47. package/site/components/loading/props.ts +7 -2
  48. package/site/components/popup/Popup.tsx +102 -0
  49. package/site/components/popup/index.ts +10 -0
  50. package/site/components/popup/popup.less +125 -0
  51. package/site/components/popup/props.ts +63 -0
  52. package/site/components/progress/Progress.vue +28 -24
  53. package/site/components/progress/progress.less +16 -13
  54. package/site/components/progress/props.ts +1 -1
  55. package/site/components/ripple/index.ts +28 -7
  56. package/site/components/ripple/ripple.less +3 -0
  57. package/site/components/snackbar/Snackbar.vue +10 -7
  58. package/site/components/snackbar/core.vue +37 -22
  59. package/site/components/snackbar/index.tsx +14 -14
  60. package/site/components/snackbar/props.ts +10 -7
  61. package/site/components/utils/components.ts +49 -1
  62. package/site/components/utils/elements.ts +17 -0
  63. package/site/mobile/App.vue +42 -42
  64. package/site/mobile/components/AppHome.vue +1 -1
  65. package/site/mobile/components/app-bar/AppBar.vue +17 -21
  66. package/site/mobile/components/app-bar/appBar.less +2 -1
  67. package/site/mobile/main.ts +6 -2
  68. package/site/pc/Layout.vue +93 -67
  69. package/site/pc/components/AnimationBox.vue +3 -15
  70. package/site/pc/components/AppHeader.vue +110 -97
  71. package/site/pc/components/AppMobile.vue +8 -2
  72. package/site/pc/components/AppSidebar.vue +19 -10
  73. package/site/pc/components/LogoAnimation.vue +29 -31
  74. package/site/pc/floating.ts +3 -3
  75. package/site/pc/main.ts +6 -0
  76. package/site/pc/pages/index/index.less +142 -197
  77. package/site/pc/pages/index/index.vue +65 -80
  78. package/site/pc/pages/index/locale/en-US.ts +1 -5
  79. package/site/pc/pages/index/locale/zh-CN.ts +1 -5
  80. package/site/useProgress.ts +14 -17
  81. package/site/utils.ts +32 -20
  82. package/template/create/__tests__/index.spec.ejs +8 -0
  83. package/template/create/docs/en-US.md +0 -0
  84. package/template/create/docs/zh-CN.md +0 -0
  85. package/template/create/example/index.ejs +15 -0
  86. package/template/create/example/locale/en-US.ts +3 -0
  87. package/{generators/config/i18n/sfc/src/button → template/create}/example/locale/index.ts +0 -0
  88. package/template/create/example/locale/zh-CN.ts +3 -0
  89. package/template/create/index.ejs +12 -0
  90. package/template/create/less.ejs +3 -0
  91. package/template/create/props.ts +1 -0
  92. package/template/create/tsx.ejs +13 -0
  93. package/template/create/vue.ejs +17 -0
  94. package/{generators → template/generators}/base/.prettierignore +0 -0
  95. package/{generators → template/generators}/base/.prettierrc +0 -0
  96. package/{generators → template/generators}/base/README.md +0 -0
  97. package/{generators → template/generators}/base/babel.config.js +0 -0
  98. package/{generators → template/generators}/base/public/highlight.css +0 -0
  99. package/{generators → template/generators}/base/public/logo.svg +0 -0
  100. package/{generators → template/generators}/base/shims/shims-md.d.ts +0 -0
  101. package/{generators → template/generators}/base/shims/shims-vue.d.ts +0 -0
  102. package/{generators → template/generators}/base/tsconfig.json +0 -0
  103. package/{generators → template/generators}/config/default/base/docs/home.zh-CN.md +0 -0
  104. package/{generators → template/generators}/config/default/base/package.json +1 -1
  105. package/{generators → template/generators}/config/default/base/types/basicComponent.d.ts +0 -0
  106. package/{generators → template/generators}/config/default/base/types/button.d.ts +0 -0
  107. package/{generators → template/generators}/config/default/base/types/index.d.ts +0 -0
  108. package/{generators → template/generators}/config/default/base/varlet.config.js +1 -1
  109. package/{generators → template/generators}/config/default/sfc/src/button/Button.vue +6 -6
  110. package/{generators → template/generators}/config/default/sfc/src/button/__tests__/index.spec.js +0 -0
  111. package/{generators/config/default/tsx → template/generators/config/default/sfc}/src/button/button.less +1 -1
  112. package/{generators → template/generators}/config/default/sfc/src/button/docs/zh-CN.md +0 -0
  113. package/{generators → template/generators}/config/default/sfc/src/button/example/BasicUse.vue +0 -0
  114. package/{generators → template/generators}/config/default/sfc/src/button/example/ModifyColor.vue +0 -0
  115. package/{generators → template/generators}/config/default/sfc/src/button/example/index.vue +2 -2
  116. package/{generators → template/generators}/config/default/sfc/src/button/index.ts +0 -0
  117. package/{generators → template/generators}/config/default/tsx/src/button/Button.tsx +11 -13
  118. package/{generators → template/generators}/config/default/tsx/src/button/__tests__/index.spec.js +0 -0
  119. package/{generators/config/i18n → template/generators/config/default}/tsx/src/button/button.less +1 -1
  120. package/{generators → template/generators}/config/default/tsx/src/button/docs/zh-CN.md +0 -0
  121. package/{generators → template/generators}/config/default/tsx/src/button/example/BasicUse.vue +0 -0
  122. package/{generators → template/generators}/config/default/tsx/src/button/example/ModifyColor.vue +0 -0
  123. package/{generators → template/generators}/config/default/tsx/src/button/example/index.vue +2 -2
  124. package/{generators → template/generators}/config/default/tsx/src/button/index.ts +0 -0
  125. package/{generators → template/generators}/config/i18n/base/docs/home.en-US.md +0 -0
  126. package/{generators → template/generators}/config/i18n/base/docs/home.zh-CN.md +0 -0
  127. package/{generators → template/generators}/config/i18n/base/package.json +1 -1
  128. package/{generators → template/generators}/config/i18n/base/types/basicComponent.d.ts +0 -0
  129. package/{generators → template/generators}/config/i18n/base/types/button.d.ts +0 -0
  130. package/{generators → template/generators}/config/i18n/base/types/index.d.ts +0 -0
  131. package/{generators → template/generators}/config/i18n/base/types/locale.d.ts +0 -0
  132. package/{generators → template/generators}/config/i18n/base/varlet.config.js +3 -3
  133. package/{generators → template/generators}/config/i18n/sfc/src/button/Button.vue +7 -7
  134. package/{generators → template/generators}/config/i18n/sfc/src/button/__tests__/index.spec.js +0 -0
  135. package/{generators → template/generators}/config/i18n/sfc/src/button/button.less +1 -1
  136. package/{generators → template/generators}/config/i18n/sfc/src/button/docs/en-US.md +0 -0
  137. package/{generators → template/generators}/config/i18n/sfc/src/button/docs/zh-CN.md +0 -0
  138. package/{generators → template/generators}/config/i18n/sfc/src/button/example/BasicUse.vue +0 -0
  139. package/{generators → template/generators}/config/i18n/sfc/src/button/example/ModifyColor.vue +0 -0
  140. package/{generators → template/generators}/config/i18n/sfc/src/button/example/index.vue +1 -1
  141. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/button/example/locale/en-US.ts +1 -1
  142. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/button/example/locale/index.ts +0 -0
  143. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/button/example/locale/zh-CN.ts +1 -1
  144. package/{generators → template/generators}/config/i18n/sfc/src/button/index.ts +0 -0
  145. package/{generators → template/generators}/config/i18n/sfc/src/locale/__tests__/index.spec.js +0 -0
  146. package/{generators → template/generators}/config/i18n/sfc/src/locale/docs/en-US.md +0 -0
  147. package/{generators → template/generators}/config/i18n/sfc/src/locale/docs/zh-CN.md +0 -0
  148. package/{generators → template/generators}/config/i18n/sfc/src/locale/en-US.d.ts +0 -0
  149. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/locale/en-US.ts +1 -1
  150. package/{generators → template/generators}/config/i18n/sfc/src/locale/index.ts +0 -0
  151. package/{generators → template/generators}/config/i18n/sfc/src/locale/zh-CN.d.ts +0 -0
  152. package/{generators/config/i18n/tsx → template/generators/config/i18n/sfc}/src/locale/zh-CN.ts +1 -1
  153. package/{generators → template/generators}/config/i18n/tsx/src/button/Button.tsx +12 -14
  154. package/{generators → template/generators}/config/i18n/tsx/src/button/__tests__/index.spec.js +0 -0
  155. package/{generators/config/default/sfc → template/generators/config/i18n/tsx}/src/button/button.less +1 -1
  156. package/{generators → template/generators}/config/i18n/tsx/src/button/docs/en-US.md +0 -0
  157. package/{generators → template/generators}/config/i18n/tsx/src/button/docs/zh-CN.md +0 -0
  158. package/{generators → template/generators}/config/i18n/tsx/src/button/example/BasicUse.vue +0 -0
  159. package/{generators → template/generators}/config/i18n/tsx/src/button/example/ModifyColor.vue +0 -0
  160. package/{generators → template/generators}/config/i18n/tsx/src/button/example/index.vue +1 -1
  161. package/{generators/config/i18n/sfc → template/generators/config/i18n/tsx}/src/button/example/locale/en-US.ts +1 -1
  162. package/template/generators/config/i18n/tsx/src/button/example/locale/index.ts +23 -0
  163. package/{generators/config/i18n/sfc → template/generators/config/i18n/tsx}/src/button/example/locale/zh-CN.ts +1 -1
  164. package/{generators → template/generators}/config/i18n/tsx/src/button/index.ts +0 -0
  165. package/{generators → template/generators}/config/i18n/tsx/src/locale/__tests__/index.spec.js +0 -0
  166. package/{generators → template/generators}/config/i18n/tsx/src/locale/docs/en-US.md +0 -0
  167. package/{generators → template/generators}/config/i18n/tsx/src/locale/docs/zh-CN.md +0 -0
  168. package/{generators → template/generators}/config/i18n/tsx/src/locale/en-US.d.ts +0 -0
  169. package/{generators/config/i18n/sfc → template/generators/config/i18n/tsx}/src/locale/en-US.ts +1 -1
  170. package/{generators → template/generators}/config/i18n/tsx/src/locale/index.ts +0 -0
  171. package/{generators → template/generators}/config/i18n/tsx/src/locale/zh-CN.d.ts +0 -0
  172. package/{generators/config/i18n/sfc → template/generators/config/i18n/tsx}/src/locale/zh-CN.ts +1 -1
  173. package/varlet.default.config.js +137 -15
  174. package/site/mobile/components/styles/common.less +0 -64
  175. package/site/mobile/components/styles/elevation.less +0 -126
  176. package/site/mobile/components/styles/var.less +0 -27
package/LICENCE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2020 varlet
3
+ Copyright (c) 2022 varlet
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -11,7 +11,7 @@ function isVersion(message) {
11
11
  }
12
12
  function commitLint(gitParams) {
13
13
  var message = require('fs').readFileSync(gitParams, 'utf-8').trim();
14
- var COMMIT_MESSAGE_RE = /^(revert|fix|feat|docs|perf|test|types|style|build|chore|release|refactor)(\(.+\))?: (.|\n)+/;
14
+ var COMMIT_MESSAGE_RE = /^(revert|fix|feat|docs|perf|test|types|style|build|chore|release|refactor)(\(.+\))?!?: (.|\n)+/;
15
15
  if (!isVersion(message) && !COMMIT_MESSAGE_RE.test(message)) {
16
16
  logger_1.default.error("Commit message invalid");
17
17
  logger_1.default.warning("The rules for commit messages are as follows\n\nExample:\n\nfeat: add a new feature\nfeat(ui/button): add a new feature in the ui/button scope\n\nfix: fix a bug\nfix(ui/button): fix a bug in the ui/button scope\n\ndocs: fix an error in the documentation\ndocs(ui/button): fix a documentation error in the ui/button scope\n\nAllowed types:\n- fix\n- feat\n- docs\n- perf\n- test\n- types\n- style\n- build\n- chore\n- release\n- refactor\n- revert\n\nCommit message reference: https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y\n\u53C2\u8003\u962E\u4E00\u5CF0Commit message\u7F16\u5199\u6307\u5357: https://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html");
@@ -1,5 +1,7 @@
1
1
  export declare function removeDir(): Promise<[void, void, void, void]>;
2
2
  export declare function runTask(taskName: string, task: () => any): Promise<void>;
3
- export declare function compile(cmd: {
4
- noUmd: boolean;
5
- }): Promise<void>;
3
+ interface CompileCommandOptions {
4
+ noUmd?: boolean;
5
+ }
6
+ export declare function compile(options: CompileCommandOptions): Promise<void>;
7
+ export {};
@@ -77,7 +77,7 @@ function runTask(taskName, task) {
77
77
  });
78
78
  }
79
79
  exports.runTask = runTask;
80
- function compile(cmd) {
80
+ function compile(options) {
81
81
  return __awaiter(this, void 0, void 0, function () {
82
82
  var _a;
83
83
  return __generator(this, function (_b) {
@@ -103,7 +103,7 @@ function compile(cmd) {
103
103
  case 5:
104
104
  _b.sent();
105
105
  process.env.TARGET_MODULE = 'umd';
106
- _a = !cmd.noUmd;
106
+ _a = !options.noUmd;
107
107
  if (!_a) return [3 /*break*/, 7];
108
108
  return [4 /*yield*/, runTask('umd', function () { return (0, compileModule_1.compileModule)('umd'); })];
109
109
  case 6:
@@ -1,3 +1,8 @@
1
- export declare function create(name: string, cmd: {
2
- disableI18n?: boolean;
3
- }): Promise<void>;
1
+ interface CreateCommandOptions {
2
+ name?: string;
3
+ locale?: boolean;
4
+ sfc?: boolean;
5
+ tsx?: boolean;
6
+ }
7
+ export declare function create(options: CreateCommandOptions): Promise<void>;
8
+ export {};
@@ -65,65 +65,114 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
65
65
  };
66
66
  Object.defineProperty(exports, "__esModule", { value: true });
67
67
  exports.create = void 0;
68
- var logger_1 = __importDefault(require("../shared/logger"));
69
68
  var shared_1 = require("@varlet/shared");
69
+ var inquirer_1 = require("inquirer");
70
+ var ejs_1 = __importDefault(require("ejs"));
70
71
  var fs_extra_1 = require("fs-extra");
72
+ var lodash_1 = require("lodash");
71
73
  var path_1 = require("path");
72
- var constant_1 = require("../shared/constant");
74
+ var logger_1 = __importDefault(require("../shared/logger"));
75
+ var fsUtils_1 = require("../shared/fsUtils");
73
76
  var varlet_config_1 = require("../config/varlet.config");
74
- var lodash_1 = require("lodash");
75
- function create(name, cmd) {
77
+ var constant_1 = require("../shared/constant");
78
+ var templateFiles = ['__tests__/index.spec.js', 'example/index.vue', "less.less", 'index.ts'];
79
+ var namespace = (0, lodash_1.get)((0, varlet_config_1.getVarletConfig)(), 'namespace');
80
+ var createOptions = {
81
+ kebabCaseName: 'component-name',
82
+ bigCamelizeName: 'componentName',
83
+ style: 'vue',
84
+ namespace: namespace,
85
+ bigCamelizeNamespace: (0, shared_1.bigCamelize)(namespace),
86
+ };
87
+ var ejsRender = function (filePath, options) {
88
+ var _a = (0, path_1.parse)(filePath), dir = _a.dir, name = _a.name, ext = _a.ext;
89
+ var componentPath = (0, path_1.resolve)(constant_1.SRC_DIR, options.kebabCaseName);
90
+ var templatePath = (0, path_1.resolve)(componentPath, dir, "".concat(name, ".ejs"));
91
+ var templateCode = (0, fs_extra_1.readFileSync)(templatePath, { encoding: 'utf-8' });
92
+ var code = ejs_1.default.render(templateCode, options);
93
+ if (ext.endsWith(name)) {
94
+ filePath = "".concat(name === 'less' ? createOptions.kebabCaseName : createOptions.bigCamelizeName).concat(ext);
95
+ }
96
+ (0, fs_extra_1.outputFileSync)((0, path_1.resolve)(componentPath, filePath), code);
97
+ };
98
+ var removeFiles = function (path) { return __awaiter(void 0, void 0, void 0, function () {
99
+ return __generator(this, function (_a) {
100
+ switch (_a.label) {
101
+ case 0:
102
+ !createOptions.locale && (0, fs_extra_1.removeSync)("".concat(path, "/example/locale"));
103
+ return [4 /*yield*/, (0, fsUtils_1.glob)("".concat(path, "/**/*.ejs"))];
104
+ case 1:
105
+ (_a.sent()).forEach(function (file) { return (0, fs_extra_1.removeSync)(file); });
106
+ return [2 /*return*/];
107
+ }
108
+ });
109
+ }); };
110
+ function create(options) {
76
111
  return __awaiter(this, void 0, void 0, function () {
77
- var i18nFiles, namespace, bigCamelizeName, vueTemplate, indexTemplate, testsTemplate, exampleTemplate, localeIndexTemplate, localTemplate, componentDir, testsDir, exampleDir, exampleLocalDir, docsDir;
78
- return __generator(this, function (_a) {
79
- switch (_a.label) {
112
+ var name, _a, locale, _b, style, componentPath;
113
+ return __generator(this, function (_c) {
114
+ switch (_c.label) {
80
115
  case 0:
81
- i18nFiles = [];
82
- namespace = (0, lodash_1.get)((0, varlet_config_1.getVarletConfig)(), 'namespace');
83
- bigCamelizeName = (0, shared_1.bigCamelize)(name);
84
- vueTemplate = "<template>\n <div class=\"".concat(namespace, "-").concat(name, "\"></div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: '").concat((0, shared_1.bigCamelize)(namespace)).concat(bigCamelizeName, "'\n})\n</script>\n\n<style lang=\"less\">\n.").concat(namespace, "-").concat(name, " {\n display: flex;\n}\n</style>\n");
85
- indexTemplate = "import ".concat(bigCamelizeName, " from './").concat(bigCamelizeName, ".vue'\nimport type { App } from 'vue'\n\n").concat(bigCamelizeName, ".install = function(app: App) {\n app.component(").concat(bigCamelizeName, ".name, ").concat(bigCamelizeName, ")\n}\n\nexport const _").concat(bigCamelizeName, "Component = ").concat(bigCamelizeName, "\n\nexport default ").concat(bigCamelizeName, "\n");
86
- testsTemplate = "import ".concat(bigCamelizeName, " from '..'\nimport { createApp } from 'vue'\nimport { mount } from '@vue/test-utils'\n\ntest('test ").concat(name, " use', () => {\n const app = createApp({}).use(").concat(bigCamelizeName, ")\n expect(app.component(").concat(bigCamelizeName, ".name)).toBeTruthy()\n})\n");
87
- exampleTemplate = "<script setup>\nimport ".concat(bigCamelizeName, " from '..'\nimport AppType from '@varlet/cli/site/mobile/components/AppType'\n</script>\n\n<template>\n <app-type></app-type>\n <").concat(namespace, "-").concat(name, "/>\n</template>\n");
88
- localeIndexTemplate = "// lib\nimport _zhCN from '../../../locale/zh-CN'\nimport _enCN from '../../../locale/en-US'\n// mobile example doc\nimport zhCN from './zh-CN'\nimport enUS from './en-US'\nimport { useLocale, add as _add, use as _use } from '../../../locale'\n\nconst { add, use: exampleUse, pack, packs, merge } = useLocale()\n\nconst use = (lang: string) => {\n _use(lang)\n exampleUse(lang)\n}\n\nexport { add, pack, packs, merge, use }\n\n// lib\n_add('zh-CN', _zhCN)\n_add('en-US', _enCN)\n// mobile example doc\nadd('zh-CN', zhCN as any)\nadd('en-US', enUS as any)\n";
89
- localTemplate = "export default {\n\n}\n";
90
- componentDir = (0, path_1.resolve)(constant_1.SRC_DIR, name);
91
- testsDir = (0, path_1.resolve)(constant_1.SRC_DIR, name, constant_1.TESTS_DIR_NAME);
92
- exampleDir = (0, path_1.resolve)(constant_1.SRC_DIR, name, constant_1.EXAMPLE_DIR_NAME);
93
- exampleLocalDir = (0, path_1.resolve)(constant_1.SRC_DIR, name, constant_1.EXAMPLE_DIR_NAME, constant_1.LOCALE_DIR_NAME);
94
- docsDir = (0, path_1.resolve)(constant_1.SRC_DIR, name, constant_1.DOCS_DIR_NAME);
95
- if ((0, fs_extra_1.pathExistsSync)(componentDir)) {
96
- logger_1.default.error('component directory is existed');
116
+ logger_1.default.title('\n📦📦 Create a Component ! \n');
117
+ if (!options.name) return [3 /*break*/, 1];
118
+ _a = options;
119
+ return [3 /*break*/, 3];
120
+ case 1: return [4 /*yield*/, (0, inquirer_1.prompt)({
121
+ name: 'name',
122
+ message: 'Name of the component created: ',
123
+ default: createOptions.kebabCaseName,
124
+ })];
125
+ case 2:
126
+ _a = _c.sent();
127
+ _c.label = 3;
128
+ case 3:
129
+ name = (_a).name;
130
+ createOptions.kebabCaseName = (0, shared_1.kebabCase)(name);
131
+ createOptions.bigCamelizeName = (0, shared_1.bigCamelize)(name);
132
+ if ((0, fs_extra_1.pathExistsSync)((0, path_1.resolve)(constant_1.SRC_DIR, createOptions.kebabCaseName))) {
133
+ logger_1.default.error("".concat(createOptions.kebabCaseName, " already exist and cannot be recreated..."));
97
134
  return [2 /*return*/];
98
135
  }
99
- if (!cmd.disableI18n) {
100
- exampleTemplate = "<script setup>\nimport ".concat(bigCamelizeName, " from '..'\nimport AppType from '@varlet/cli/site/mobile/components/AppType'\nimport { watchLang } from '@varlet/cli/site/utils'\nimport { use, pack } from './locale'\n\nwatchLang(use)\n</script>\n\n<template>\n <app-type></app-type>\n <").concat(namespace, "-").concat(name, "/>\n</template>\n ");
101
- i18nFiles = [
102
- (0, fs_extra_1.outputFile)((0, path_1.resolve)(exampleLocalDir, 'index.ts'), localeIndexTemplate),
103
- (0, fs_extra_1.outputFile)((0, path_1.resolve)(exampleLocalDir, 'en-US.ts'), localTemplate),
104
- (0, fs_extra_1.outputFile)((0, path_1.resolve)(exampleLocalDir, 'zh-CN.ts'), localTemplate),
105
- (0, fs_extra_1.outputFile)((0, path_1.resolve)(docsDir, 'en-US.md'), ''),
106
- ];
107
- }
108
- return [4 /*yield*/, Promise.all(__spreadArray(__spreadArray([
109
- (0, fs_extra_1.outputFile)((0, path_1.resolve)(componentDir, "".concat(bigCamelizeName, ".vue")), vueTemplate),
110
- (0, fs_extra_1.outputFile)((0, path_1.resolve)(componentDir, 'index.ts'), indexTemplate),
111
- (0, fs_extra_1.outputFile)((0, path_1.resolve)(testsDir, 'index.spec.js'), testsTemplate),
112
- (0, fs_extra_1.outputFile)((0, path_1.resolve)(exampleDir, 'index.vue'), exampleTemplate)
113
- ], __read(i18nFiles), false), [
114
- (0, fs_extra_1.outputFile)((0, path_1.resolve)(docsDir, 'zh-CN.md'), ''),
115
- ], false))];
116
- case 1:
117
- _a.sent();
118
- logger_1.default.success("Create ".concat(name, " success!"));
119
- logger_1.default.success("----------------------------");
120
- logger_1.default.success("".concat(name, "/"));
121
- logger_1.default.success("|- __tests__/ # Unit test folder");
122
- logger_1.default.success("|- docs/ # Internationalized document folder");
123
- logger_1.default.success("|- example/ # Mobile phone example code");
124
- logger_1.default.success("|- example/locale # Example locale");
125
- logger_1.default.success("|- ".concat(bigCamelizeName, ".vue # Sfc component, You can also use jsx or tsx"));
126
- logger_1.default.success("|- index.ts # Component entry, the folder where the file exists will be exposed to the user");
136
+ if (!options.locale) return [3 /*break*/, 4];
137
+ _b = options;
138
+ return [3 /*break*/, 6];
139
+ case 4: return [4 /*yield*/, (0, inquirer_1.prompt)({
140
+ name: 'locale',
141
+ type: 'confirm',
142
+ message: 'Whether to use i18n?',
143
+ default: false,
144
+ })];
145
+ case 5:
146
+ _b = _c.sent();
147
+ _c.label = 6;
148
+ case 6:
149
+ locale = (_b).locale;
150
+ createOptions.locale = locale;
151
+ if (!(options.sfc || options.tsx)) return [3 /*break*/, 7];
152
+ createOptions.style = options.sfc ? 'vue' : 'tsx';
153
+ return [3 /*break*/, 9];
154
+ case 7: return [4 /*yield*/, (0, inquirer_1.prompt)({
155
+ name: 'style',
156
+ type: 'list',
157
+ message: 'Which style do you use to write your component ?',
158
+ choices: [
159
+ { name: 'sfc', value: 'vue' },
160
+ { name: 'tsx', value: 'tsx' },
161
+ ],
162
+ default: 'vue',
163
+ })];
164
+ case 8:
165
+ style = (_c.sent()).style;
166
+ createOptions.style = style;
167
+ _c.label = 9;
168
+ case 9:
169
+ componentPath = (0, path_1.resolve)(constant_1.SRC_DIR, createOptions.kebabCaseName);
170
+ (0, fs_extra_1.copySync)((0, path_1.resolve)(__dirname, '../../template/create'), componentPath);
171
+ __spreadArray(__spreadArray([], __read(templateFiles), false), ["".concat(createOptions.style, ".").concat(createOptions.style)], false).forEach(function (file) { return ejsRender(file, createOptions); });
172
+ return [4 /*yield*/, removeFiles(componentPath)];
173
+ case 10:
174
+ _c.sent();
175
+ logger_1.default.success("Create ".concat(createOptions.kebabCaseName, " component success!"));
127
176
  return [2 /*return*/];
128
177
  }
129
178
  });
@@ -1,3 +1,5 @@
1
- export declare function dev(cmd: {
1
+ interface DevCommandOptions {
2
2
  force?: boolean;
3
- }): Promise<void>;
3
+ }
4
+ export declare function dev(options: DevCommandOptions): Promise<void>;
5
+ export {};
@@ -86,7 +86,7 @@ function startServer(force) {
86
86
  _c.sent();
87
87
  varletConfig = (0, varlet_config_1.getVarletConfig)();
88
88
  devConfig = (0, vite_config_1.getDevConfig)(varletConfig);
89
- inlineConfig = (0, lodash_1.merge)(devConfig, force ? { server: { force: true } } : {});
89
+ inlineConfig = (0, lodash_1.merge)(devConfig, force ? { optimizeDeps: { force: true } } : {});
90
90
  return [4 /*yield*/, (0, vite_1.createServer)(inlineConfig)];
91
91
  case 6:
92
92
  // create all instance
@@ -105,14 +105,14 @@ function startServer(force) {
105
105
  });
106
106
  });
107
107
  }
108
- function dev(cmd) {
108
+ function dev(options) {
109
109
  return __awaiter(this, void 0, void 0, function () {
110
110
  return __generator(this, function (_a) {
111
111
  switch (_a.label) {
112
112
  case 0:
113
113
  process.env.NODE_ENV = 'development';
114
114
  (0, fs_extra_1.ensureDirSync)(constant_1.SRC_DIR);
115
- return [4 /*yield*/, startServer(cmd.force)];
115
+ return [4 /*yield*/, startServer(options.force)];
116
116
  case 1:
117
117
  _a.sent();
118
118
  return [2 /*return*/];
@@ -1 +1,8 @@
1
- export declare function gen(name: string): Promise<void>;
1
+ interface GenCommandOptions {
2
+ name?: string;
3
+ i18n?: boolean;
4
+ sfc?: boolean;
5
+ tsx?: boolean;
6
+ }
7
+ export declare function gen(options: GenCommandOptions): Promise<void>;
8
+ export {};
@@ -41,13 +41,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
42
  exports.gen = void 0;
43
43
  var logger_1 = __importDefault(require("../shared/logger"));
44
- var inquirer_1 = __importDefault(require("inquirer"));
44
+ var inquirer_1 = require("inquirer");
45
45
  var path_1 = require("path");
46
46
  var fs_extra_1 = require("fs-extra");
47
47
  var constant_1 = require("../shared/constant");
48
- function generateGitIgnore(name) {
49
- (0, fs_extra_1.writeFileSync)((0, path_1.resolve)(constant_1.CWD, name, '.gitignore'), "node_modules\n\n.varlet\n.idea\n.vscode\n*.log\n.DS_Store\n\nsite\nlib\nes\numd\ncoverage\nhighlight");
50
- }
48
+ var genOptions = {
49
+ name: 'varlet-app',
50
+ locale: false,
51
+ style: 'sfc',
52
+ };
51
53
  function syncVersion(name) {
52
54
  var file = (0, path_1.resolve)(constant_1.CWD, name, 'package.json');
53
55
  var pkg = JSON.parse((0, fs_extra_1.readFileSync)(file, 'utf-8'));
@@ -60,48 +62,74 @@ function syncVersion(name) {
60
62
  pkg.files = ['es', 'lib', 'umd', 'highlight', 'types'];
61
63
  (0, fs_extra_1.writeFileSync)(file, JSON.stringify(pkg, null, 2));
62
64
  }
63
- function gen(name) {
65
+ function gen(options) {
64
66
  return __awaiter(this, void 0, void 0, function () {
65
- var dest, ret, i18n, choice, dirName, base, configBase, code;
66
- return __generator(this, function (_a) {
67
- switch (_a.label) {
67
+ var name, _a, dest, style, i18n, _b, dirName, base, configBase, code;
68
+ return __generator(this, function (_c) {
69
+ switch (_c.label) {
68
70
  case 0:
71
+ logger_1.default.title('\n📦📦 Generate cli application ! \n');
72
+ if (!options.name) return [3 /*break*/, 1];
73
+ _a = options;
74
+ return [3 /*break*/, 3];
75
+ case 1: return [4 /*yield*/, (0, inquirer_1.prompt)({
76
+ name: 'name',
77
+ message: 'Name of the generate application: ',
78
+ default: genOptions.name,
79
+ })];
80
+ case 2:
81
+ _a = _c.sent();
82
+ _c.label = 3;
83
+ case 3:
84
+ name = (_a).name;
69
85
  dest = (0, path_1.resolve)(constant_1.CWD, name);
70
86
  if ((0, fs_extra_1.pathExistsSync)(dest)) {
71
- logger_1.default.warning("".concat(name, " already exists and cannot be recreated..."));
87
+ logger_1.default.error("".concat(name, " already exists and cannot be recreated..."));
72
88
  return [2 /*return*/];
73
89
  }
74
- return [4 /*yield*/, inquirer_1.default.prompt([
75
- {
76
- name: 'Please select your component library programming style',
77
- type: 'list',
78
- choices: ['sfc', 'tsx'],
79
- },
80
- {
81
- name: 'Whether to use i18n?',
82
- type: 'confirm',
83
- },
84
- ])];
85
- case 1:
86
- ret = _a.sent();
87
- i18n = ret['Whether to use i18n?'];
88
- choice = ret['Please select your component library programming style'];
90
+ if (!(options.sfc || options.tsx)) return [3 /*break*/, 4];
91
+ genOptions.style = options.sfc ? 'sfc' : 'tsx';
92
+ return [3 /*break*/, 6];
93
+ case 4: return [4 /*yield*/, (0, inquirer_1.prompt)({
94
+ name: 'style',
95
+ type: 'list',
96
+ message: 'Please select your component library programming format',
97
+ choices: ['sfc', 'tsx'],
98
+ })];
99
+ case 5:
100
+ style = (_c.sent()).style;
101
+ genOptions.style = style;
102
+ _c.label = 6;
103
+ case 6:
104
+ if (!options.i18n) return [3 /*break*/, 7];
105
+ _b = options;
106
+ return [3 /*break*/, 9];
107
+ case 7: return [4 /*yield*/, (0, inquirer_1.prompt)({
108
+ name: 'i18n',
109
+ type: 'confirm',
110
+ message: 'Whether to use i18n?',
111
+ default: false,
112
+ })];
113
+ case 8:
114
+ _b = _c.sent();
115
+ _c.label = 9;
116
+ case 9:
117
+ i18n = (_b).i18n;
89
118
  dirName = i18n ? 'i18n' : 'default';
90
119
  base = (0, path_1.resolve)(constant_1.GENERATORS_DIR, 'base');
91
120
  configBase = (0, path_1.resolve)(constant_1.GENERATORS_DIR, 'config', dirName, 'base');
92
- code = (0, path_1.resolve)(constant_1.GENERATORS_DIR, 'config', dirName, choice);
121
+ code = (0, path_1.resolve)(constant_1.GENERATORS_DIR, 'config', dirName, genOptions.style);
93
122
  return [4 /*yield*/, (0, fs_extra_1.copy)(base, dest)];
94
- case 2:
95
- _a.sent();
123
+ case 10:
124
+ _c.sent();
96
125
  return [4 /*yield*/, (0, fs_extra_1.copy)(configBase, dest)];
97
- case 3:
98
- _a.sent();
126
+ case 11:
127
+ _c.sent();
99
128
  return [4 /*yield*/, (0, fs_extra_1.copy)(code, dest)];
100
- case 4:
101
- _a.sent();
129
+ case 12:
130
+ _c.sent();
102
131
  syncVersion(name);
103
- generateGitIgnore(name);
104
- logger_1.default.success('Application generated successfully!');
132
+ logger_1.default.success('✨ Application generated successfully!');
105
133
  logger_1.default.info(" cd ".concat(name, "\n pnpm install\n pnpm dev"));
106
134
  logger_1.default.success("=======================\n Good luck have fun\n======================= ");
107
135
  return [2 /*return*/];
@@ -43,6 +43,7 @@ exports.jest = void 0;
43
43
  var logger_1 = __importDefault(require("../shared/logger"));
44
44
  var jest_1 = require("jest");
45
45
  var constant_1 = require("../shared/constant");
46
+ var compileSiteEntry_1 = require("../compiler/compileSiteEntry");
46
47
  function jest(cmd) {
47
48
  return __awaiter(this, void 0, void 0, function () {
48
49
  var config, response, e_1;
@@ -58,22 +59,25 @@ function jest(cmd) {
58
59
  config: constant_1.JEST_CONFIG,
59
60
  testRegex: cmd.component && "".concat(cmd.component, "/__tests__/.*.spec.[jt]s?$"),
60
61
  };
61
- _a.label = 1;
62
+ return [4 /*yield*/, (0, compileSiteEntry_1.buildSiteEntry)()];
62
63
  case 1:
63
- _a.trys.push([1, 3, , 4]);
64
- return [4 /*yield*/, (0, jest_1.runCLI)(config, [constant_1.CWD])];
64
+ _a.sent();
65
+ _a.label = 2;
65
66
  case 2:
67
+ _a.trys.push([2, 4, , 5]);
68
+ return [4 /*yield*/, (0, jest_1.runCLI)(config, [constant_1.CWD])];
69
+ case 3:
66
70
  response = _a.sent();
67
71
  if (!response.results.success && !cmd.watch) {
68
72
  process.exit(1);
69
73
  }
70
- return [3 /*break*/, 4];
71
- case 3:
74
+ return [3 /*break*/, 5];
75
+ case 4:
72
76
  e_1 = _a.sent();
73
77
  logger_1.default.error(e_1.toString());
74
78
  process.exit(1);
75
- return [3 /*break*/, 4];
76
- case 4: return [2 /*return*/];
79
+ return [3 /*break*/, 5];
80
+ case 5: return [2 /*return*/];
77
81
  }
78
82
  });
79
83
  });
@@ -1,3 +1,5 @@
1
- export declare function release(cmd: {
1
+ interface ReleaseCommandOptions {
2
2
  remote?: string;
3
- }): Promise<void>;
3
+ }
4
+ export declare function release(options: ReleaseCommandOptions): Promise<void>;
5
+ export {};
@@ -193,7 +193,7 @@ function getReleaseType() {
193
193
  });
194
194
  });
195
195
  }
196
- function release(cmd) {
196
+ function release(options) {
197
197
  return __awaiter(this, void 0, void 0, function () {
198
198
  var currentVersion, type, isPreRelease, expectVersion, _a, error_1;
199
199
  return __generator(this, function (_b) {
@@ -235,7 +235,7 @@ function release(cmd) {
235
235
  return [4 /*yield*/, (0, changelog_1.changelog)()];
236
236
  case 6:
237
237
  _b.sent();
238
- return [4 /*yield*/, pushGit(expectVersion, cmd.remote)];
238
+ return [4 /*yield*/, pushGit(expectVersion, options.remote)];
239
239
  case 7:
240
240
  _b.sent();
241
241
  _b.label = 8;
@@ -0,0 +1,7 @@
1
+ interface TestCommandOptions {
2
+ watch?: boolean;
3
+ component?: string;
4
+ coverage?: boolean;
5
+ }
6
+ export declare function test({ component, watch, coverage }: TestCommandOptions): Promise<void>;
7
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.test = void 0;
7
+ const execa_1 = __importDefault(require("execa"));
8
+ const constant_1 = require("../shared/constant");
9
+ const compileSiteEntry_1 = require("../compiler/compileSiteEntry");
10
+ async function test({ component, watch, coverage }) {
11
+ process.env.NODE_ENV = 'test';
12
+ // Test cases may contain documentation example code, and site dependencies need to build
13
+ await (0, compileSiteEntry_1.buildSiteEntry)();
14
+ const args = ['--config', constant_1.VITEST_CONFIG];
15
+ if (!watch) {
16
+ args.unshift('run');
17
+ }
18
+ if (coverage) {
19
+ args.push('--coverage');
20
+ }
21
+ if (component) {
22
+ args.push('--dir', `src/${component.trim()}`);
23
+ }
24
+ await (0, execa_1.default)('vitest', args, { stdin: 'inherit', stdout: 'inherit', stderr: 'inherit' });
25
+ }
26
+ exports.test = test;
@@ -0,0 +1 @@
1
+ export declare function useVite(mode: 'build' | 'dev'): Promise<void>;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.useVite = void 0;
43
+ var vite_1 = require("vite");
44
+ var plugin_vue_1 = __importDefault(require("@vitejs/plugin-vue"));
45
+ var constant_1 = require("../shared/constant");
46
+ function useVite(mode) {
47
+ return __awaiter(this, void 0, void 0, function () {
48
+ var action, result;
49
+ return __generator(this, function (_a) {
50
+ switch (_a.label) {
51
+ case 0:
52
+ action = mode === 'build' ? vite_1.build : vite_1.createServer;
53
+ return [4 /*yield*/, action({
54
+ root: constant_1.CWD,
55
+ plugins: [(0, plugin_vue_1.default)()],
56
+ })];
57
+ case 1:
58
+ result = _a.sent();
59
+ if (!(mode === 'dev')) return [3 /*break*/, 3];
60
+ return [4 /*yield*/, result.listen()];
61
+ case 2:
62
+ _a.sent();
63
+ result.printUrls();
64
+ _a.label = 3;
65
+ case 3: return [2 /*return*/];
66
+ }
67
+ });
68
+ });
69
+ }
70
+ exports.useVite = useVite;
@@ -0,0 +1,3 @@
1
+ declare type ViteCommandMode = 'dev' | 'build';
2
+ export declare function vite(mode: ViteCommandMode): Promise<void>;
3
+ export {};