dev-standard-cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.Initializer = void 0;
40
+ exports.quickInit = quickInit;
41
+ const execa_1 = __importDefault(require("execa"));
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ const ora_1 = __importDefault(require("ora"));
45
+ const chalk_1 = __importDefault(require("chalk"));
46
+ /**
47
+ * 初始化器类
48
+ */
49
+ class Initializer {
50
+ constructor(projectPath) {
51
+ this.projectPath = projectPath;
52
+ this.projectName = path.basename(projectPath);
53
+ }
54
+ /**
55
+ * 执行完整初始化流程
56
+ */
57
+ async initialize() {
58
+ console.log(chalk_1.default.cyan.bold(`\n🚀 开始初始化项目: ${this.projectName}\n`));
59
+ try {
60
+ await this.createProjectDirectory();
61
+ await this.initializeGit();
62
+ await this.copyConfigFiles();
63
+ await this.createPackageJson();
64
+ await this.installDependencies();
65
+ await this.setupHusky();
66
+ console.log(chalk_1.default.green.bold(`\n✨ 项目初始化完成!`));
67
+ this.printSuccessMessage();
68
+ }
69
+ catch (error) {
70
+ console.error(chalk_1.default.red.bold('\n❌ 初始化失败:'), error);
71
+ throw error;
72
+ }
73
+ }
74
+ /**
75
+ * 创建项目目录
76
+ */
77
+ async createProjectDirectory() {
78
+ const spinner = (0, ora_1.default)('创建项目目录...').start();
79
+ try {
80
+ if (!fs.existsSync(this.projectPath)) {
81
+ fs.mkdirSync(this.projectPath, { recursive: true });
82
+ }
83
+ spinner.succeed('项目目录创建成功');
84
+ }
85
+ catch (error) {
86
+ spinner.fail('项目目录创建失败');
87
+ throw error;
88
+ }
89
+ }
90
+ /**
91
+ * 初始化 Git 仓库
92
+ */
93
+ async initializeGit() {
94
+ const spinner = (0, ora_1.default)('初始化 Git 仓库...').start();
95
+ try {
96
+ await (0, execa_1.default)('git', ['init'], { cwd: this.projectPath });
97
+ // 创建 .gitignore
98
+ const gitignoreContent = `node_modules/
99
+ dist/
100
+ .DS_Store
101
+ *.log
102
+ .env
103
+ .env.local
104
+ .vscode/
105
+ .idea/
106
+ *.swp
107
+ *.swo
108
+ coverage/
109
+ .nyc_output/
110
+ `;
111
+ fs.writeFileSync(path.join(this.projectPath, '.gitignore'), gitignoreContent);
112
+ spinner.succeed('Git 仓库初始化成功');
113
+ }
114
+ catch (error) {
115
+ spinner.fail('Git 仓库初始化失败');
116
+ throw error;
117
+ }
118
+ }
119
+ /**
120
+ * 复制配置文件
121
+ */
122
+ async copyConfigFiles() {
123
+ const spinner = (0, ora_1.default)('复制配置文件...').start();
124
+ try {
125
+ const templatesDir = path.join(__dirname, '../../templates');
126
+ const configFiles = [
127
+ '.eslintrc.js',
128
+ '.prettierrc.js',
129
+ 'commitlint.config.js',
130
+ '.lintstagedrc.json',
131
+ ];
132
+ for (const file of configFiles) {
133
+ const sourcePath = path.join(templatesDir, file);
134
+ const targetPath = path.join(this.projectPath, file);
135
+ if (fs.existsSync(sourcePath)) {
136
+ fs.copyFileSync(sourcePath, targetPath);
137
+ }
138
+ }
139
+ spinner.succeed('配置文件复制成功');
140
+ }
141
+ catch (error) {
142
+ spinner.fail('配置文件复制失败');
143
+ throw error;
144
+ }
145
+ }
146
+ /**
147
+ * 创建 package.json
148
+ */
149
+ async createPackageJson() {
150
+ const spinner = (0, ora_1.default)('创建 package.json...').start();
151
+ try {
152
+ const packageJson = {
153
+ name: this.projectName,
154
+ version: '1.0.0',
155
+ description: '',
156
+ main: 'index.js',
157
+ scripts: {
158
+ lint: 'eslint . --ext .js,.jsx,.ts,.tsx,.vue',
159
+ 'lint:fix': 'eslint . --ext .js,.jsx,.ts,.tsx,.vue --fix',
160
+ format: 'prettier --write "**/*.{js,jsx,ts,tsx,vue,json,md,yml,yaml,css,scss,less}"',
161
+ prepare: 'husky install',
162
+ },
163
+ keywords: [],
164
+ author: '',
165
+ license: 'MIT',
166
+ devDependencies: {
167
+ '@commitlint/cli': '^17.8.1',
168
+ '@commitlint/config-conventional': '^17.8.1',
169
+ '@typescript-eslint/eslint-plugin': '^6.21.0',
170
+ '@typescript-eslint/parser': '^6.21.0',
171
+ 'eslint': '^8.57.0',
172
+ 'eslint-config-prettier': '^9.1.0',
173
+ 'eslint-plugin-prettier': '^5.1.3',
174
+ 'husky': '^8.0.3',
175
+ 'lint-staged': '^15.2.2',
176
+ 'prettier': '^3.2.5',
177
+ 'typescript': '^5.4.5',
178
+ },
179
+ };
180
+ fs.writeFileSync(path.join(this.projectPath, 'package.json'), JSON.stringify(packageJson, null, 2));
181
+ spinner.succeed('package.json 创建成功');
182
+ }
183
+ catch (error) {
184
+ spinner.fail('package.json 创建失败');
185
+ throw error;
186
+ }
187
+ }
188
+ /**
189
+ * 安装依赖
190
+ */
191
+ async installDependencies() {
192
+ const spinner = (0, ora_1.default)('安装依赖包(可能需要几分钟)...').start();
193
+ try {
194
+ // 检测包管理器
195
+ const packageManager = await this.detectPackageManager();
196
+ spinner.text = `使用 ${packageManager} 安装依赖...`;
197
+ await (0, execa_1.default)(packageManager, ['install'], {
198
+ cwd: this.projectPath,
199
+ stdio: 'pipe',
200
+ });
201
+ spinner.succeed('依赖安装成功');
202
+ }
203
+ catch (error) {
204
+ spinner.fail('依赖安装失败');
205
+ throw error;
206
+ }
207
+ }
208
+ /**
209
+ * 检测包管理器
210
+ */
211
+ async detectPackageManager() {
212
+ try {
213
+ await (0, execa_1.default)('pnpm', ['--version']);
214
+ return 'pnpm';
215
+ }
216
+ catch {
217
+ try {
218
+ await (0, execa_1.default)('yarn', ['--version']);
219
+ return 'yarn';
220
+ }
221
+ catch {
222
+ return 'npm';
223
+ }
224
+ }
225
+ }
226
+ /**
227
+ * 设置 Husky
228
+ */
229
+ async setupHusky() {
230
+ const spinner = (0, ora_1.default)('配置 Husky Git 钩子...').start();
231
+ try {
232
+ // 初始化 husky
233
+ await (0, execa_1.default)('npx', ['husky', 'install'], { cwd: this.projectPath });
234
+ // 创建 .husky 目录
235
+ const huskyDir = path.join(this.projectPath, '.husky');
236
+ if (!fs.existsSync(huskyDir)) {
237
+ fs.mkdirSync(huskyDir, { recursive: true });
238
+ }
239
+ // 复制 hook 文件
240
+ const templatesHuskyDir = path.join(__dirname, '../../templates/husky');
241
+ const hooks = ['commit-msg', 'pre-commit'];
242
+ for (const hook of hooks) {
243
+ const sourcePath = path.join(templatesHuskyDir, hook);
244
+ const targetPath = path.join(huskyDir, hook);
245
+ if (fs.existsSync(sourcePath)) {
246
+ fs.copyFileSync(sourcePath, targetPath);
247
+ // 添加执行权限(Unix/Linux/Mac)
248
+ if (process.platform !== 'win32') {
249
+ fs.chmodSync(targetPath, '755');
250
+ }
251
+ }
252
+ }
253
+ spinner.succeed('Husky 配置成功');
254
+ }
255
+ catch (error) {
256
+ spinner.fail('Husky 配置失败');
257
+ throw error;
258
+ }
259
+ }
260
+ /**
261
+ * 打印成功信息
262
+ */
263
+ printSuccessMessage() {
264
+ console.log(chalk_1.default.cyan('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
265
+ console.log(chalk_1.default.green.bold(' 项目已就绪!接下来你可以:'));
266
+ console.log(chalk_1.default.cyan('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'));
267
+ console.log(chalk_1.default.white(` cd ${this.projectName}`));
268
+ console.log(chalk_1.default.white(` npm run lint # 运行代码检查`));
269
+ console.log(chalk_1.default.white(` npm run lint:fix # 自动修复代码问题`));
270
+ console.log(chalk_1.default.white(` npm run format # 格式化代码`));
271
+ console.log(chalk_1.default.white(` git add .`));
272
+ console.log(chalk_1.default.white(` git commit -m "feat: 初始化项目" # 提交代码\n`));
273
+ console.log(chalk_1.default.cyan('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'));
274
+ console.log(chalk_1.default.yellow('💡 提示:'));
275
+ console.log(chalk_1.default.white(' • 代码提交会自动进行 ESLint 和 Prettier 检查'));
276
+ console.log(chalk_1.default.white(' • Commit 信息必须符合规范(如:feat: / fix: / docs: 等)'));
277
+ console.log(chalk_1.default.white(' • 网络层已集成指数退避重试和熔断机制\n'));
278
+ }
279
+ }
280
+ exports.Initializer = Initializer;
281
+ /**
282
+ * 快速初始化函数
283
+ */
284
+ async function quickInit(projectPath) {
285
+ const initializer = new Initializer(projectPath);
286
+ await initializer.initialize();
287
+ }
288
+ //# sourceMappingURL=Initializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Initializer.js","sourceRoot":"","sources":["../../src/init/Initializer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { Initializer, quickInit } from './Initializer';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.quickInit = exports.Initializer = void 0;
4
+ var Initializer_1 = require("./Initializer");
5
+ Object.defineProperty(exports, "Initializer", { enumerable: true, get: function () { return Initializer_1.Initializer; } });
6
+ Object.defineProperty(exports, "quickInit", { enumerable: true, get: function () { return Initializer_1.quickInit; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/init/index.ts"],"names":[],"mappings":";;;AAAA,6CAAuD;AAA9C,0GAAA,WAAW,OAAA;AAAE,wGAAA,SAAS,OAAA"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "dev-standard-cli",
3
+ "version": "1.0.0",
4
+ "description": "企业级前端研发标准化脚手架 - 集成代码质量流水线、网络层基建与自动化初始化",
5
+ "main": "dist/index.js",
6
+ "bin": {
7
+ "dev-standard": "bin/cli.js",
8
+ "ds-init": "bin/cli.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "prepublishOnly": "npm run build",
13
+ "test": "echo \"暂无测试\" && exit 0"
14
+ },
15
+ "keywords": [
16
+ "cli",
17
+ "scaffold",
18
+ "husky",
19
+ "commitlint",
20
+ "eslint",
21
+ "prettier",
22
+ "axios",
23
+ "standard",
24
+ "automation"
25
+ ],
26
+ "author": "fireworks",
27
+ "license": "MIT",
28
+ "files": [
29
+ "dist",
30
+ "bin",
31
+ "templates",
32
+ "README.md",
33
+ "LICENSE"
34
+ ],
35
+ "dependencies": {
36
+ "axios": "^1.7.2",
37
+ "chalk": "^4.1.2",
38
+ "commander": "^11.1.0",
39
+ "execa": "^5.1.1",
40
+ "inquirer": "^8.2.5",
41
+ "ora": "^5.4.1"
42
+ },
43
+ "devDependencies": {
44
+ "@types/inquirer": "^9.0.7",
45
+ "@types/node": "^20.12.7",
46
+ "typescript": "^5.4.5"
47
+ },
48
+ "engines": {
49
+ "node": ">=14.0.0"
50
+ },
51
+ "repository": {
52
+ "type": "git",
53
+ "url": "https://github.com/yourname/dev-standard-cli.git"
54
+ }
55
+ }
@@ -0,0 +1,31 @@
1
+ module.exports = {
2
+ env: {
3
+ browser: true,
4
+ es2021: true,
5
+ node: true,
6
+ },
7
+ extends: [
8
+ 'eslint:recommended',
9
+ 'plugin:@typescript-eslint/recommended',
10
+ 'plugin:prettier/recommended',
11
+ ],
12
+ parser: '@typescript-eslint/parser',
13
+ parserOptions: {
14
+ ecmaVersion: 'latest',
15
+ sourceType: 'module',
16
+ },
17
+ plugins: ['@typescript-eslint', 'prettier'],
18
+ rules: {
19
+ 'prettier/prettier': 'error',
20
+ '@typescript-eslint/no-explicit-any': 'warn',
21
+ '@typescript-eslint/no-unused-vars': [
22
+ 'error',
23
+ {
24
+ argsIgnorePattern: '^_',
25
+ varsIgnorePattern: '^_',
26
+ },
27
+ ],
28
+ 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
29
+ 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
30
+ },
31
+ };
@@ -0,0 +1,9 @@
1
+ {
2
+ "*.{js,jsx,ts,tsx,vue}": [
3
+ "eslint --fix",
4
+ "prettier --write"
5
+ ],
6
+ "*.{json,md,yml,yaml,css,scss,less}": [
7
+ "prettier --write"
8
+ ]
9
+ }
@@ -0,0 +1,11 @@
1
+ module.exports = {
2
+ semi: true,
3
+ singleQuote: true,
4
+ tabWidth: 2,
5
+ trailingComma: 'es5',
6
+ printWidth: 100,
7
+ arrowParens: 'always',
8
+ endOfLine: 'lf',
9
+ bracketSpacing: true,
10
+ useTabs: false,
11
+ };
@@ -0,0 +1,27 @@
1
+ module.exports = {
2
+ extends: ['@commitlint/config-conventional'],
3
+ rules: {
4
+ 'type-enum': [
5
+ 2,
6
+ 'always',
7
+ [
8
+ 'feat', // 新功能
9
+ 'fix', // 修复 bug
10
+ 'docs', // 文档变更
11
+ 'style', // 代码格式(不影响代码运行的变动)
12
+ 'refactor', // 重构(既不是新增功能,也不是修改bug的代码变动)
13
+ 'perf', // 性能优化
14
+ 'test', // 增加测试
15
+ 'chore', // 构建过程或辅助工具的变动
16
+ 'revert', // 回退
17
+ 'build', // 打包
18
+ ],
19
+ ],
20
+ 'type-case': [2, 'always', 'lower-case'],
21
+ 'type-empty': [2, 'never'],
22
+ 'subject-empty': [2, 'never'],
23
+ 'subject-full-stop': [2, 'never', '.'],
24
+ 'subject-case': [0],
25
+ 'header-max-length': [2, 'always', 100],
26
+ },
27
+ };
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env sh
2
+ . "$(dirname -- "$0")/_/husky.sh"
3
+
4
+ npx --no -- commitlint --edit $1
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env sh
2
+ . "$(dirname -- "$0")/_/husky.sh"
3
+
4
+ npx lint-staged