aro 在编译时提供了一些内置的环境变量来帮助用户做一些特殊处理
process.env.TARO_ENV
用于判断当前编译类型,目前有 weapp / swan / alipay / h5 / rn / tt / qq / quickapp 八个取值,可以通过这个变量来书写对应一些不同环境下的代码,在编译时会将不属于当前编译类型的代码去掉,只保留当前编译类型下的代码,例如想在微信小程序和 H5 端分别引用不同资源
if (process.env.TARO_ENV === 'weapp') {require('path/to/weapp/name')} else if (process.env.TARO_ENV === 'h5') {require('path/to/h5/name')}
同时也可以在 JSX 中使用,决定不同端要加载的组件
render () {return (<View>{process.env.TARO_ENV === 'weapp' && <ScrollViewWeapp />}{process.env.TARO_ENV === 'h5' && <ScrollViewH5 />}</View>)}
样式文件中跨平台支持
为了方便大家书写样式跨端的样式代码,在样式文件中支持条件编译的特性。
指定平台保留样式:
/* #ifdef %PLATFORM% */样式代码/* #endif */
指定平台剔除样式:
/* #ifndef %PLATFORM% */样式代码/* #endif */
其中 PLATFORM 的取值与 process.env.TARO_ENV 保持一致
例如,希望某段样式只在 微信小程序中 生效,可以如下写法
/* #ifdef weapp */样式代码/* #endif */
如果是多个平台,之间可以使用空格隔开。
