如何使Webpack热模块更换与车把模板一起使用?

6 javascript handlebars.js webpack webpack-dev-server webpack-hmr

我正在使用handlebars-loader:

  {
    test: /\.hbs$/,
    loader: 'handlebars-loader',
  }
Run Code Online (Sandbox Code Playgroud)

我也在使用html-webpack-plugin。

使用Webpack Dev Server,一切都能按我的意愿进行:

如果保存了对车把模板或SCSS文件的更改,则会自动重新加载页面。

但是,一旦我能hot: truedevServer,HMR开始对SCSS变化工作(即CSS地没有全部重新加载更新),这是我想要的,但如果我改变车把模板,HMR不工作,和常规的“热重载”(即重新加载整个页面)也停止工作。

有任何想法吗?

如果HMR适用于SCSS更改,并且对把手模板进行常规的“热重载”(没有,该方法已经可以使用hot: true),那也很好。

nic*_*ock 0

为您创建了一个简单的配置,以表明它在默认情况下正常工作。 https://github.com/nickbullock/webpack-hmr-hbs-example

请运行它

npm i;
npm run start;
Run Code Online (Sandbox Code Playgroud)

然后更改hello.hbs,例如添加,然后将其值添加到文件{{test}}中的选项中。之后您将看到来自 HMR 的日志,webpack 将更新您的文件并成功查看。index.jstest: 'hola!'

在您的项目上调试它的步骤:

  1. 将选项设置hotOnly: truedevServer配置部分。这将防止实时重新加载。
  2. 请在车把模板重新加载后向我显示 HMR 日志。
  3. 另请向我们展示您的 webpack 配置