【发布时间】:2016-04-30 21:46:39
【问题描述】:
我使用来自 here 的示例项目来设置一个带有热模块替换的 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?
【问题讨论】:
-
似乎主干不支持开箱即用的 HMR,必须添加代码来处理重新加载视图,类似于 react-hot-loader 的工作方式
标签: backbone.js webpack webpack-dev-server webpack-hmr