Skip to content

WePY根据环境变量来改变运行时的参数

Gcaufy edited this page Mar 15, 2018 · 1 revision

package.json中使用script字段,配置环境变量,可以通过不通编译命令打包代码至不同环境,如:

  "scripts": {
    "build": "cross-env NODE_ENV=production wepy build --no-cache",
    "dev": "cross-env NODE_ENV=development wepy build --watch"
  },

因此,在使用npm run dev 或者 npm run build时,在wepy.config.js中可以通过process.env.NODE_ENV拿到不同的环境变量值。

接下来就介绍两种方法,如何通过这个环境变量值去改变小程序运行时的参数。

1. 使用appConfig字段

这个字段是在会编译时编译进小程序代码里的 在wepy.config.js中加入这个字段:

appConfig: {
   baseUrl: process.env.NODE_ENV === 'production' ? 'https://api.a.com/' : 'https://api.a.com/dev/
}

代码中直接使用这个字段:

import wepy from 'wepy';

wepy.request({url: wepy.$appConfig.baseUrl + 'get/1'});

2. 使用 wepy-plugin-replace 去实现

wepy.config.js配置replace插件:

plugins = {
   'replace': {
        filter: /*\.js$/g,
        config: {
            find: /__BASE_URL__/g
            replace: process.env.NODE_ENV === 'production' ? 'https://api.a.com/' : 'https://api.a.com/dev/
        }
   }
}

在代码里直接使用 BASE_URL, 编译后就会被替换掉了。

import wepy from 'wepy';

wepy.request({url: __BASE_URL__ + 'get/1'});