vue-cli proxy 配置使用命令行参数报错

添加一条命令携带参数(代理转发接口的地址)

// package.json
  "scripts": {
    "dev": "vue-cli-service serve",
    "serve": "vue-cli-service serve",
    "devserve": "vue-cli-service serve -- http://****.0.174.xip.io",
   ...
  },

接收参数(通过打印 参数接收正常)

// vue.config.js
let [,,,, proxyTarget] = process.argv

... 

proxy: {     
      [process.env.VUE_APP_BASE_API]: {
        target: proxyTarget, // 使用参数
        changeOrigin: true,
        pathRewrite: {
          ['^' + process.env.VUE_APP_BASE_API]: ''
        }
      }

执行命令

npm run devserve

错误提示

 ERROR  Failed to compile with 1 error                                                                                          10:25:04 AM
This dependency was not found:

* E:\xxx-cloud-web\http:\****.0.174.xip.io in multi ./node_modules/_webpack-dev-server@3.11.2@webpack-dev-server/client?http://192.168.2.149:4001&sockPath=/sockjs-node (webpack)/hot/dev-server.js ./http:/****0.174.xip.io     

To install it, you can run: npm install --save E:\xxx-cloud-web\http:\****0.174.xip.io

What
Why
How

//------------------更新1

修改 target为固定值 如下
执行npm run serve 正常
执行npm run devserve依旧报同样的错

 proxy: {
      [process.env.VUE_APP_BASE_API]: {
        target: `http://192.168.2.230:8443`,  
        changeOrigin: true,
        pathRewrite: {
          ['^' + process.env.VUE_APP_BASE_API]: ''
        }
      }

说明这里proxy不是取值的问题,是命令行传参的问题
//------------------更新2
排除proxy.target参数错误后,我在想是否是传参问题,发现别的传参如
"build:preview": "vue-cli-service build --mode preview"
我的参数和-- 之间有空格 去除空格后不再报错了

阅读 2.7k
1 个回答

不好意思 自己折腾出来原因了

"devserve": "vue-cli-service serve -- http://****.0.174.xip.io"
改为
"devserve": "vue-cli-service serve --http://****.0.174.xip.io"

npm script 传参 -- 后去除空格就不报错了

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