当前位置: 首页 > 后端技术 > Node.js

webpackdevServer学习笔记(简单的webpack目录2.6)

时间:2023-04-03 20:21:33 Node.js

devServer.hot1,DevServer的默认行为是代码更新后自动刷洗整个页面做实时。2.hot:true:启用webpack的模块热替换特性,在不刷新整个页面的情况下,用新模块替换旧模块进行实时预览。3.要完全启用HMR,您需要使用HotModuleReplacementPlugin。但是如果webpack或webpack-dev-server以hot选项启动,这个插件会自动添加,不需要将它添加到webpack.config.js中。devServer.hotOnly1和hot的区别在于hotOnly在构建失败时用作回退。2.在某些模块不支持热更新的情况下,前者会自动刷新页面,后者不会刷新页面,并在控制台输出热更新失败(我在网上看到这个说法,但是我没操作过)--Pass的cli使用:webpack-dev-server--hot-onlydevServer.inline1。DevServer的实时预览功能依赖于在页面中注入一个代理客户端,它接收来自DevServer的命令,负责刷新网页。2、默认启动内联模式(inlinemode),将处理过载的脚本(proxyclient)插入到bundle中,构建信息就会出现在浏览器控制台中。3、对于iframe模式,使用inline:false开启。DevServer不会直接控制要开发的网页。这时候就会通过iframe运行要开发的网页。4、推荐使用模块热替换的内联方式,因为它包含来自websocket的HMR触发器devServer.historyApiFallback1,用于方便HTML5HistoryAPI单页应用的开发和使用。这个单页应用程序要求服务器为任何路由命中返回相应的HTML文件。2.配置简单,任何404响应可能需要替换成index.htmlhistoryApiFallback:true//任何请求都会返回index.html文件,适用于只有一个html文件的应用3.传入一个对象,比如由应用程序组成的多个单页应用程序。需要更多不同的请求返回不同的HTML文件html'},{from:/^\/game/,to:'/game.html'},//其他一切返回index.html{from:/./,to:'/index.html'},]}devServer.contentBase1,配置DevServerHTTP服务器的文件根目录,告诉服务器在哪里提供内容。仅当您要提供静态文件时才需要。devServer.publicPath将用于确定应该从哪里提供包,并且此选项优先。2、默认会使用当前工作目录作为提供内容的目录,但是可以修改为其他目录:contentBase:path.join(__dirname,"public")从多个目录提供内容contentBase:[path.join(__dirname,"public"),path.join(__dirname,"assets")]禁用contentBase,关闭本地文件暴露:contentBase:false3、DevServer通过HTTP服务暴露文件的方式分为两类:.暴露本地文件。公开Webpack构建的结果。由于构建结果交给了DevServer,所以我们在使用DevServer时,会在本地找不到构建文件。4.只能用来配置暴露本地文件的规则补充:不知道怎么测试这个功能--devServer.headers是给所有的响应添加header内容,也就是可以注入一些HTTP响应头HTTP响应:{"X-Custom-Foo":"bar"}devServer.host指定使用主机。默认为本地主机。如果你想让服务器可以从外部访问,指定如下:host:"0.0.0.0"命令行:webpack-dev-server--host0.0.0.0devServer.port指定监听请求的端口号:port:8080devServer.allowedHosts配置一个Whitelist列表,列表中只正常返回HTTP请求的HOST,使用如下:allowedHosts:[//匹配单个域名'host.com','subdomain.host.com','subdomain2.host.com',//host2.com和所有子域*.host2.com将匹配'host2.com']devServer.disableHostCheck配置项用于配置是否禁用对HTTP请求的HOST检查DNS重新绑定。disableHostCheck:truewebpack-dev-server--disable-host-checkdevServer.https默认情况下,dev-server通过HTTP提供服务。你也可以选择用HTTPS提供HTTP/2服务:https:trueDevServer会自动为我们生成一个HTTPS证书。如果想使用自己的证书,可以这样配置:https:{key:fs.readFileSync("/path/to/server.key"),cert:fs.readFileSync("/path/to/server.crt"),ca:fs.readFileSync("/path/to/ca.pem"),}webpack-dev-server--httpswebpack-dev-server--https--key/path/to/server.key--cert/path/to/server.crt--cacert/path/to/ca.pemdevServer.clientLogLevel配置客户端的日志级别,none、error、warning、info。默认为info级别,即输出所有类型的日志。设置为none时,不输出任何日志。clientLogLevel:"none"webpack-dev-server--client-log-levelnonedevServer.contentBase所有服务启用gzip压缩:compress:truewebpack-dev-server--compressdevServer.open用于启动DevServer并首次构建,自动使用我们系统默认的浏览器打开要开发的网页open:truewebpack-dev-server--openwebpack-dev-server--open'GoogleChrome'