npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@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

设置 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