开发环境webpack devServer的proxy用法

阅读数:47 评论数:0

跳转到新版页面

分类

html/css/js

正文

1、基本用法

module.exports = {
  //...
  devServer: {
    proxy: {
      '/api': 'http://localhost:3000'
    }
  }
};

//请求到 /api/xxx 现在会被代理到请求 http://localhost:3000/api/xxx, 
//例如 /api/user 现在会被代理到请求 http://localhost:3000/api/user

2、代理多个路径到同一个target下

module.exports = {
  //...
  devServer: {
    proxy: [{
      context: ['/auth', '/api'],
      target: 'http://localhost:3000',
    }]
  }
};

//如果你想要代码多个路径代理到同一个target下, 
//你可以使用由一个或多个「具有 context 属性的对象」构成的数组:

3、忽略api前缀

module.exports = {
  //...
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:3000',
        pathRewrite: {'^/api' : ''}
      }
    }
  }
};
//请求到 /api/xxx 现在会被代理到请求 http://localhost:3000/xxx, 
//例如 /api/user 现在会被代理到请求 http://localhost:3000/user

4、忽略https安全提示

module.exports = {
  //...
  devServer: {
    proxy: {
      '/api': {
        target: 'https://other-server.example.com',
        secure: false
      }
    }
  }
};

//默认情况下,不接受运行在 HTTPS 上,且使用了无效证书的后端服务器。
//如果你想要接受,只要设置 secure: false 就行。修改配置如下:

5、自定义规则

module.exports = {
 //...
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:3000',
        bypass: function(req, res, proxyOptions) {
          if (req.headers.accept.indexOf('html') !== -1) {
            console.log('Skipping proxy for browser request.');
            return '/index.html';
          }
        }
      }
    }
  }  
};

6、跨域

module.exports = {
  //...
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:3000',
        changeOrigin: true,
      }
    }
  }
};
//上面的参数列表中有一个changeOrigin参数, 是一个布尔值, 设置为true, 
//本地就会虚拟一个服务器接收你的请求并代你发送该请求,

7、配置多个规则

module.exports = {
  //...
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:3000',
        changeOrigin: true,
      },
      '/img': {
      target: 'https://cdn.wangyaxing.cn', // 接口的域名
      secure: false, // 如果是https接口,需要配置这个参数
      changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
      pathRewrite: {'^/img': ''} // pathRewrite 来重写地址,将前缀 '/api' 转为 '/'。
    }
  }
};



相关推荐

sourcemap和Data URL 1、sourcemap 我们在打包中,将开发环境中源代码经过压缩、去空格、babel编译转化,最终可以得到适用于生产环境的项

一、使用vue-cli新建工程 vue create demo1 然后用vsco

在打包里,加入hash值,即在conf.js文件里加入 export default { hash:t

一、概述 Webpack 可以帮助我们完成一些任务。比如 js 压缩、css 压缩、编译模板文件等等,从而减少前端的工作量。当然,Webpack 功能很强大,能帮我们完成的工作远远不止这些。如果我们使

一、devtool devtool用作调试,它的配置有很多种: 1、eval 每个模块用eval执行,并且存在@sourceUrl,就是说这种配置的devtool,在打包的时候,生成的bundle.j

一、生命周期 1、vue2生命周期 beforeCreate #实例初始化之后,进行数据侦听和事件/侦听器的配置之前同步调用 created #实例创建完成后被立即同步调用 beforeMount #

一、概述 都是现代化打包工具 二、对比 1、底层语言 从底层原理上来说,Vite是基于esbuild预构建依赖。而esbuild是采用go语言编写,因为go语言的操作是纳秒级别,而js是以毫秒计数,所

一、概述 所有语言中的代理,其本实现的是对原对象的操作的拦截和一些自定义行为。 二、语法  const p = new Proxy(target, handler) 1、target 可以是任何类型的

一、概述 图片是 Web 页面中最耗费带宽和加载时间的资源之一。 压缩图片 压缩图片可以减少图片的文件大小,从而减少加载时间。 使用矢量图形 使用矢量图形(如 SVG)可以减少文件大小,并且