按平台打包代码或样式

很多场景下可能需要差异化打包不同平台的代码,娜娜奇提供环境变量process.env.ANU_ENV来识别不同平台。在编译前,ANU_ENV变量已静默配置。

  1. componentDidMount(){
  2. let ANU_ENV = process.env.ANU_ENV;//wx ali bu quick
  3. if(ANU_ENV === 'wx'){
  4. //微信小程序业务逻辑
  5. }else if(ANU_ENV === 'ali'){
  6. //支付宝小程序业务逻辑
  7. }else {
  8. }
  9. }

又如我们在微信小程序要获取用户信息, 需要这样实现

  1. this.state = {
  2. isWx: process.env.ANU_ENV == 'wx'
  3. }
  1. <div>{ this.state.isWx && <button open-type="getUserInfo"></button>}
  2. </div>

有时候需要按平台引入相关模块,在写法上有所不同,必须通过注释节点来匹配相关的import引入。例如:

  1. // if process.env.ANU_ENV == 'wx';
  2. import wx from './wx.js';
  3. // if process.env.ANU_ENV == 'ali';
  4. import ali from './ali.js';
  5. // if process.env.ANU_ENV == 'wx';
  6. import 'wx_specific.css'

编译结果(ANU_ENV:wx):

  1. import wx from './wx.js';