关于webpack hmr的一个困惑

官方文档中写的一个demo,

// print.js
export default function printMe() {
    // console.log('I get called from print.js!'); 
    console.log('Updating print.js...');
}
// index.js
import printMe from './print.js';

if (module.hot) {
    module.hot.accept('./print.js', function() {
        printMe();
    })
}

当对print.js修改后,在module.hot.accept中注册的回调函数被调用。

我的困惑是,假设浏览器已经获取了修改后的print.js,可要使新的代码生效,就得重新调用一次__webpack_require__啊,这个例子中不重新加载index.js的情况下,回调函数中的printMe不还是旧的引用吗?

阅读 726
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进