1.0.6 • Published 10 months ago

@johnsonhuang4396/wechat-mini-ci v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

wechat-mini-ci

English | 简体中文

微信小程序上传、预览一步搞定,告别手写发布脚本

本项目灵感来源若川大佬的mini-ci,感谢前辈的贡献

使用前请确保已经详细阅读 miniprogram-ci官方文档,并在 微信公众平台 开启代码上传功能 (如果是个人使用,建议关闭白名单功能,否则可能因IP变更导致发布失败)

npm version jsDocs.io github release NPM Unpacked Size NPM License NPM Downloads

如何使用:

npm i -D @johnsonhuang4396/wechat-mini-ci

npm i -g @johnsonhuang4396/wechat-mini-ci #全局安装使用

npx @johnsonhuang4396/wechat-mini-ci [command] #也可以不安装直接使用,可以确保使用最新版本

你可以通过命令行调用wechat-mini-ci,也可以通过脚本形式调用导出的previewupload函数

previewupload函数均已内置初始化功能,你不需要自行初始化。但如果有自定义的需求,可以通过调用Project并传入配置项来进行自定义操作👇:

import { Project } from '@johnsonhuang4396/wechat-mini-ci'

const {
  instance, // 初始化对象,对应miniprogram-ci的project,
  options, // 初始化时传入的配置项
  preview,
  upload
} = new Project({ ...传入配置项 }) // Project在调用时会自动初始化,不需要重复初始化

现在假设你的项目路径如下:

dist
|- build
|-- mp-weixin
│
src
├─ dir1
└─ dir2
...
|- ci.config.ts

并在ci-config.ts中配置如下代码:

import { defineConfig } from '@johnsonhuang4396/wechat-mini-ci'

export default defineConfig({
  name: 'wechat-mini-program',
  projectPath: './dist/build/mp-weixin/',
  privateKeyPath: '填入private-key所在的相对/绝对路径',
  appid: '填入小程序的appid'
})

然后在项目的根目录下打开终端,输入如下指令,即可实现上传、预览:

wmc p #预览
wmc u #上传

如果你有多个小程序管理的需求,defineConfig也支持传入数组:

export default defineConfig([
  {
    name: 'wechat-mini-program1',
    projectPath: '填入打包后的小程序路径',
    privateKeyPath: '填入private-key所在的相对/绝对路径',
    appid: '填入小程序的appid'
  },
  {
    name: 'wechat-mini-program2',
    projectPath: '填入打包后的小程序路径',
    privateKeyPath: '填入private-key所在的相对/绝对路径',
    appid: '填入小程序的appid'
  },
])

然后在项目的根目录下打开终端,可以选择操作一个、多个小程序:

wmc p #默认情况下为全量预览
wmc p -s #选择一个小程序进行预览
wmc p -m #选择多个小程序进行预览

除了wmc外,你还可以使用如下命令来调用👇 (使用前请确保没有重复的命令)

wechat-mini-ci
mini-ci
ci

当然,ci.config.ts也不局限于这个名称,下面的文件名同样会被当作wechat-mini-ci的配置文件进行处理👇:

ci.config.js
ci.config.mts
mini-ci.config.js
mini-ci.config.ts
mini-ci.config.mts
wx-mini.config.js
wx-mini.config.ts
wx-mini.config.mts

插件

提供了prevpost两种类型的插件,prev是在执行操作前运行,post则是在执行操作后运行 (如果多个小程序同时操作的情况下,将会多次执行插件,请尽可能确保插件的功能足够简单,否则可能会导致ci执行时间过长)

内置了print-qrcode插件,将在预览后打印出小程序的预览二维码

插件的实现如下👇:

// plugin.ts
export const plugin = {
  name: '插件名称',
  state: 'prev' | 'post',
  fn: ({ action, config }): void => {
    // action 是当前执行的操作,值为 preview 或 upload
    // config 包含了CLI的可选项和当前执行操作的小程序配置项
  }
}

// ci.config.ts
export default defineConfig({
  plugins: [
    plugin
  ]
})

配置项:

下面是defineConfig的配置项👇:

名称注释类型是否必填
projectPath项目路径string
type项目类型选项(仅限 'miniProgram')'miniProgram'
appid应用IDstring
privateKey私钥string
privateKeyPath私钥路径string
ignores忽略的文件或目录列表string[]
targetPlatform目标平台string
compileDefines编译定义{ [key: string]: string }
name项目名称string
version项目版本string
desc项目描述string
configPath配置文件路径string
packageJsonPathpackage.json 文件路径string
plugins插件列表Plugin[]
preview预览选项IPreviewOptions
upload上传选项IUploadOptions

下面是预览配置项👇:

名称注释类型是否必填
version上传选项中的版本号string
setting编译设置MiniProgramCI.ICompileSettings
desc描述string
robot机器人编号number
threads线程数number
useCOS是否使用 COS 存储boolean
onProgressUpdate进度更新回调函数(task: MiniProgramCI.ITaskStatus \| string) => void
allowIgnoreUnusedFiles是否忽略未使用的文件boolean
test测试模式boolean
bigPackageSizeSupport是否支持大包大小boolean
qrcodeFormat二维码格式base64 \| image \| terminal
qrcodeOutputDest二维码输出目标string
pagePath页面路径string
searchQuery搜索查询string

下面是上传配置项👇:

名称注释类型是否必填
version上传选项中的版本号string
setting编译设置MiniProgramCI.ICompileSettings
desc描述string
robot机器人编号number
threads线程数number
useCOS是否使用 COS 存储boolean
onProgressUpdate进度更新回调函数(task: MiniProgramCI.ITaskStatus \| string) => void
allowIgnoreUnusedFiles是否忽略未使用的文件boolean
test测试模式boolean
bigPackageSizeSupport是否支持大包大小boolean
qrcodeFormat二维码格式'base64' \| 'image' \| 'terminal'
qrcodeOutputDest二维码输出目标string
pagePath页面路径string
searchQuery搜索查询string
scene场景值number

CLI配置项:

基础配置项👇:

Usage:
  $ wechat-mini-ci <command> [options]

Commands:
  preview [root]  预览小程序
  upload [root]   上传小程序

For more info, run any command with the `--help` flag:
  $ wechat-mini-ci preview --help
  $ wechat-mini-ci upload --help

Options:
  -d, --dry      空跑
  -h, --help     Display this message
  -v, --version  Display version number

预览 | 上传配置项👇:

PS: 当配置了root时,config将会把root作为根目录进行操作

  -r, --robot <robot>   指定机器人,默认 1
  -c, --config <file>   指定一个文件为配置文件
  -s, --useSelect       选择一个配置操作
  -m, --useMultiSelect  选择多个配置操作
  -si, --silent         静默模式
  -d, --dry             空跑

最后

感谢antfu大佬的模版若川大佬的mini-ci开源

License

MIT License © Johnson Huang

1.0.6

10 months ago

1.0.4

10 months ago

1.0.3

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago

0.0.6

11 months ago

0.0.5

11 months ago

0.0.2

11 months ago

0.0.1

11 months ago