@cloudbase/node-sdk
Version:
tencent cloud base server sdk for node.js
65 lines (58 loc) • 1.75 kB
JavaScript
const inquirer = require('inquirer')
const semver = require('semver')
const package = require('../package.json')
const util = require('util')
const exec = util.promisify(require('child_process').exec)
async function publish() {
const config = await inquirer.prompt([
{
type: 'list',
name: 'version',
message: '请选择本次发布的版本类型:',
choices: ['Prerelease', 'Patch', 'Minor', 'Major'],
filter: function(val) {
return val.toLowerCase()
}
},
{
type: 'confirm',
name: 'isLatest',
message: '是正式版发布吗?',
default: false
}
])
if (config.isLatest && config.version === 'prerelease') {
console.log('PreRelease版本不能发布正式版!')
return
}
if (!config.isLatest && config.version !== 'prerelease') {
config.version = 'pre' + config.version
}
let newVersion = semver.inc(package.version, config.version)
const publishCommand = 'npm publish' + (config.isLatest ? '' : ' --tag beta')
const confirmMessage = `请确认核对信息:
==========发布信息==========
当前版本:${package.version}
发布版本:${newVersion}
执行命令:npm version ${newVersion} && ${publishCommand}
==========发布信息==========
以上信息确认无误?`
const confirm = await inquirer.prompt([
{
type: 'confirm',
name: 'result',
message: confirmMessage,
default: false
}
])
if (confirm.result) {
console.log('发布中...')
const { stdout, stderr } = await exec(
`npm version ${newVersion} && ${publishCommand}`
)
console.log('stdout:', stdout)
console.log('stderr:', stderr)
console.log('发布成功!')
}
}
publish()