我使用此处的示例项目来设置带有热模块替换的 webpack 项目。然后我设置了一个示例主干应用程序。
// main.js
import $ from 'jquery';
import Backbone from 'backbone';
import Router from './router';
window.app = window.app || {};
const app = new Backbone.Marionette.Application();
app.addRegions({content: '#content'});
app.on('start', () => {
if (Backbone.history)
Backbone.history.start({ pushState: true })
}
);
app.addInitializer(() => {
return new Router();
});
$( () => { app.start() });
// HMR
if (module.hot) {
module.hot.accept();
}
[HMR] connected
根据调试输出,我可以看到 HRM 正在正常加载。当文件更改时,我可以根据以下输出看到它正在重建并将更新推送到客户端:
[HMR] Updated modules:
process-update.js?e13e:77 [HMR] - ./app/backbone/views/template.hbs
process-update.js?e13e:77 [HMR] - ./app/backbone/views/hello.js
process-update.js?e13e:77 [HMR] - ./app/backbone/router.js
但是屏幕不会重新加载。什么都没发生。
知道如何让它工作吗?或者 HMR 应该只与 React 一起工作?