文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
六、更好使用 webpack-dev-server
webpack-dev-server
是 webpack
官方提供的一个工具,可以基于当前的 webpack
构建配置快速启动一个静态服务。当 mode
为 development
时,会具备 hot reload
的功能,即当源码文件变化时,会即时更新当前页面,以便你看到最新的效果…
6.1 基础使用
webpack-dev-server
是一个 npm package
,安装后在已经有 webpack
配置文件的项目目录下直接启动就可以
webpack-dev-server
默认使用8080
端口
npm install webpack-dev-server -g webpack-dev-server --mode development
package
中的 scripts
配置:
{ // ... "scripts": { "start": "webpack-dev-server --mode development" } }
6.2 配置
在 webpack 的配置中,可以通过 devServer
字段来配置 webpack-dev-server
,如端口设置、启动 gzip
压缩等,这里简单讲解几个常用的配置
public
字段用于指定静态服务的域名,默认是http://localhost:8080/
,当你使用Nginx
来做反向代理时,应该就需要使用该配置来指定Nginx
配置使用的服务域名port
字段用于指定静态服务的端口,如上,默认是8080
,通常情况下都不需要改动publicPath
字段用于指定构建好的静态文件在浏览器中用什么路径去访问,默认是/
,例如,对于一个构建好的文件bundle.js
,完整的访问路径是http://localhost:8080/bundle.js
,如果你配置了publicPath: 'assets/'
,那么上述bundle.js
的完整访问路径就是http://localhost:8080/assets/bundle.js
。可以使用整个URL
来作为publicPath
的值,如publicPath: 'http://localhost:8080/assets/'
。如果你使用了HMR
,那么要设置publicPath
就必须使用完整的URL
建议将 devServer.publicPath
和 output.publicPath
的值保持一致
proxy
用于配置webpack-dev-server
将特定URL
的请求代理到另外一台服务器上。当你有单独的后端开发服务器用于请求 API 时,这个配置相当有用。例如
proxy: { '/api': { target: "http://localhost:3000", // 将 URL 中带有 /api 的请求代理到本地的 3000 端口的服务上 pathRewrite: { '^/api': '' }, // 把 URL 中 path 部分的 `api` 移除掉 }, }...
before
和after
配置用于在webpack-dev-server
定义额外的中间件,如
before(app){ app.get('/some/path', function(req, res) { // 当访问 /some/path 路径时,返回自定义的 json 数据 res.json({ custom: 'response' }) }) }...
before
在webpack-dev-server
静态资源中间件处理之前,可以用于拦截部分请求返回特定内容,或者实现简单的数据mock
。after
在webpack-dev-server
静态资源中间件处理之后,比较少用到,可以用于打印日志或者做一些额外处理…
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论