Как заставить Webpack Hot Module Replacement работать с шаблонами руля?

Использую руль-загрузчик:

  {
    test: /\.hbs$/,
    loader: 'handlebars-loader',
  }

Я также использую html-webpack-plugin.

Все работает так, как я хочу, используя Webpack Dev Server:

автоматическая перезагрузка страницы при сохранении изменений в шаблонах руля или файлах SCSS.

Однако, как только я включаю hot: true в devServer, HMR начинает работать для изменений SCSS (т.е. CSS обновляется без полной перезагрузки), что я и хочу, но если я изменю шаблоны руля, HMR не будет работать, а обычный " горячая перезагрузка »(т.е. перезагрузка всей страницы) также перестает работать.

Любые идеи?

Было бы также хорошо, если бы HMR работал для изменений SCSS и регулярную «горячую перезагрузку» для шаблонов руля (как это уже работает без hot: true).


person Community    schedule 17.11.2019    source источник
comment
Поделитесь всей конфигурацией вашего веб-пакета, чтобы оценить   -  person Timothy    schedule 20.11.2019


Ответы (1)


Создал простую конфигурацию, чтобы показать, что она работает по умолчанию. https://github.com/nickbullock/webpack-hmr-hbs-example

Пожалуйста, запустите его с

npm i;
npm run start;

затем измените hello.hbs, например добавьте {{test}}, а затем добавьте его значение в параметры в index.js файле test: 'hola!'. После этого вы увидите журналы из HMR, и webpack обновит ваши файлы и успешно просмотрит.

Шаги по отладке в вашем проекте:

  1. Установите опцию hotOnly: true в раздел конфигурации devServer. Это предотвратит перезагрузку в реальном времени.
  2. Покажите мне логи HMR после перезагрузки шаблона руля.
  3. Пожалуйста, также покажите нам конфигурацию вашего веб-пакета
person nickbullock    schedule 26.11.2019