博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webpack-dev-server
阅读量:5270 次
发布时间:2019-06-14

本文共 2907 字,大约阅读时间需要 9 分钟。

1. open 服务启动后,打开浏览器

devServer {    open: true, // 或者    // open:  'Google Chrome',  //  ''Chrome' is 'Google Chrome' on macOS, 'google-chrome' on Linux and 'chrome' on Windows.

2. openPage 服务启动后, 默认打开指定的页面

devServer {    openPage:  '/different/page',}

3. overlay 编译错误后,错误信息全屏覆盖页面

// 只有错误信息devServer {    overlay: true,}// 错误信息和警告信息devServer {    overlay : {        warnings: true,        errors: true,     }}

4. port 监听的端口

module.exports = {  //...  devServer: {    port: 8080  }};

5. proxy 服务器代理

1)纯路由

module.exports = {    // ...    devServer: {        proxy: {            '/api': 'http://localhost:3000'           // /api/users的请求会被代理到http://localhost:3000/api/users        }    }}

2)想修改路由

module.exports = {  //...  devServer: {    proxy: {      '/api': {        target: 'http://localhost:3000',        pathRewrite: {
'^/api' : ''} // /api/users将被代理成http://localhost:3000/users } } }};

3)默认情况下,后端运行在https服务器上但是证书无效时,请求不予接收,如果想接收,设置如下

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

4) 自己决定需要代理哪些内容:bypass

 !  返回null或者undefined,正常代理

 !! 返回false,产生一个404错误

 !!!返回一个路由

module.exports = {  //...  devServer: {    proxy: {      // 实现当/api请求是浏览器请求时,需要加载一个页面;当是api请求时,      // 还是走代理;函数默认返回undefine,所以if之外的情况都走代理      '/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';          }        }      }    }  }};

5)代理多个指定路由到同一个target: context

module.exports = {  //...  devServer: {    proxy: [{ // 注意,最外层变成了数组      context: ['/auth', '/api'], // 使用context      target: 'http://localhost:3000',    }]  }};

6)代理根文件

module.exports = {  //...  devServer: {    index: '', // specify to enable root proxying    host: '...',    contentBase: '...',    proxy: {      context: () => true,      target: 'http://localhost:1234'    }  }};

7)解决跨域问题:changeOrigin

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

6. 热更新:hot 

module.exports = {  //...  devServer: {    hot: true  }};

7. 访问打包后的文件:publicPath

module.exports = {  //...  devServer: {    publicPath: '/assets/', // 也可以'http://localhost:8080/assets/或者'/'  }   //  表明可以访问打包后的文件http://localhost:8080/assets/bundle.js};

⚠️: 建议和output.publicPath使用同样的路径

8.加载静态资源:contentBase,优先级比publicPath低

module.exports = {  //...  devServer: {    contentBase: path.join(__dirname, 'public')  }};// 如果多个module.exports = {  //...  devServer: {    contentBase: [path.join(__dirname, 'public'), path.join(__dirname, 'assets')]  }};

⚠️:最好是绝对路径

9.使用本地IP打开

module.exports = {  //...  devServer: {    useLocalIp: true  }};

 

转载于:https://www.cnblogs.com/lyraLee/p/11418972.html

你可能感兴趣的文章
我用到的 Linq 扩展方法
查看>>
Day13
查看>>
tensorflow saver简介+Demo with linear-model
查看>>
Luogu_4103 [HEOI2014]大工程
查看>>
1043: [HAOI2008]下落的圆盘 - BZOJ
查看>>
线程同步之读写锁
查看>>
codeforces 620D Professor GukiZ and Two Arrays
查看>>
pylint
查看>>
Oracle——SQL基础
查看>>
项目置顶随笔
查看>>
Redis的安装与使用
查看>>
P1970 花匠
查看>>
java语言与java技术
查看>>
NOIP2016提高A组五校联考2总结
查看>>
RabbitMQ学习系列三:.net 环境下 C#代码订阅 RabbitMQ 消息并处理
查看>>
Python日期计算
查看>>
对其他团队的项目的意见或建议
查看>>
iOS 项目的编译速度提高
查看>>
机房收费系统——报表
查看>>
How to unshelve many shelves at same time
查看>>