webpack-dev-server
webpack-dev-server支持两种模式来自动刷新页面.
-
iframe模式(页面放在iframe中,当发生改变时重载)
-
inline模式(将webpack-dev-sever的客户端入口添加到包(bundle)中)
两种模式都支持热模块替换(Hot Module Replacement).热模块替换的好处是只替换更新的部分,而不是页面重载.
iframe模式
使用这种模式不需要额外的配置,只需要以下面这种URL格式访问即可
http://«host»:«port»/webpack-dev-server/«path»
例如:http://localhost:8080/webpack...
inline模式
inline模式下我们访问的URL不用发生变化,启用这种模式分两种情况:
1 当以命令行启动webpack-dev-server时,需要做两点:
-
在命令行中添加
--inline
命令 -
在
webpack.config.js
中添加devServer:{inline:true}
2 以node.js API启动webpack-dev-server
注意:webpack配置中的devSever
配置项只对在命令行模式有效。
(Hot Module Replacement)热模块替换
在命令行中运行inline模式,并启用热模块替换
这里只需要多增加 --hot
指令就OK了.如下所示.
webpack-dev-server --content-base build --inline --hot
注意:命令行模式下,webpack.config.js
中一定要配置output.publicPath
来指定编译后的包(bundle)的访问位置.
在Nodejs API中运行inline模式,并启用热模块替换
这里需要做以下三点:
-
在
webpack.config.js
的entry
选项中添加:webpack/hot/dev-server -
在
webpack.config.js
的plugins
选项中添加:new webpack.HotModuleReplacementPlugin()
-
在
webpack-dev-server
的配置中添加:hot:true