webpack基本配置详解_vue基础知识

webpack基本配置详解_vue基础知识devServer可以用来提高开发效率,它提供一下配置可以改变devServer的默认行为。除了在配置问题通过devServer传入参数外,还可以通过命令行参数传入。注意:只用在通过devServer去启动webpack时,配置文件里devServer才会生效,因为这些参数所对应的功能都是devServer提供的,webpack本身并不认识devServer配置项。1.hotdevServer.hot配置是否启用模块热替换功能。devServer默认行为是在发现…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

devServer

可以用来提高开发效率,它提供一下配置可以改变 devServer 的默认行为。除了在配置问题通过 devServer 传入参数外,还可以通过命令行参数传入。注意:只用在通过 devServer 去启动 webpack 时,配置文件里 devServer 才会生效,因为这些参数所对应的功能都是 devServer 提供的,webpack 本身并不认识 devServer 配置项。

  • hot

devServer.hot 配置是否启用模块热替换功能。devServer 默认行为是在发现源代码被更新后会通过自动刷新整个页面来做到预览,开启模块热替换功能后,在不刷新整个页面的情况下通过用新模块替换老模块来实现实时预览。

  • inline

devServer 的实时预览功能依赖注入到页面里的代理客户端去接受来自 devServer 的命令和负责刷新网页的工作。devServer.inline 用于配置是否自动注入这个代理客户端到将运行在页面的 Chunk 里面,默认是自动注入。devServer 会根据你是否开启 inline 来调整它的自动刷新策略:

1. 如果开启inline, DevServer会在构建完变化后的代码时通过代理客户端控制网页刷新。
2. 如果关闭inline, DevServer将无法直接控制要开发的网页。这时它会通过iframe的方式去运行要开发的网页,当构建完变化后的代码通过刷新iframe来实现实时预览。

Jetbrains全家桶1年46,售后保障稳定

  • historyApiFallback

devServer.historyApiFallback 用于方便的开发使用 HTML5 HistoryAPI 的单页应用。这类单页应用要求服务器针对任何命中的路由都返回一个对应的 HTML 文件,例如在访问 http://localhost/user 和 http://localhost/home 时都返回index.html文件,浏览器端的JavaScript代码会从URL里解析出当前的状态,显示对应的界面。

这会导致任何请求都会返回index.html文件,这智能用于只有一个HTML文件的应用。

如果应用由多个单页应用组成,这时就需要DevServer根据不同的请求返回不同的HTML文件:配置如下:

historyApiFallback: {
    //使用正则匹配命中路由
    rewrites: [
        {from: /^\/user/, to: '/user.html'},
        {from: /^\/game/, to: '/game.html'},
        {from: /./, to: '/index.html'}
    ]
}
  • contentBase

devServer.contentBase 配置 devServer HTTP 服务器的文件根目录。默认情况下为当前执行目录,所以一般不必设置它,除非有额外的文件需要被 devServer 服务。例如,你想要把项目根目录下的 public 目录设置成 devServer 服务器的文件根目录:

devServer: {
    contentBase: path.join(__dirname, 'public')
}
  • headers

devServer.headers 配置项可以在 HTTP 响应中注入一些 HTTP 响应头,使用如下:

devServer: {
  headers: {
    'Access-Control-Allow-Origin': '*',
  }
}
  • host

devServer.host 配置项用于配置 devServer 服务器监听的地址。如果你想要局域网中其他设备访问你本地的服务,你可以在启动的时候带上 — host 0.0.0.0 host 的默认值是 127.0.0.1,即只有本地可以访问 devServer 的 HTTP 服务。

  • port

devServer.port 配置项用于配置 devServer 服务监听的端口,默认使用 8080 端口。如果 8080 端口已经被其他程序占有就使用 8081。

  • allowedHosts

devServer.allowedHosts 配置一个白名单列表,只有 HTTP 请求的 HOST 在列表里才正常返回,使用如下:

allowedHosts: [
  //匹配单个域名
  'host.com',
  'sub.host.com',
  / host2.com 和所有的子域名 *.host2.com 都将匹配
  '.host.com'
]
  • disableHostCheck

