coordination-cli
v2.0.92
Published
``` { // 配置需要打包的各环境 bale: { // bale对象下的各key值,等价执行npm run test test: { // 在package.json的script脚本中 // 在执行node ./bin/index.js --publishOneOfENVToDist=${baleKey}指令时 // 是否在打包前拉取当前分支对应的远程分支代码
Downloads
90
Readme
一、安装与使用
1.全局安装:npm install -g coordination-cli
2.全局指令使用:coordination-cli <yourProjectName>。如果不传入自定义项目名,默认项目名称为coordination-cli
3.指令集说明(将根据项目实际开发需求,陆续扩展指令集)
3.1)使用:coordination-cli <yourProjectName> [options]
3.2)第一个参数如果不以 - 符开头,将认为是即将创建项目的项目名,否则将采用coordination-cli作为默认项目名。
3.3)选项:
3.3.1)-i,--install:创建完项目后将执行npm install为该项目安装node_modules包。
3.3.2)--publishAll:将env.js中bale字段配置的所有环境打包到一个zip压缩包中(npm run publishAll在本机环境中把env.js配置的各环境打包到本地,防止在运维环境或其他环境由于node版本等原因导致打包过程中发生各种异常)。
3.3.3)--publishOneOfENVToDist=${env}:在env.js文件中,bale对应的${env}字段配置的某一环境打包到一个zip压缩包中。
3.4)如因网络原因,执行指令后项目长时间未创建,请直接下载源码zip包。
3.5)env.js各配置项解释:
{
// 配置需要打包的各环境
bale: {
// bale对象下的各key值,等价执行npm run test
test: {
// 在package.json的script脚本中
// 在执行node ./bin/index.js --publishOneOfENVToDist=${baleKey}指令时
// 是否在打包前拉取当前分支对应的远程分支代码
// 默认值false
isPullRemoteBranchBeforePublish: true
},
daily: {},
smallProgramTest: {
// 寻找webpack目录下的配置文件,等价执行webpack --progress --config ./webpack/test.js
// 默认值为bale对象下对应的key值
webpackFile: 'test',
// 如webpackFile、NODE_ENV等配置项无法满足实际业务需求
// 配置此字段将优先执行该配置项自定义shell语句,其他配置项将无效
execShell: ''
},
dist: {
// 环境变量,等价执行cross-env NODE_ENV=production。默认值为bale对象下对应的key值
NODE_ENV: 'production',
webpackFile: 'build'
}
},
// 将bale字段配置的各环境打出来的输出包放入到此目录下,并对此目录做zip压缩
// 只限文件夹名称,不能加类似./等的文件路径符
// 默认值为ENV_dist
ENV_dist: 'ENV_dist',
// 例如执行npm run daily时,解压ENV_dist.zip压缩包后
// 将根据shell执行语句中的--copyOneOfENVToDist=daily配置项,从ENV_dist解压目录中,把daily目录下的所有文件复制到此配置文件目录下
// 需加类似./等的文件路径符
// 默认值为./dist
dist: './dist',
// 执行npm run publishAll时,如配置该字段,将优先执行该字段的自定义shell语句
// package.json文件scripts字段下publishAll的shell语句将不执行
publishAllExecShell: '',
// shell语句。默认值rm -rf ./node_modules && npm install
cleanAndInstall: '',
// shell语句。默认值rm -rf ./${ENV_dist} ./${ENV_dist}.zip ${dist}
cleanDist: '',
// 在执行npm run publishAll指令时,是否在打包前拉取当前分支对应的远程分支代码
// 保证打包前当前分支代码与远程代码保持一致。并在代码发生冲突等异常情况时,自动终止打包
isPullRemoteBranchBeforePublishAll: false
}3.6)--copyOneOfENVToDist=${NODE_ENV_or_baleKey}:一般运维服务器执行此配置项对应的脚本执行语句(例如npm run daily),从解压的目录(${ENV_dist}目录下的各项目文件夹名称是bale中配置的NODE_ENV字段的value值或bale下的各key值)中把daily文件夹下的所有文件复制到dist文件目录下
3.7)huskyConfig.js各配置项解释:
{
// 日常操作时,是禁止将测试环境分支代码合并进任何非测试环境分支的
// 此字段为各测试环境分支名,比如测试环境分支名为test,配置字段为['test']后
// 当在任何非测试分支(比如master)执行git pull origin test或git merge test时,都会给出醒目的提示警告
testBranch: [],
}