UNPKG

gchcg-cli

Version:
1 lines 1.37 kB
"use strict";const path=require("path"),fs=require("fs"),fse=require("fs-extra"),Command=require("./command"),log=require("./log"),Git=require("./git");class PublishCommand extends Command{init(){this.projectName=this._argv[0]||"",this.prod=!!this._cmd.prod,this.delete=!!this._cmd.delete,this.type=this._cmd.type,this.refreshToken=!!this._cmd.refreshToken}async exec(){const e=(new Date).getTime();try{this.prepare();const e=new Git({...this.projectInfo,type:this.type,prod:this.prod,del:this.delete,refreshToken:this.refreshToken});await e.prepare(),await e.commit(),await e.publish()}catch(e){log.error(e.message)}log.verbose("本次执行指令耗时:"+((new Date).getTime()-e)/1e3+"秒")}prepare(){const e=process.cwd(),s=path.resolve(e,".git");if(!fs.existsSync(s))throw new Error("未找到 .git 文件夹,初始化 git 后重试");const t=path.resolve(e,"package.json");if(!fs.existsSync(t))throw new Error("package.json不存在!");const r=fse.readJsonSync(t),{name:i,version:o,scripts:n}=r;if(log.verbose("package.json 检查必填信息 name, version, scripts"),!(i&&o&&n&&n.build))throw new Error("package.json信息不全,请检查是否存在name、version和scripts(需提供build命令)!");this.projectInfo={name:i,version:o,dir:e}}}function init(e){return new PublishCommand(e)}module.exports=init,module.exports.PublishCommand=PublishCommand;