commit-pack 1.1.2 → 1.1.4
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.
- package/bin/index.mjs +19 -40
- package/bin/installWithProgress.js +8 -6
- package/lib/index.mjs +19 -41
- package/package.json +1 -1
package/bin/index.mjs
CHANGED
|
@@ -32,7 +32,6 @@ function findProjectRootWithLockFile() {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
const projectRoot = findProjectRootWithLockFile()
|
|
35
|
-
console.log(`📁 根目录:${projectRoot}`)
|
|
36
35
|
|
|
37
36
|
function detectPackageManager() {
|
|
38
37
|
if (fs.existsSync(path.join(projectRoot, 'pnpm-lock.yaml'))) {
|
|
@@ -47,7 +46,9 @@ function detectPackageManager() {
|
|
|
47
46
|
}
|
|
48
47
|
|
|
49
48
|
const packageManager = detectPackageManager()
|
|
49
|
+
console.log('')
|
|
50
50
|
console.log(`🍀 包管理器:${packageManager}`)
|
|
51
|
+
console.log(`📁 根目录:${projectRoot}`)
|
|
51
52
|
|
|
52
53
|
const packageJsonPath = path.join(projectRoot, 'package.json')
|
|
53
54
|
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'))
|
|
@@ -100,30 +101,6 @@ for (const [dep, version] of Object.entries(devDependenciesWithVersion)) {
|
|
|
100
101
|
}
|
|
101
102
|
|
|
102
103
|
installWithProgress(dependenciesToInstall, packageManager, projectRoot)
|
|
103
|
-
// // 安装缺失的依赖
|
|
104
|
-
// if (dependenciesToInstall.length > 0) {
|
|
105
|
-
// let installCommand = ''
|
|
106
|
-
|
|
107
|
-
// switch (packageManager) {
|
|
108
|
-
// case 'pnpm':
|
|
109
|
-
// installCommand = `pnpm add -D ${dependenciesToInstall.join(' ')}`
|
|
110
|
-
// break
|
|
111
|
-
// case 'yarn':
|
|
112
|
-
// installCommand = `yarn add ${dependenciesToInstall.join(' ')} --dev`
|
|
113
|
-
// break
|
|
114
|
-
// case 'bun':
|
|
115
|
-
// installCommand = `bun add -d ${dependenciesToInstall.join(' ')}`
|
|
116
|
-
// break
|
|
117
|
-
// default:
|
|
118
|
-
// installCommand = `npm install ${dependenciesToInstall.join(' ')} --save-dev`
|
|
119
|
-
// break
|
|
120
|
-
// }
|
|
121
|
-
|
|
122
|
-
// console.log(chalk.green(`⬇️ 安装依赖:${dependenciesToInstall.join(', ')}`))
|
|
123
|
-
// execSync(installCommand, { stdio: 'inherit', cwd: projectRoot })
|
|
124
|
-
// } else {
|
|
125
|
-
// console.log(log.warn('已安装 跳过...'))
|
|
126
|
-
// }
|
|
127
104
|
|
|
128
105
|
let isGitRepo = false
|
|
129
106
|
|
|
@@ -143,9 +120,9 @@ try {
|
|
|
143
120
|
}
|
|
144
121
|
|
|
145
122
|
if (isGitRepo) {
|
|
146
|
-
console.log(log.success('👍
|
|
123
|
+
console.log(log.success('👍 Git仓库已存在'))
|
|
147
124
|
} else {
|
|
148
|
-
console.log(log.warn('👌
|
|
125
|
+
console.log(log.warn('👌 Git仓库初始化...'))
|
|
149
126
|
execSync('git init', { stdio: 'inherit', cwd: projectRoot })
|
|
150
127
|
}
|
|
151
128
|
|
|
@@ -166,11 +143,11 @@ switch (packageManager) {
|
|
|
166
143
|
break
|
|
167
144
|
}
|
|
168
145
|
|
|
169
|
-
console.log(chalk.green(`🐶 Husky
|
|
146
|
+
console.log(chalk.green(`🐶 Husky初始化...`))
|
|
170
147
|
execSync(huskyInitCommand, { stdio: 'inherit', cwd: projectRoot })
|
|
171
148
|
|
|
172
149
|
// 执行 setup-script 中的所有文件
|
|
173
|
-
console.log(
|
|
150
|
+
console.log('🚀 创建配置文件...')
|
|
174
151
|
try {
|
|
175
152
|
const setupScripts = [
|
|
176
153
|
'prettier.sh',
|
|
@@ -184,40 +161,39 @@ try {
|
|
|
184
161
|
|
|
185
162
|
for (const script of setupScripts) {
|
|
186
163
|
const scriptPath = path.join(__dirname, '..', 'setup-script', script)
|
|
187
|
-
console.log(chalk.green(`🚀 执行脚本`))
|
|
188
164
|
execSync(`sh ${scriptPath}`, { stdio: 'inherit', cwd: projectRoot })
|
|
189
165
|
}
|
|
190
|
-
console.log(chalk.green('所有 setup-script 已执行完毕'))
|
|
191
166
|
} catch (error) {
|
|
192
|
-
console.error(
|
|
167
|
+
console.error(log.warn('❌ 文件创建出错'), error)
|
|
193
168
|
}
|
|
194
169
|
|
|
195
170
|
// 创建或更新脚本
|
|
196
171
|
if (!packageJson.scripts) {
|
|
197
172
|
packageJson.scripts = {}
|
|
173
|
+
console.log('🔥 创建或更新脚本...')
|
|
198
174
|
}
|
|
199
175
|
|
|
200
176
|
let modified = false
|
|
201
177
|
|
|
202
178
|
if (!packageJson.scripts.lint) {
|
|
203
179
|
packageJson.scripts.lint = 'eslint ./ --ext .ts,.tsx,.json --max-warnings=0'
|
|
204
|
-
console.log(
|
|
180
|
+
console.log(log.success('已添加 "lint" 至 package.json'))
|
|
205
181
|
modified = true
|
|
206
182
|
} else {
|
|
207
|
-
console.log(
|
|
183
|
+
console.log(log.warn('package.json 中已存在 "lint" 未作修改'))
|
|
208
184
|
}
|
|
209
185
|
|
|
210
186
|
if (!packageJson.scripts.format) {
|
|
211
187
|
packageJson.scripts.format = "prettier --config .prettierrc '.' --write"
|
|
212
|
-
console.log(
|
|
188
|
+
console.log(log.success('已添加 "format" 至 package.json'))
|
|
213
189
|
modified = true
|
|
214
190
|
} else {
|
|
215
|
-
console.log(
|
|
191
|
+
console.log(log.warn('package.json 中已存在 "format" 未作修改'))
|
|
216
192
|
}
|
|
217
193
|
|
|
218
194
|
// 添加或更新 "commit" 脚本
|
|
219
195
|
packageJson.scripts.commit = 'cz'
|
|
220
|
-
console.log(
|
|
196
|
+
console.log(log.success('已添加或更新 "commit" 脚本到 package.json'))
|
|
221
197
|
modified = true
|
|
222
198
|
|
|
223
199
|
// 添加或更新 "config.commitizen" 配置
|
|
@@ -228,15 +204,18 @@ if (!packageJson.config) {
|
|
|
228
204
|
packageJson.config.commitizen = {
|
|
229
205
|
path: 'node_modules/cz-customizable'
|
|
230
206
|
}
|
|
231
|
-
console.log(chalk.green('已添加或更新 "config.commitizen" 到 package.json'))
|
|
232
207
|
modified = true
|
|
233
208
|
|
|
234
209
|
// 写入修改后的 package.json
|
|
235
210
|
if (modified) {
|
|
236
211
|
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf8')
|
|
237
212
|
console.log(chalk.green('已更新 package.json'))
|
|
213
|
+
console.log('')
|
|
214
|
+
console.log('')
|
|
238
215
|
}
|
|
239
216
|
|
|
240
217
|
// 创建初始化标志文件
|
|
241
|
-
fs.writeFileSync(initFlagPath, 'initialized', 'utf8')
|
|
242
|
-
console.log(
|
|
218
|
+
// fs.writeFileSync(initFlagPath, 'initialized', 'utf8')
|
|
219
|
+
console.log(log.success(' 🎉🎉🎉 完成啦!'))
|
|
220
|
+
console.log('')
|
|
221
|
+
console.log(` 运行 git add 后 | 运行 ${packageManager} run commit 即可`)
|
|
@@ -9,12 +9,13 @@ export function installWithProgress(dependencies, packageManager, projectRoot) {
|
|
|
9
9
|
return
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
console.log(
|
|
12
|
+
console.log('')
|
|
13
|
+
console.log(chalk.cyan(`⬇️ 开始安装依赖...`))
|
|
13
14
|
|
|
14
15
|
const bar = new cliProgress.SingleBar({
|
|
15
|
-
format: `${chalk.green('📦 安装中')} {bar} {percentage}% | {value}/{total} | 正在安装: {dep}`,
|
|
16
|
-
barCompleteChar: '
|
|
17
|
-
barIncompleteChar: '
|
|
16
|
+
format: `${chalk.green('📦 安装中')} [{bar}] {percentage}% | {value}/{total} | 正在安装: {dep}`,
|
|
17
|
+
barCompleteChar: '▰',
|
|
18
|
+
barIncompleteChar: '▱',
|
|
18
19
|
hideCursor: true
|
|
19
20
|
})
|
|
20
21
|
|
|
@@ -37,9 +38,10 @@ export function installWithProgress(dependencies, packageManager, projectRoot) {
|
|
|
37
38
|
|
|
38
39
|
bar.update(i + 1, { dep })
|
|
39
40
|
}
|
|
40
|
-
|
|
41
|
+
bar.update(dependencies.length, { dep: chalk.green('✔️ 完成') })
|
|
41
42
|
bar.stop()
|
|
42
|
-
console.log(
|
|
43
|
+
console.log('')
|
|
44
|
+
console.log('')
|
|
43
45
|
} catch (err) {
|
|
44
46
|
bar.stop()
|
|
45
47
|
console.log(chalk.red('❌ 安装过程中出错'), err)
|
package/lib/index.mjs
CHANGED
|
@@ -30,7 +30,6 @@ function findProjectRootWithLockFile() {
|
|
|
30
30
|
return process.cwd(); // fallback
|
|
31
31
|
}
|
|
32
32
|
const projectRoot = findProjectRootWithLockFile();
|
|
33
|
-
console.log(`📁 根目录:${projectRoot}`);
|
|
34
33
|
function detectPackageManager() {
|
|
35
34
|
if (_fs.default.existsSync(_path.default.join(projectRoot, 'pnpm-lock.yaml'))) {
|
|
36
35
|
return 'pnpm';
|
|
@@ -43,7 +42,9 @@ function detectPackageManager() {
|
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
44
|
const packageManager = detectPackageManager();
|
|
45
|
+
console.log('');
|
|
46
46
|
console.log(`🍀 包管理器:${packageManager}`);
|
|
47
|
+
console.log(`📁 根目录:${projectRoot}`);
|
|
47
48
|
const packageJsonPath = _path.default.join(projectRoot, 'package.json');
|
|
48
49
|
const packageJson = JSON.parse(_fs.default.readFileSync(packageJsonPath, 'utf8'));
|
|
49
50
|
|
|
@@ -76,31 +77,6 @@ for (const [dep, version] of Object.entries(devDependenciesWithVersion)) {
|
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
79
|
(0, _installWithProgress.installWithProgress)(dependenciesToInstall, packageManager, projectRoot);
|
|
79
|
-
// // 安装缺失的依赖
|
|
80
|
-
// if (dependenciesToInstall.length > 0) {
|
|
81
|
-
// let installCommand = ''
|
|
82
|
-
|
|
83
|
-
// switch (packageManager) {
|
|
84
|
-
// case 'pnpm':
|
|
85
|
-
// installCommand = `pnpm add -D ${dependenciesToInstall.join(' ')}`
|
|
86
|
-
// break
|
|
87
|
-
// case 'yarn':
|
|
88
|
-
// installCommand = `yarn add ${dependenciesToInstall.join(' ')} --dev`
|
|
89
|
-
// break
|
|
90
|
-
// case 'bun':
|
|
91
|
-
// installCommand = `bun add -d ${dependenciesToInstall.join(' ')}`
|
|
92
|
-
// break
|
|
93
|
-
// default:
|
|
94
|
-
// installCommand = `npm install ${dependenciesToInstall.join(' ')} --save-dev`
|
|
95
|
-
// break
|
|
96
|
-
// }
|
|
97
|
-
|
|
98
|
-
// console.log(chalk.green(`⬇️ 安装依赖:${dependenciesToInstall.join(', ')}`))
|
|
99
|
-
// execSync(installCommand, { stdio: 'inherit', cwd: projectRoot })
|
|
100
|
-
// } else {
|
|
101
|
-
// console.log(log.warn('已安装 跳过...'))
|
|
102
|
-
// }
|
|
103
|
-
|
|
104
80
|
let isGitRepo = false;
|
|
105
81
|
try {
|
|
106
82
|
// 获取 Git 仓库的顶级目录
|
|
@@ -117,9 +93,9 @@ try {
|
|
|
117
93
|
isGitRepo = false;
|
|
118
94
|
}
|
|
119
95
|
if (isGitRepo) {
|
|
120
|
-
console.log(_chalkColor.log.success('👍
|
|
96
|
+
console.log(_chalkColor.log.success('👍 Git仓库已存在'));
|
|
121
97
|
} else {
|
|
122
|
-
console.log(_chalkColor.log.warn('👌
|
|
98
|
+
console.log(_chalkColor.log.warn('👌 Git仓库初始化...'));
|
|
123
99
|
(0, _child_process.execSync)('git init', {
|
|
124
100
|
stdio: 'inherit',
|
|
125
101
|
cwd: projectRoot
|
|
@@ -142,52 +118,51 @@ switch (packageManager) {
|
|
|
142
118
|
huskyInitCommand = 'npx husky init';
|
|
143
119
|
break;
|
|
144
120
|
}
|
|
145
|
-
console.log(_chalk.default.green(`🐶 Husky
|
|
121
|
+
console.log(_chalk.default.green(`🐶 Husky初始化...`));
|
|
146
122
|
(0, _child_process.execSync)(huskyInitCommand, {
|
|
147
123
|
stdio: 'inherit',
|
|
148
124
|
cwd: projectRoot
|
|
149
125
|
});
|
|
150
126
|
|
|
151
127
|
// 执行 setup-script 中的所有文件
|
|
152
|
-
console.log(
|
|
128
|
+
console.log('🚀 创建配置文件...');
|
|
153
129
|
try {
|
|
154
130
|
const setupScripts = ['prettier.sh', 'lintstagedrc.sh', 'eslint.sh', 'czrc.sh', 'husky.sh', 'cz-config.sh', 'commitlintrc.sh'];
|
|
155
131
|
for (const script of setupScripts) {
|
|
156
132
|
const scriptPath = _path.default.join(_dirname, '..', 'setup-script', script);
|
|
157
|
-
console.log(_chalk.default.green(`🚀 执行脚本`));
|
|
158
133
|
(0, _child_process.execSync)(`sh ${scriptPath}`, {
|
|
159
134
|
stdio: 'inherit',
|
|
160
135
|
cwd: projectRoot
|
|
161
136
|
});
|
|
162
137
|
}
|
|
163
|
-
console.log(_chalk.default.green('所有 setup-script 已执行完毕'));
|
|
164
138
|
} catch (error) {
|
|
165
|
-
console.error(
|
|
139
|
+
console.error(_chalkColor.log.warn('❌ 文件创建出错'), error);
|
|
166
140
|
}
|
|
167
141
|
|
|
168
142
|
// 创建或更新脚本
|
|
169
143
|
if (!packageJson.scripts) {
|
|
170
144
|
packageJson.scripts = {};
|
|
145
|
+
console.log('🔥 创建或更新脚本...');
|
|
171
146
|
}
|
|
172
147
|
let modified = false;
|
|
173
148
|
if (!packageJson.scripts.lint) {
|
|
174
149
|
packageJson.scripts.lint = 'eslint ./ --ext .ts,.tsx,.json --max-warnings=0';
|
|
175
|
-
console.log(
|
|
150
|
+
console.log(_chalkColor.log.success('已添加 "lint" 至 package.json'));
|
|
176
151
|
modified = true;
|
|
177
152
|
} else {
|
|
178
|
-
console.log(
|
|
153
|
+
console.log(_chalkColor.log.warn('package.json 中已存在 "lint" 未作修改'));
|
|
179
154
|
}
|
|
180
155
|
if (!packageJson.scripts.format) {
|
|
181
156
|
packageJson.scripts.format = "prettier --config .prettierrc '.' --write";
|
|
182
|
-
console.log(
|
|
157
|
+
console.log(_chalkColor.log.success('已添加 "format" 至 package.json'));
|
|
183
158
|
modified = true;
|
|
184
159
|
} else {
|
|
185
|
-
console.log(
|
|
160
|
+
console.log(_chalkColor.log.warn('package.json 中已存在 "format" 未作修改'));
|
|
186
161
|
}
|
|
187
162
|
|
|
188
163
|
// 添加或更新 "commit" 脚本
|
|
189
164
|
packageJson.scripts.commit = 'cz';
|
|
190
|
-
console.log(
|
|
165
|
+
console.log(_chalkColor.log.success('已添加或更新 "commit" 脚本到 package.json'));
|
|
191
166
|
modified = true;
|
|
192
167
|
|
|
193
168
|
// 添加或更新 "config.commitizen" 配置
|
|
@@ -197,15 +172,18 @@ if (!packageJson.config) {
|
|
|
197
172
|
packageJson.config.commitizen = {
|
|
198
173
|
path: 'node_modules/cz-customizable'
|
|
199
174
|
};
|
|
200
|
-
console.log(_chalk.default.green('已添加或更新 "config.commitizen" 到 package.json'));
|
|
201
175
|
modified = true;
|
|
202
176
|
|
|
203
177
|
// 写入修改后的 package.json
|
|
204
178
|
if (modified) {
|
|
205
179
|
_fs.default.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf8');
|
|
206
180
|
console.log(_chalk.default.green('已更新 package.json'));
|
|
181
|
+
console.log('');
|
|
182
|
+
console.log('');
|
|
207
183
|
}
|
|
208
184
|
|
|
209
185
|
// 创建初始化标志文件
|
|
210
|
-
|
|
211
|
-
console.log(
|
|
186
|
+
// fs.writeFileSync(initFlagPath, 'initialized', 'utf8')
|
|
187
|
+
console.log(_chalkColor.log.success(' 🎉🎉🎉 完成啦!'));
|
|
188
|
+
console.log('');
|
|
189
|
+
console.log(` 运行 git add 后 | 运行 ${packageManager} run commit 即可`);
|