🔥 Горячая замена модуля

Горячая замена модуля (HMR) улучшает опыт разработки, автоматически обновляя модули в браузере во время выполнения без необходимости обновления всей страницы. Это означает, что состояние приложения может сохраняться при изменении мелочей. Реализация HMR в Parcel поддерживает как JavaScript, так и CSS-ресурсы из коробки. HMR автоматически отключается для продакшен бандла.

Когда вы сохраняете файлы, Parcel восстанавливает измененное и отправляет обновление всем работающим клиентам, содержащим новый код. Затем новый код заменяет старую версию и повторно оценивается вместе со всеми родителями. Вы можете подключиться к этому процессу, используя module.hot API, который может уведомить ваш код, когда модуль собирается быть удаленным или когда приходит новая версия. Проекты, подобные react-hot-loader могут облегчить этот процесс и работают с Parcel из коробки.

Есть два способа узнать о: module.hot.accept и module.hot.dispose. Вы вызываете module.hot.accept с функцией обратного вызова, которая выполняется при обновлении этого модуля или любых его зависимостей. module.hot.dispose принимает обратный вызов, который вызывается, когда этот модуль будет заменен.

if (module.hot) {
  module.hot.dispose(function () {
    // модуль будет заменен.
  });

  module.hot.accept(function () {
    // модуль или одна из его зависимостей была только что обновлена.
  });
}