devServer.disableHostCheck 配置项用于配置是否关闭用于 DNS 重绑定的 HTTP 请求的 host 检查。devServer 默认只接受来自本地的请求,关闭后可以接受来自任何 HOST 的请求。它同样用于搭配 –host 0.0.0.0 使用,因为你想要其它设备访问你本地的服务,但访问时是直接通过 IP 地址访问而不是 HOST 访问,所以需要关闭 HOST 检查。

  • https

devServer 默认使用 HTTP 协议服务,它也能通过 HTTPS 协议服务。有些情况下你必须使用 HTTPS,例如 HTTP2 和 Service Worker 就必须运行在 HTTPS 之上。要切换成 HTTPS 服务,最简单的方式是:

devServer:{
  https: true
}

devServer 会自动的为你生成一份 HTTPS 证书。

devServer:{
  https: {
    key: fs.readFileSync('path/to/server.key'),
    cert: fs.readFileSync('path/to/server.crt'),
    ca: fs.readFileSync('path/to/ca.pem')
  }
}
  • clientLogLevel

devServer.clientLogLevel 配置在客户端的日志等级,这会影响到你在浏览器开发者工具控制台看到的日志内容。clientLogLevel 是枚举类型,可取如下之一的值 none | error | warning | info。默认为 info 级别,即输出所有类型的日志,设置成 none 可以不输出任何日志。

  • compress

devServer.compress 配置是否启用 gzip 压缩。 Boolean 类型,默认为 false。

  • open

devServer.open 用于在 devServer 启动且第一次构建完时,自动用你系统上默认的浏览器去打开要开发的网页,同时还提供 devServer.openPage 配置项用于打开指定 URL 的网页。

  • disableHostCheck

将当此项配置设置为 true 时,将会跳过主机检查。这里不推荐使用,因为不检查主机的应用容易收到 DNS 重新绑定攻击。

  • overlay

devServer.overlay 出现编译器错误或警告时,在浏览器中显示全屏覆盖。除了设置为 Boolean 类型之外,我们还可以传入对象进行配置。

devServer: {
  overlay: {
    warnings: false,
    errors: true,
  },
},
  • proxy

当拥有单独的 API 早期开发服务器并且希望在同一域上发送 API 请求时,代理某些 URL 可能会很有用。使用它来启用代理,target 为预设的访问地址。

默认情况下,代理时会保留主机头的来源,可以将 changeOrigin 设置为 true 已覆盖此行为。

devServer: {
  proxy: {
    '/api': {
      target: 'http://localhost:3000',
      changeOrigin: true,
    },
  },
},

更多 webpack 的信息,请查看:webpack 官网

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223426.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 树莓派4B系统搭建(超详细版)

    树莓派4B系统搭建(超详细版)初次使用树莓派,由于没有显示屏,配置搞了好久,然后写了这篇博客,记录一下自己的心酸史。内容有树莓派烧录,远程桌面搭建,换源。绝对的详细版教程。

    2022年6月11日
    66
  • 浅析Java中float和double

    浅析Java中float和double需要注意的是 java 中小数默认为 double 类型的 如果想要使用 float 类型的 则需要在小数后面加 f 例如 floata 3 14f 不带符号的话 最小值 Float MIN VALUE 1 4E 45 2 的 149 次方 最小值 Double MIN VALUE 4 9E 324 2 的 1074 次方 最大值 Float MAX VALUE 3 E38 2 的 128 次方 1 最大

    2025年6月14日
    0
  • Bootstrap 流式布局

    Bootstrap 流式布局流式布局同理,将Bootstrap的流式栅格放到class="container-fluid"的流式容器中,即可创建流式布局。流式布局将填满整个视口宽度。如:<divclass="container-fluid"> <divclass="row-fluid">   <divclass="span2">     <!–

    2022年10月24日
    1
  • Kinect开发笔记之二Kinect for Windows 2.0新功能

    Kinect开发笔记之二Kinect for Windows 2.0新功能

    2022年1月9日
    33
  • CentOS7增加或修改SSH端口号

    CentOS7增加或修改SSH端口号

    2021年10月18日
    47
  • ViewStub和Gone区别[通俗易懂]

    ViewStub和Gone区别[通俗易懂]虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Inflate,也就是说仍然会创建对象,会被实例化,会被设置属性。也就是说,会耗费内存等资源。   推荐的做法是使用android.view.ViewStub,ViewStub是一个轻量级的View,它一个看不见的,不占布局位置,占用资源非常小的控件。可以为ViewStub指定一个布局,在Infl

    2022年6月28日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号