unir-cli是一个利用RN编译到多端的打包工具,在三端一致以后,我们RN开发,Web开发,mini开发仍然需要维护多套代码, 这个打包工具,就是为了解决这种不一致问题应运而生的。Unir是法语统一的意思,意为多端统一,也可以认为是Uni-rn的缩写。
执行以下指令,选择release版本的unir-cli
yarn config set registry http://npmrepo.corp.qunar.com
yarn global add @qnpm/unir-cli
unir init 对项目进行多端初始化
unir dev 启动开发服务,其中-t为必须参数
-t '--target <env>', '默认web,可选 web|wechat'
-p '--port <port>', '端口号'
-f '--force', '强制删除依赖和缓存,从0开始打包项目', 默认不开启
-d '--dev <branch>', '切换qrn-shadow打包项目分支','release', 默认release
-a '--analyze', '开启包解析',默认不开启
-h '--hot', '开启热更新',默认不开启
-n '--dependence-name', '本地链接子包的名称, 如果在custom中配置yarn link仍然不能满足需求,可以使用此选项', 默认不开启
-s '--speed-analyze', '开启打包速度分析', 默认不开启
-N '--no-reIntall-mirror', '不重新安装mirror镜像依赖, 如果不是首次启动应用, 并且确认unir.config.js中的qrnMirrorVersion没有改动, 建议开启此选项', 默认不开启
unir build 打包,其中-t为必须参数
-t '--target <env>', '默认web,可选 web|wechat'
-f '--force', '是否开启强制刷新',默认不开启
-d '--dev <branch>', '切换qrn-shadow打包项目分支','release', 默认release
-a '--analyze', '开启包解析',默认不开启
examples:
// 在端口2020启动web开发服务
unir dev -t web -p 2020
// 打包web产物
unir build -t web
// 强制清除打包缓存,并启动web服务
unir dev -t web -f
cd /projectName/
unir init
命令会自动在项目根目录下添加以下文件:具体配置介绍
|__ root
unir.config.js
index.web.js
config.js
"dev:wx": "unir dev -t wechat", // 运行微信小程序开发模式
"dev:web": "unir dev -t web", // 运行web开发模式
"dev": "yarn start", // 运行qrn开发模式
"build:wx": "unir build -t wechat", // 打包微信小程序到dist目录
"build:web": "unir build -t web", // 打包Web到prd目录
"build": "NODE_ENV=production remax build -t" // 打包qrn
"custom": "" // 自定义脚本
yarn dev:wx //启动微信开发环境
yarn dev:web //启动web开发环境
或手动执行
unir dev -t wechat
unir dev -t web
例如:当你想要link本地依赖时,由于打包环境不在当前目录下,在项目下执行将无法link,你可以增加自定义脚本。 package.json:
{
"scripts":{
"custom":"yarn link @qnpm/somePacages"
}
}
unir会在构建打包环境时,安装完依赖后,执行你的自定义脚本。