# 同构小程序构建工具

> 本地构建 -> 上传QQ后台，获取上传后的开发版链接 -> 生成二维码（添加构建人、版本号、commit_id）->企微机器人通知发送二维码到群

## 安装方法(Install）

### 方式一：（当前方案）

1. 拉取`https://git.bilibili.co/smallapp/bili-small-app-builder`仓库代码
2. 拉取的代码根目录下执行：npm install or yarn 安装包依赖
3. npm link or yarn link

### 方式二：直接 npm 安装全局 `(暂时不用)`

```bash
yarn global add bili-small-app-builder
```

或

```bash
npm i -g bili-small-app-builder
```

## 使用方法(Usage)

### 前置条件：

> 开启`QQ开发者工具`安全端口 并 登录，`QQ开发者工具`版本请保证是`0.3.1`，下载地址：[0.3.1](https://q.qq.com/wiki/tools/devtool/changelog.html#v0-3-1-2020-09-29)
> ![0](./doc/imgs/1.jpeg)

### 命令行常用使用范例：

- 全量打包上传，自动叠加第四位版本号并复制最终的 app.json 文件：

```bash
bss uni -ai -j -v ++ -u "本次更新内容说明"
```

- 只打包频道、详情页，不更新版本号，也不上传：

```bash
bss uni -ai -p channel,detail -v
```

- 不打包，不更新版本，只上传：(多用于，构建成功但上传失败的情况)

```bash
bss uni -v -U "本次更新内容说明"
```

## 命令行参数说明(Cli Options)

> 执行`bss uni --help`可以查看参数使用说明

| 参数名                      | 简介                   | 必填 | 可选值/格式                                                                          | 默认行为   |
| --------------------------- | ---------------------- | ---- | ------------------------------------------------------------------------------------ | ---------- |
| -ai, --auto-install         | 是否自动更新npm包依赖       | N    |                                                                                      | 不自动更新 |
| -i, --install         | 是否重新安装npm包依赖       | N    |                                                                                      | 不重新安装 |
| -j, --json                  | 是否拷贝 app.json 文件 | N    | 需要拷贝的 app.json 文件路径配置在 bl.config.js 内，详见下文说明                     | 不拷贝     |
| -p, --pages &lt;pages&gt;   | 仅打包指定页面         | N    | 页面名称用英文逗号隔开                                                               | 全量打包   |
| -v, --appVersion [version]  | 更新版本号             | N    | [见具体说明]()                                                                       | 不更新版本 |
| -u, --upload [message]      | 是否上传               | N    | [见具体说明]()                                                                       | 不上传     |
| -U, --upload-only [message] | 是否仅上传             | N    | 传了这个参数，不做任何构建，仅上传。会忽略 -u, -ai, -j, -p，仅 -v 生效[见具体说明]() | 不上传     |

### -v, --appVersion [version]

| 写法       | 说明                                                    | 效果示例                                  |
| ---------- | ------------------------------------------------------- | ----------------------------------------- |
| (不写开关) | 命令行等待用户输入版本号，输入格式同下                  |                                           |
| -v         | 不更新版本号                                            |                                           |
| -v ""      | 不更新版本号                                            |                                           |
| -v +       | 第三位数字+1                                            | 1.2.3 --> 1.2.4<br/>1.2.3.1 --> 1.2.4     |
| -v ++      | 第四位数字+1                                            | 1.2.3 --> 1.2.3.1<br/>1.2.3.1 --> 1.2.3.2 |
| -v +++     | 第三位数字+1，第四位数字改成 1                             | 1.2.3 --> 1.2.4.1<br/>1.2.3.1 --> 1.2.4.1 |
| -v -       | 抹去第四位数字，保留前三位                              | 1.2.3 --> 1.2.3<br/>1.2.3.1 --> 1.2.3     |
| -v 2.3.4   | 改成对应版本号，必须是 3 位以上才有效，否则不更新版本号 |                                           |

### -u, --upload [message]

| 写法        | 说明                               |
| ----------- | ---------------------------------- |
| (不写开关)  | 不上传（写了 -U 除外）             |
| -u          | 上传，message 留空（写了 -U 除外） |
| -u ""       | 上传，message 留空（写了 -U 除外） |
| -u "......" | 带 message 上传（写了 -U 除外）    |

### -U, --upload-only [message]

| 写法        | 说明                    |
| ----------- | ----------------------- |
| (不写开关)  | 不上传（写了 -u 除外）  |
| -U          | 仅上传，message 留空    |
| -U ""       | 仅上传，message 留空    |
| -U "......" | 仅上传，带 message 上传 |

## 相关资源

+ tapd: https://www.tapd.bilibili.co/43838420/prong/tasks/view/1143838420002378287
+ QQ后台地址：https://q.qq.com/#/

## 常见问题(Q & A)

-----------
Q: 构建完成后，去哪里查看我的二维码？

A: 推送结果 -> 企微群（群名:**QQ小程序构建二维码**）中推送下图的生成二维码，右上是版本号，左下是commit_id。

+ 二维码分为粉色（完整版），黑色（只打部分页面）两种

![5](./doc/imgs/4.jpeg)
![6](./doc/imgs/5.jpeg)

------------

Q: 如果遇到截图问题，应该怎么办？
![7](./doc/imgs/6.jpg)

A: 关掉QQ小程序开发者工具（CMD + Q），重新运行构建命令即可

------------

## bl.config.js (待补充)

## 版本历史 (Version History) （暂略）

## 维护者(Author)

> @SYY @alexq @shuangwhywhy
