vue-cli 关于环境的切换问题

在src目录上新建了utils目录,创建了http.js文件代码如下(进行了环境切换的设置):

import axios from 'axios'
import qs from 'qs'

// 环境的切换
if (process.env.NODE_ENV == 'development') { 
    axios.defaults.baseURL = 'http://127.0.0.1';
}else if (process.env.NODE_ENV == 'debug') { 
    axios.defaults.baseURL = 'http://127.0.0.1';
}else if (process.env.NODE_ENV == 'production') { 
    axios.defaults.baseURL = 'https://www.production.com';
}

// 超时
axios.defaults.timeout = 10000;

但不知道process.env.NODE_ENV是在哪里更改的?
在main.js加了console.log(process.env.NODE_ENV),可以看到本地是development,
如果打包的话,是自动就会变成production的吗?还是手动更改?

阅读 2.9k
3 个回答

需要安装npm install --save-dev cross-env

然后在package.json文件中配置跨平台环境变量

clipboard.png

在webpack的配置文件中,开发和生产配置中,找到这个webpack.DefinePlugin插件,在这里定义这个变量。

这里的env.NODE_ENV指的是环境变量里面配置的NODE_ENV,和JAVA_HOME同理。
一般来说会使用cross-env来跨平台的设置环境变量。

{
  "scripts": {
    "build": "cross-env NODE_ENV=production webpack --config build/webpack.config.js"
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题