We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在前端自动化过程中,热加载功能是必不可少的,它能极大的提升开发效率,帮助开发人员快速实现所见即所得~ 👍 下面记录以下集中方案,每种方案都有各自的特点,选择适合符合自己业务需求的,才是最好的!
webpack自带监听模式watch,这是种模式非常简单易用,只需要在命令行执行webpack时,加上参数即可,如下:
watch
$ webpack --watch # 如果编译时,希望输出内容带有进度和颜色,可以像下面这样使用 $ webpack --watch --colors --progress
webpack
webpack-dev-server 提供了一个易于部署的开发服务器,具有快速的实时重载(live reloading)功能,总体来说,它完美的解决了第一种方案的两个缺点,使用方式如下:
webpack-dev-server
# 下载安装 webpack-dev-server $ npm install webpack-dev-server; # 使用方式一:webpack-dev-server CLI(命令行参数调用) $ webpack-dev-server --content-base <base path for the content> --open --inline --hot --compress # 使用方式二:webpack-dev-server 配置(webpack.config.js) const devServer = require('webpack-dev-server'); module.exports = { //.... devServer: { contentBase: <告诉服务器从哪里提供内容>, proxy: <对于一些前后端分离开发项目,此处可以代理自己的api服务器> //........ } };
这是一种进阶方案,其实webapck-dev-server就是基于这种方案的,只不过它已经封装好了,开箱即用,如果你已经有一个 Node.js 服务器或者你想要完全控制服务器,这将很实用,而且自己编写会获得极大的灵活性。这里就不过多解释了。
webapck-dev-server
大部分人在看官方文档时,肯定会被webapck-dev-server webpack-dev-middleware webpack-hot-middleware这几个概念弄晕,下面简明扼要的说一下它们分别是啥,并彼此有啥关系吧!
webpack-dev-middleware
webpack-hot-middleware
Express
http
middleware
The text was updated successfully, but these errors were encountered:
No branches or pull requests
webpack热加载方案
方案一:启动监听模式
webpack自带监听模式
watch
,这是种模式非常简单易用,只需要在命令行执行webpack时,加上参数即可,如下:webpack
编译之后,你还需要手动刷新浏览器方案二:webpack-dev-server
webpack-dev-server
提供了一个易于部署的开发服务器,具有快速的实时重载(live reloading)功能,总体来说,它完美的解决了第一种方案的两个缺点,使用方式如下:方案三:Express + webpack-dev-middleware
这是一种进阶方案,其实
webapck-dev-server
就是基于这种方案的,只不过它已经封装好了,开箱即用,如果你已经有一个 Node.js 服务器或者你想要完全控制服务器,这将很实用,而且自己编写会获得极大的灵活性。这里就不过多解释了。写在最后
大部分人在看官方文档时,肯定会被
webapck-dev-server
webpack-dev-middleware
webpack-hot-middleware
这几个概念弄晕,下面简明扼要的说一下它们分别是啥,并彼此有啥关系吧!webpack-dev-server
是一个基于Express
的http
服务器,它的作用主要是使用webpack
进行实时的编译,再用webpack-dev-middleware
将编译后文件会输出到内存中。Express
的人应该会很熟悉middleware
这个概念;这个中间件会导致webpack
在内存中编译文件。当一个编译正在执行的时候,它会将对于文件的请求延迟,直到编译完成,它会在内存中形成一个文件映射系统,每当应用程序请求一个文件,它匹配到了就把内存中缓存的对应结果以文件的格式返回给你,反之则进入到下一个中间件。webpack-dev-middleware
使用,它可以实现浏览器的实时刷新更新(hot reload);HMR和热加载的区别是:热加载是刷新整个页面The text was updated successfully, but these errors were encountered: