欢迎光临散文网 会员登陆 & 注册

【D1n910】Vue项目和Nuxt项目添加proxy代理配置

2020-09-25 10:47 作者:爱交作业的D1N910  | 我要投稿

正常操作,正常分析,大家好,我是D1n910。

开新的项目的时候,后端同学没有处理跨域的问题,导致本地调用服务的时候浏览器报送跨域问题,因为用的webpack,所以这边研究学习使用webapck的proxy来解决跨域的问题。

要点

(1)可以根据需要在本地随时切换请求不同域名

(2)可以webpack 的proxy代理请求跨域域名,不需要后端处理

* 以下会用 `diff` 的写法,请注意自行去掉 `+` 和 `-` 哦

Vue项目

步骤一:修改 package.json,添加环境变量文件

修改文件: package.json

+ "dev": "vue-cli-service serve --mode development",

+ "dev1": "vue-cli-service serve --mode development1",


其中关键是 mode 后面内容,模式自定义。

新建对应模式下的`.env`文件,后面带上对应 mode 名称

.env.{} 文件可以存储自己的各种环境变量

这里我们对于我们proxy的域名对应的环境变量自定义为 `VUE_APP_API_BASE_URL`

例子:

修改文件: .env.development1

内容:

+ #开发环境

+ VUE_APP_API_BASE_URL="http://dev1.nideyuming.com/api"

步骤二:修改 vue.config.js,添加 proxy 配置

module.exports = {

     devServer: {

         host: '0.0.0.0',

         disableHostCheck: true,

         proxy: {

             '/api': {

             target: process.env.VUE_APP_API_BASE_URL,

             changeOrigin: true,

             pathRewrite: {

                 '^/api': ''

                 }

             }

         }

     }

}


关键就是在 `devServer` 添加了 proxy。

target属性的值取的是对应环境下的环境变量。


步骤三:启动

启动的时候运行环境对应的脚本命令即可

例子

yarn run dev

yarn run dev1


Nuxt项目

Nuxt项目用不了.env的文件,但是可以直接在启动命令里配置好环境变量,然后再获取。

步骤一:修改 package.json,添加环境变量

修改文件: package.json

+ "dev": "BASE_URL=http://dev.nideyuming.com/api/ nuxt dev",

+ "dev1": "BASE_URL=http://dev1.nideyuming.com/api/ nuxt dev",

步骤二:修改 vue.config.js,添加 proxy 配置

前面添加 proxy 变量,方便自定义配置

const proxy = {}

if (process.env.NODE_ENV === 'development') { // 只有在开发环境才会执行

     proxy['/api/'] = {

     target: process.env.BASE_URL,

     changeOrigin: true,

     pathRewrite: {

         '^/api/': ''

         }

     }

}


在 module.exports 下添加 proxy

module.exports = {

    ...

    proxy

    ...

}


步骤三:启动

启动的时候运行环境对应的脚本命令即可

例子

yarn run dev

yarn run dev1


END





【D1n910】Vue项目和Nuxt项目添加proxy代理配置的评论 (共 条)

分享到微博请遵守国家法律