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 */
如果是多个平台,之间可以使用空格隔开。