uniapp 代码区分
区分开发环境与生产环境
在 uniapp 中可通过 process.env.NODE_ENV 判断当前环境:
- 开发环境值为
'development' - 生产环境值为
'production'
示例代码:
if (process.env.NODE_ENV === 'development') {
console.log('开发环境');
} else {
console.log('生产环境');
}
区分平台(App/H5/小程序)
使用 uni.getSystemInfoSync().platform 或条件编译:
// 方式1:运行时判断
const platform = uni.getSystemInfoSync().platform;
console.log('当前平台:', platform); // ios/android/h5/weixin等
// 方式2:条件编译(编译时生效)
// #ifdef H5
console.log('H5平台特有逻辑');
// #endif
// #ifdef MP-WEIXIN
console.log('微信小程序特有逻辑');
// #endif
区分 iOS 与 Android
通过 uni.getSystemInfoSync() 获取系统信息:
const systemInfo = uni.getSystemInfoSync();
if (systemInfo.platform === 'ios') {
console.log('iOS设备');
} else if (systemInfo.platform === 'android') {
console.log('Android设备');
}
区分不同小程序平台
使用条件编译或动态判断:
// 条件编译示例
// #ifdef MP-WEIXIN
console.log('微信小程序');
// #elif MP-ALIPAY
console.log('支付宝小程序');
// #endif
// 动态判断
const { platform } = uni.getSystemInfoSync();
switch (platform) {
case 'weixin':
console.log('微信小程序');
break;
case 'alipay':
console.log('支付宝小程序');
break;
}
区分调试模式
通过 __wxConfig 或自定义全局变量判断:
// 微信小程序调试模式
// #ifdef MP-WEIXIN
const isDebug = __wxConfig.debug;
console.log('调试模式:', isDebug);
// #endif
// 自定义全局变量(需在main.js中设置)
if (window.isDebugMode) {
console.log('自定义调试模式');
}
代码组织建议
- 将环境相关配置抽离为单独文件(如
env.js),通过导出不同配置实现区分。 - 复杂逻辑优先使用条件编译,减少运行时判断。
- 动态判断平台时,建议封装为工具函数复用。
示例封装:
// utils/platform.js
export function isH5() {
// #ifdef H5
return true;
// #endif
return false;
}






