UNPKG

uni-packing-wgt

Version:

uniapp wgt多环境打包、调试、发布(七牛云)插件

124 lines (81 loc) 4.24 kB
## 介绍 由于官方的HBuilderX编译器打包wgt每次都要手动的操作有些繁琐,也不支持多环境打包,在开发阶段与原生项目交互调试是极其不方便。 而`uni-packing-wgt`正好可以解决这些问题。 `uni-packing-wgt`是uniapp跨平台多环境资源打包、调试、发布的脚本工具。 主要特性: - 支持同时构建多个环境资源(dev、beta、release)包,也包括了wgt包。 - 支持上传发布到七牛云平台,其他云平台暂不支持,支持七牛文件CDN缓存刷新。 - 在构建资源包时也可以同步内置到原生项目上,方便在开发阶段与原生间的交互调试。 - 支持版本号自增,如果在原生项目上内置资源包调试,此时可用上,因为内置资源包调试版本号必须增加才会生效。 > 工具仅限于vite cli创建的项目使用,不支持HBuilderX创建的项目。 ## 安装使用 安装: ```bash npm i uni-packing-wgt ``` 1、在`package.json`中配置uniapp的打包命令,如下: ```json "build:app-plus-dev": "uni build -p app-plus --mode development --outDir=./dist/dev/app", "build:app-plus-beta": "uni build -p app-plus --mode beta --outDir=./dist/beta/app", "build:app-plus-release": "uni build -p app-plus --mode production --outDir=./dist/release/app" ``` 其中`development`、`beta`、`production`是vite多环境配置的文件名,vite必须遵守这种命名规范,不然脚本会执行失败。 2、执行`build-wgt`命令行生成dist资源和uni wgt包,从1.2.0版本可以携带环境参数执行,之前config.json的runDev、runBeta、runRelease字段已弃用。 - -d:dev环境,不带参数,默认是dev环境 - -b:beta环境 - -r:release环境 ```bazaar build-wgt -d ``` > 如果是在vscode和命令终端上运行命令,记得加上`npx`,即`npx build-wgt`, WebStorm则不用。 在初次执行命令时,会在项目根目录创建三个配置文件,可根据需求自由配置: - config.json:常规配置,比如运行环境、版本、文件拷贝、上传等管理 - config-output.json:配置文件拷贝的输入、输出目录,用于uni模块在dev环境与原生资源同步调试 - config-release.json:发布环境的配置,比如cdn缓存、后台配置同步的管理 > config-output.json和config-release.json文件记得在`.gitignore`配置忽略不用提交,每个开发者的参数是不一样的。 **config.json** ```json { "runDev": true, // 指定打包的环境 "runBeta": false, "runRelease": false, "refreshUrl": true, // 是否刷新七牛cdn缓存 "isIncrementVersion": true, // 版本是否自增 "uploadWgtPackage": false, // wgt包是否上传到云平台上,需要结合upload参数使用 "pkgCopyToNativeDir": false, // 是否将资源包同步到原生项目上,需要在config-output.json配置路径 "upload": { // 七牛配置参数 "devAccessKey": "", "devSecretKey": "", "devBucket": "", "devDomainName": "", "devDir": "app" } } ``` 生成环境的七牛参数需要在`config-release.json#upload`配置,如果是外部使用,其他参数无须配置。 在打包资源同步到原生项目中调试,需要在`config-output.json`文件中配置原生项目的目标目录。以Android为例: > 同步到原生项目中调试,需要版本自增才会生效,把`isIncrementVersion`设置`true`即可。 ```json { "sourceDir": "./dist/dev/app", "targetDir": "替换成项目路径/app/src/main/assets/apps/替换成uniAppId/www" } ``` - sourceDir: 是uniapp的资源包的相对路径,默认是`./dist/dev/app`; - targetDir: 原生项目的路径,建议放绝对路径。 以dev环境为例,控制台输出结果: ``` bash hzwei@HZWeis-Mac-mini uni-mall-staff % build-wgt ======开始生成资源包===== ======资源包生成完成===== ======资源包开始压缩===== { status: 'fulfilled', value: './dist/dev/__UNI__xxxx60.wgt' } ======资源包压缩任务完成===== ======资源包开始复制===== { hash: 'Fop4lZ8NADlAsThMVWIiTjoTh_JT', key: 'app/dev/__UNI__xxxx60.wgt' } 前往刷新url: https://xxxx.com/app/dev/__UNI__xxxx60.wgt ======资源包上传完成===== ```