Update autopublish

This commit is contained in:
fisher 2022-04-01 20:48:41 +08:00
parent c9c51ebfb8
commit 4d55caeb02

View File

@ -24,10 +24,12 @@
const path = require("path"); const path = require("path");
const shelljs = require("shelljs"); const shelljs = require("shelljs");
const createLogger = require("logsets"); const createLogger = require("logsets");
const { Command } = require('commander'); const { Command ,Option} = require('commander');
const dayjs = require("dayjs"); const dayjs = require("dayjs");
const relativeTime = require("dayjs/plugin/relativeTime"); const relativeTime = require("dayjs/plugin/relativeTime");
dayjs.extend(relativeTime); dayjs.extend(relativeTime);
require('dayjs/locale/zh-cn')
dayjs.locale("zh-cn");
const logger = createLogger(); const logger = createLogger();
@ -99,15 +101,21 @@ function execShellScript(script){
.option("-f, --force", "强制发布") .option("-f, --force", "强制发布")
.option("--no-auto-commit", "不提交源码") .option("--no-auto-commit", "不提交源码")
.option("-q, --query", "询问是否发布,否则会自动发布") .option("-q, --query", "询问是否发布,否则会自动发布")
.option("-i, --version-increment-step [value]", "版本增长方式取值major,minor,patch",'patch') .addOption(new Option('-i, --version-increment-step [value]', '版本增长方式取值major,minor,patch').default("patch").choices(['major', 'minor', 'patch']))
.action(async (options) => { .action(async (options) => {
console.log(JSON.stringify(options)) console.log(JSON.stringify(options))
const {versionIncrementStep,autoCommit} = options const {versionIncrementStep,autoCommit} = options
if(!["major","minor","patch"].includes(versionIncrementStep)){
versionIncrementStep = "patch"
}
const packageFolder = process.cwd() const packageFolder = process.cwd()
const packageName = path.basename(packageFolder) const packageName = path.basename(packageFolder)
const pkgFile = path.join(packageFolder,"package.json") const pkgFile = path.join(packageFolder,"package.json")
const { scripts } = fs.readJSONSync(pkgFile) const { version,scripts } = fs.readJSONSync(pkgFile)
logger.log("包名:{}",`${packageName}`) logger.log("包名:{}",`${packageName}`)
@ -127,25 +135,24 @@ function execShellScript(script){
const result = await inquirer.prompt({ const result = await inquirer.prompt({
name:"isCommit", name:"isCommit",
type:"confirm", type:"confirm",
message:"是否提交未提交的文件?" message:"是否提交以下文件?"
}) })
isCommit = result.isCommit isCommit = result.isCommit
} }
if(isCommit){ if(isCommit){
execShellScript(`git commit -a -m "Update ${packageName}"`) execShellScript(`git commit -a -m "Update ${packageName}"`)
} }
}
// 第二步:更新最新的版本号
execShellScript(`npm version ${versionIncrementStep}`)
}
// 由于每次发布均会更新npm version patch并且需要提交代码 // 由于每次发布均会更新npm version patch并且需要提交代码
// const lastCommit = shelljs.exec(`git log --format=%cd --date=iso -1 -- ${pkgFile}`, { silent: true }).stdout.trim() // const lastCommit = shelljs.exec(`git log --format=%cd --date=iso -1 -- ${pkgFile}`, { silent: true }).stdout.trim()
// // 增加版本号 // // 增加版本号
// shelljs.exec(`npm version ${versionIncrementStep}`, { silent: true }).stdout.trim()
// // // //
// shelljs.exec(`pnpm publish --access publish`, { silent: true }).stdout.trim() // shelljs.exec(`pnpm publish --access publish`, { silent: true }).stdout.trim()