如何动态改变Vue 项目中.env.production文件中定义的变量(常量)

项目用的Vue版本为

"vue": "2.6.10"

当前调用后端接口定义在文件request.js中

// create an axios instance
const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API, 
  timeout: 5000 // request timeout
})

可以看到baseURL是来自环境变量中的VUE_APP_BASE_API

而VUE_APP_BASE_API定义在.env.xxx文件中,这里以production文件为例

image.png

在这里是写死的

VUE_APP_BASE_API = '//fl.cn/api'

所以执行npm run build的时候就会将fl.cn/api打包进环境变量中,生产环境所有接口的域名都会是fl.cn,现在我想在npm run build 后传参,来改变VUE_APP_BASE_API的值,继而改变接口访问的域名.

已解决 悬赏分:0 - 解决时间 2021-11-26 23:24
反对 0举报 0 收藏 0

回答3

最佳
  • @

    换个思路 package.json 多加结果启动命令 多加几个环境
    ` "scripts": {

    "serve": "vue-cli-service serve",
    "pro-serve": "vue-cli-service serve --mode production",
    "build": "vue-cli-service build --dest build",
    "lint": "vue-cli-service lint",
    "dev-build": "vue-cli-service build --mode development --dest build"

    },`

    支持 0 反对 0 举报
    2021-11-26 07:53
  • @

    既然你说它是常量,那怎么可能可以动态改变呢?

    支持 0 反对 0 举报
    2021-11-26 08:38
  • @

    我想问一下image 我黄色箭头的这个ENV定义在这里是干嘛用的 我看到的都是VUE_APP_xx这样的 还有#号是注释的意思吗??

    支持 0 反对 0 举报
    2021-11-26 09:22