@zhaiun/weapp-terminal-cli
v1.0.1
Published
为规范小程序初始化/发布提供的微信开发者命令行控制工具
Downloads
3
Readme
小程序命令行发布工具
为规范小程序初始化/发布提供的微信开发者命令行控制工具
简介
特性
- 支持多达 13 个内置任务满足绝大多数小程序初始化/发布场景
- 支持命令行和模块引入调用
- 独立配置文件
- 为版本描述生成提供数据支持
使用
npm i @zhaiun/weapp-terminal-cli -D
命令行调用
Usage: weapp-terminal-cli [options]
发布小程序
Options:
-v --version output the version number
-l, --login 强制重新登录
-d, --desc <message> 版本描述
-p, --package-manager <packageManager> 依赖管理工具(默认 yarn)
-t, --task <task> 设定执行任务,任务名以,分割
--cli <cliPath> 开发者工具命令行路径
--cwd <cwd> 任务执行绝对路径(默认执行路径)
--port <port> 开发者工具开启端口
--major [major] 升级(boolean)或设定(number)主版本号
--minor [minor] 升级(boolean)或设定(number)次版本号
--patch [patch] 升级(boolean)或设定(number)修复版本号
--custom [custom] 自定义命令值
--uncaught 不捕获 error
-h, --help output usage information
npm scripts 调用
{
"scripts": {
"prepare-release": "weapp-terminal-cli"
}
}
# yarn
yarn prepare-release [-d '测试发布']
# npm
npm run prepare-release [-- -d '测试发布']
注意: 使用npm run <scripts> [-- args]
传递参数时,--
不可省;yarn
无此限制
配置项
同命令行配置项
login: boolean
强制重新登录,默认 false
desc: string|function
版本描述,默认最近一条 commit message
可选类型:function(配置文件用)
接受一个对象参数 logs
- 当前 HEAD 与最新 tag 之间所有 commit message 数组
接受返回一个字符串
例:返回所有以 feat
开头的 commit message 集合
module.exports = {
options: {
desc: (logs) => {
return logs
.filter((item) => ~item.indexOf('feat'))
.map((item) => item.replace(/^feat:/, '').trim())
.join('、');
},
},
};
packageManager: 'yarn' | 'npm'
依赖管理工具(默认 yarn)
task: string
设定执行任务,任务名以,分割(命令行用)优先级大于配置文件 tasks
例: -t cli-check,cli-login
cli: string
开发者工具命令行路径,默认'/Applications/wechatwebdevtools.app/Contents/MacOS/cli'
cwd: string
任务执行绝对路径(默认执行路径)
注意: 该路径下必须存在 project.config.json
或传入projectConfig
,cli 任务才能执行
port: string
开发者工具开启端口(默认 6999)
gitPushFormat: function
执行 git-push
任务时生成 message 格式化方法(配置文件用)
默认:chore(release): ${version}
接受一个对象参数 options
- options.version 下一版本号若执行
update-version
则按照修改版本号规则计算,否则为当前 package.json 中版本号
接受返回一个字符串
例:
module.exports = {
options: {
gitPushFormat: ({ version }) => `chore: Publish version ${version}`,
},
};
projectConfig: object
项目构建配置(配置文件用)
若项目中不含有 project.config.json
则会依据该对象自动生成
生成模板参考project.js,使用extend2对象合并模块
major: string|boolean
升级(boolean)或设定(number)主版本号
minor: string|boolean
升级(boolean)或设定(number)次版本号
patch: string|boolean
升级(boolean)或设定(number)修复版本号
版本号变更规则
命令参数支持传入 --major
, --minor
, --patch
来确定下一版本号为 true 表示 + 1; 为数字表示 设定
例:当前版本 6.18.4
- 若不配置 -> 6.19.0
默认
minor = true
设置
minor
为true
会将patch
重置为 0
- 若配置
--major
-> 7.0.0
设置
major
为true
会将minor
,patch
重置为 0
- 若配置
--patch
-> 6.18.5
设置
patch
只会自增自己
- 若配置
--major 8
-> 8.18.4
配置为数字不会执行重置操作
- 若配置
--major 5 --minor 20 --patch 99
-> 5.20.99 会报错!
版本号计算后会和原版本号比对,不允许小于或等于原版本号,这里
5.20.99
<6.18.4
uncaught: boolean
任务执行失败不捕获错误,默认为 false 即 会捕获执行失败错误
任务
执行任务名列表
支持内置任务
cli-open
启动开发者工具cli-quit
关闭开发者工具cli-check
开发者工具路径校验cli-login
开发者工具登录git-clean
清除未 track 文件(project.config.json 会被忽略)git clean -dfx -e project.config.json
git-reset
清除暂存区git reset --hard
re-install
重装依赖cli-npm-build
npm 构建update-version
更新版本cli-upload
上传代码cli-preview
预览git-push
将当前工作区所有 变动加入暂存区,生成 commit 并推送到远程git add --all git commit -m ${message} git push origin
prepare-config
基于 release.config.js options.projectOptions 初始化 project.config.json 文件(保留原有 condition 配置)
支持通过 taskBuilder
构建任务
支持 package.json scripts
中定义脚本
customerTask
使用内部传入的 taskBuilder 创建自定义任务;在使用自动发布服务时必须使用该方式创建
架构
- node - child_process 执行系统命令
- 开发者工具 - 提供 cli 命令行工具
- 任务流 - 类似 gulp 定义任务 > 执行任务模式,流程由任务组成
首先使用 commander
解析命令行参数,并与默认配置合并;
然后使用 cosmiconfig
解析配置文件,获取文件配置与已有配置合并
按照 tasks 顺序依次执行
开发
环境
- node 10+
- yarn 1+
- 微信开发者工具 1.02.2001191+
生成软连接
使用 npm 软链调试模块包,参考你所不知道的模块调试技巧 - npm link
npm link
调用
生成软链后模块包相当于执行了 npm install -g
进入项目路径,执行对应命令即可
cd projectPath
weapp-terminal-cli --help