vue-cli怎么根据后端接口服务器不同 build不同接口代码?

开发过程中 npm run dev 组件中接口调取的地址是 全局global定义的一个API变量如下:

// 开发环境打开
// global.API = '/api';

// 测试环境打开
// global.API = '/test';

// uat环境打开
// global.API = '/uat';

// 生产环境打开
// global.API = '/www';

生产环境 npm run build 时如何根据不同接口自动改变API成生产环境变量?

阅读 4.9k
3 个回答

琢磨了几天vue-cli生成的代码,vue觉得你只需要三种配置:开发(npm run dev)、生产(npm run build)和单元测试(npm run test)。。。

吐槽完。

1.打开config/index.js,修改build里面的env文件名为根据环境变量获取,
修改完大概是下面这样子:

module.exports = {
  build: {
    env: require('./'+(process.env.VUE_CONFIG||'prod')+'.env'),
    //......

2.在config目录里面把prod.env.js复制两份,分别是uat.env.jstesting.env.js

3.修改dev.env.jsuat.env.jstesting.env.jsprod.env.js这四个文件,在大括号里面添加API: '"/api或uat或其他什么"',如下:

module.exports = {
  NODE_ENV: '"production"',
  API: '"/api"'
}

4.然后就可以在任何地方通过process.env.API访问到这个变量了。

5.打包的时候,先设置环境变量VUE_CONFIG,例如export VUE_CONFIG=uat && npm run build

https://github.com/tonyljl526...
可以看下这个项目的脚手架,基于express和vue2、webpack的。能实现你的需求,主要看config/renderConfig.js

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题