11、模块热替换(HMR)

模块热替换 :当修改一个js或者css的时候,只刷新修改的内容,不进行整个页面的刷新。

1、若本地服务器是使用webpack-dev-server的,则把hot : true 加上

devServer : {
    contentBase : './dist',
    host : 'localhost',
    port : 8080,
    open : true,
    hot : true,  //这里
   
}

2、配置2个插件

plugins:[
    new webpack.NamedModulesPlugin(), //当开启HMR替换的时候,用于显示模块相对路径
    new webpack.HotModuleReplacementPlugin() // HMR替换插件
]

ps :若有使用mini-css-extract-plugin整个插件请注释掉,它和HMR有冲突,不能一起使用。

完成以上工作,当我们修改css的时候,页面不会自动刷新,只会更新我们修改后的css。

然后继续修改js后会发现,整个页面刷新了,那是因为dev-server默认修改了js会刷新页面,只需要把dev-server的hotOnly : true打开。如 : 

devServer : {
    contentBase : './dist',
    host : 'localhost',
    port : 8080,
    open : true,
    hot : true, 
    hotOnly : true, //这里
},

即可。这里表示js修改了只有热更新,不要自动刷新页面。然后在要热更新的js写上这句判断 :

if(module.hot){ 
    module.hot.accept();
}

因为js和css的HMR不一样,需要手动更新

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值