分包
1、除了tab 页,其他页面都放在subPackages 里面;
2、开发环境,如果主包还是过大,导致不能预览 ,可以在命令行末尾加上 --minimize,但也会导致代码极致压缩,不能在工具中的source 打断点调试;
3、不要在.json 里写注释,因为我们待会还会用到fs 修改.json 里面的信息,fs 读取.json 文件,有注释的话无法读取。
4、如果统一平台有多个账号的情况下,需要对不同的账号部分功能分别开发,这时就可以使用自定义自定义条件编译;
5、在package.json文件中 ’uni-app‘的扩展配置中设置条件编译:
- 如图’wx-zmn’, “defined”:{“WX-ZMN”:true}, defined里面官方建议大写;
- 如何使用:
// #ifdef WX-ZMN
let a=’’;
// #endif
6、命令行解析
- 还是拿图中 ‘wx-zmn’ 命令行举例
“test:wx-zmn”: “node src/fs.js && cross-env UNI_OUTPUT_DIR=dist/test/wx-zmn NODE_ENV=development uniapp-cli custom wx-zmn”
“wx-zmn”: “UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch --minimize”
- 自定义的命令行中一定要加上 custom , custom后加自定义名称,编译过程中需要fs文件系统操作时,fs文件一定要放在命令行行首或行尾 ,中间用 && 连接 ,如 node src/fs.js &&
7、uni-app中默认打包输出文件,开发环境dev/平台名称, 生产环境build/平台名称, 但是有时候项目需要我们自定义输出文件:
- 比如需要打同一平台不同appid账号的包,输出文件都是mp-weixin,下个包就会覆盖前一个包的内容
- 虽然uni-app 的框架是基于vue 的,但是并不能像vue 的项目一样在vue.config.js 中配置 output ,但是天无绝人之路!命令行配置:
UNI_OUTPUT_DIR=dist/test/wx-zmn
- 这样就可以根据自己的需要打包到不同位置了
8、利用fs 修改配置文件:
我这里主要是针对同一平台的不同账号打包,需要修改manifest.json 里面的appId 打包,同学们也可以根据自己的情况活用fs文件系统。对开发过程是非常有利的。
- 这里主要用到的就是写入功能;
let manifest = require('./manifest');
fs.promises.writeFile(`${__dirname}/manifest.json`,JSON.stringify(manifest,null, 2)).then( r => {
console.log('写入成功');
});