1.0.6 • Published 8 months ago

@johnsonhuang4396/wechat-mini-ci v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
8 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

8 months ago

1.0.4

8 months ago

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago

0.0.6

9 months ago

0.0.5

9 months ago

0.0.2

9 months ago

0.0.1

9 months ago