@taole/deploy-helper 1.2.3 → 1.2.5

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/index.mjs CHANGED
@@ -126,8 +126,31 @@ function registerCommand(command, handler, help) {
126
126
  };
127
127
  }
128
128
 
129
+ function cmdVersion() {
130
+ const { version } = getPackageJson();
131
+ console.log(`当前版本: ${version}`);
132
+ console.log(`检查更新请使用命令: check-update`);
133
+ }
134
+
135
+ async function cmdCheckUpdate(notifier) {
136
+ const packageJson = getPackageJson();
137
+ console.log(`当前版本: ${packageJson.version}`);
138
+ try {
139
+ const info = await notifier.fetchInfo();
140
+ console.log(`最新版本: ${info.latest}`);
141
+ if (info.latest === info.current) {
142
+ console.log('已是最新版');
143
+ } else {
144
+ console.log(`建议更新: npm i -g ${packageJson.name}`);
145
+ }
146
+ } catch {
147
+ console.log('无法获取最新版本信息');
148
+ }
149
+ }
150
+
129
151
  // 注册命令
130
152
  function doRegisterCommands() {
153
+
131
154
  registerCommand("create", cmdProjectCreate, "创建项目");
132
155
  registerCommand("publish", cmdProjectPublish, "更新项目到H5平台");
133
156
  registerCommand("pull", cmdProjectPull, "拉取已有项目到本地");
@@ -135,6 +158,11 @@ function doRegisterCommands() {
135
158
  registerCommand("whoami", cmdWhoami, "查看当前登录用户信息");
136
159
  registerCommand("logout", cmdLogout, "退出登录");
137
160
  registerCommand("login", cmdLogin, "登录");
161
+ registerCommand("version", cmdVersion, "查看当前版本(-v/--version)");
162
+ registerCommand("check-update", cmdCheckUpdate, "检查是否有新版本");
163
+ // 别名不展示在 help 列表
164
+ commandMap["-v"] = { handler: cmdVersion, help: "" };
165
+ commandMap["--version"] = { handler: cmdVersion, help: "" };
138
166
  }
139
167
 
140
168
  doRegisterCommands();
@@ -143,19 +171,14 @@ async function main() {
143
171
  const packageJson = getPackageJson();
144
172
  const version = packageJson.version;
145
173
 
146
- updateNotifier({
174
+ const notifier = updateNotifier({
147
175
  pkg: packageJson,
148
176
  updateCheckInterval: 1000 * 60 * 60 * 24,
149
- }).notify({
150
- defer: false,
151
- message: `发现新版本 {latestVersion}(当前 {currentVersion}),建议更新:\n{updateCommand}`,
152
177
  });
153
178
 
154
179
  // process.argv.includes("--debug") ||
155
180
  // 默认开启debug debug目前只是打印日志的时候额外打印时间
156
181
  setDebug(true);
157
- log(`deploy-helper v${version}`);
158
-
159
182
 
160
183
  // await devTest();
161
184
  // log(`process.argv: ${process.argv[2]} ${process.argv[3]} ${process.argv[4]}`);
@@ -170,10 +193,23 @@ async function main() {
170
193
  command = "help";
171
194
  }
172
195
 
196
+ const isVersionCommand = ["version", "-v", "--version"].includes(command);
197
+ const isCheckUpdateCommand = command === "check-update";
198
+ if (!isVersionCommand && !isCheckUpdateCommand) {
199
+ log(`deploy-helper v${version}`);
200
+ notifier.notify({
201
+ defer: false,
202
+ isGlobal: true,
203
+ message: `发现新版本 {latestVersion}(当前 {currentVersion}),建议更新:\n{updateCommand}`,
204
+ });
205
+ }
206
+
173
207
  if(registeredCommand){
174
208
  const handler = registeredCommand.handler;
175
209
  try {
176
- await Promise.resolve(handler());
210
+ await Promise.resolve(
211
+ handler === cmdCheckUpdate ? cmdCheckUpdate(notifier) : handler()
212
+ );
177
213
  process.exit(0);
178
214
  } catch (error) {
179
215
  log(`执行命令失败: ${error}`);
@@ -195,6 +231,7 @@ async function main() {
195
231
  console.log(`command: pipeline {pipelineName|pipelineId} [branch] 触发流水线{pipelineName|pipelineId}, 指定分支(可省略)`);
196
232
  Object.keys(commandMap).forEach(command => {
197
233
  const cmdObj = commandMap[command];
234
+ if (!cmdObj.help) return;
198
235
  console.log(`command: ${command} ${cmdObj.help}`);
199
236
  })
200
237
  process.exit(0);
package/lib/project.mjs CHANGED
@@ -246,12 +246,14 @@ export const cmdProjectCreate = async () => {
246
246
  log(`项目创建成功, 项目目录: ${name}`);
247
247
  git = simpleGit(projectDir);
248
248
  const targetPackageJson = getJsonConfig(projectDir, "package.json");
249
- targetPackageJson.name = name;
250
- fs.writeFileSync(
251
- path.join(projectDir, "package.json"),
252
- JSON.stringify(targetPackageJson, null, 2)
253
- );
254
- log(`项目package.json覆盖成功`);
249
+ if (targetPackageJson.name !== name) {
250
+ targetPackageJson.name = name;
251
+ fs.writeFileSync(
252
+ path.join(projectDir, "package.json"),
253
+ JSON.stringify(targetPackageJson, null, 2)
254
+ );
255
+ log(`项目package.json覆盖成功`);
256
+ }
255
257
  const readmePath = path.join(projectDir, "README.md");
256
258
  if (fs.existsSync(readmePath)) {
257
259
  const readmeContent = fs.readFileSync(readmePath, "utf8");
@@ -275,8 +277,12 @@ export const cmdProjectCreate = async () => {
275
277
  log(`README.md 追加访问信息成功`);
276
278
  }
277
279
  }
278
- await git.add(".");
279
- await git.commit(`-#DH-07 feat: 项目初始化`);
280
+ const status = await git.status();
281
+ if (!status.isClean()) {
282
+ await git.add(".");
283
+ await git.commit(`-#DH-07 feat: 项目初始化`);
284
+ log(`项目初始化提交成功`);
285
+ }
280
286
  log(`请cd至项目目录: ${projectDir} 手动执行: npm install 安装依赖`);
281
287
  process.exit(0);
282
288
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taole/deploy-helper",
3
- "version": "1.2.3",
3
+ "version": "1.2.5",
4
4
  "description": "脚本部署工具,用于将项目部署到测试环境或生产环境",
5
5
  "main": "index.mjs",
6
6
  "type": "module",