uni-app
可通过 process.env.NODE_ENV
判断当前环境是开发环境还是生产环境。一般用于连接测试服务器或生产服务器的动态切换。
- 在HBuilderX中,点击"运行"编译出来的代码是开发环境,点击"发行"编译出来的是生产环境
- cli模式下,是通行的编译环境处理方式
if (process.env.NODE_ENV === 'development') {
console.log('开发环境')
} else {
console.log('生产环境')
}
如果你需要自定义更多环境,比如测试环境:
-
假设只需要对单一平台配置,可以
package.json
中配置,在HBuilderX的运行和发行菜单里会多一个出来。uni-app package.json配置 -
如果是针对所有平台配置,可以在
vue-config.js
中配置。uni-app vue.config.js 配置快捷代码块
HBuilderX
中敲入代码块uEnvDev
、uEnvProd
可以快速生成对应development、production
的运行环境判定代码。
判断平台
平台判断有两种场景,一种是在编译期判断,一种是在运行期判断
- 编译期判断: 即条件编译,不同平台在编译出包后已经是不同的代码。详见:条件编译
- 运行期判断:运行期判断是指代码已经打入包中,仍然需要在运行期判断平台,此时可使用
uni.getSystemInfoSync().platform
判断客户端环境是Android
、iOS
还是小程序开发工具(在百度小程序开发工具、微信小程序开发工具、支付宝小程序开发工具中使用 uni.getSystemInfoSync().platform
返回值均为devtools
)
switch (uni.getSystemInfoSync().platform) {
case 'android':
console.log('运行在Android上')
break;
case 'ios':
console.log('运行在iOS上')
break;
default:
console.log('运行在开发者工具上')
break;
}