1.0.1 • Published 3 months ago

@zhaiun/weapp-terminal-cli v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
3 months ago

小程序命令行发布工具

为规范小程序初始化/发布提供的微信开发者命令行控制工具

简介

特性

  • 支持多达 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

设置 minortrue 会将 patch 重置为 0

  • 若配置--major -> 7.0.0

设置 majortrue 会将 minorpatch 重置为 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
1.0.1

3 months ago

1.0.0

3 months ago