🔥 Гаряча заміна модуля
Гаряча заміна модуля (HMR) покращує досвід розробки, автоматично оновлюючи модулі в браузері під час виконання без необхідності оновлення всієї сторінки. Це означає, що стан програми може зберігатися при невеликих змінах. Реалізація HMR в Parcel підтримує як JavaScript, так і CSS-ресурси з коробки. HMR автоматично відключається в режимі продакшена.
Коли ви зберігаєте файли, Parcel відновлює зміни і відправляє оновлення всім працюючим клієнтам, що містить новий код. Потім новий код замінює стару версію і повторно оцінюється разом з усіма батьками. Ви можете підключитися до цього процесу, використовуючи API module.hot, який може повідомити ваш код, коли модуль буде видалений, або коли приходить нова версія. Такі проекти, як 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 () {
// модуль або одна з його залежностей була тільки що оновлена.
});
}Безпечний запис
У деяких текстових редакторах та IDE є можливість, так звана safe write (безпечний запис), яка в основному запобігає втраті даних, роблячи копію файлу та перейменовуючи його при збереженні.
При використанні гарячої перезавантаження ця можливість блокує автоматичне виявлення оновлень файлів, тому для відключення безпечного запису використовуйте відповідний вам варіант:
Sublime Text 3додайтеatomic_save: "false"в призначені для користувача налаштування.IntelliJскористайтеся пошуком і знайдіть в налаштуваннях (preferences)safe writeі відключіть її.Vimдодайте: set backupcopy = yesдо ваших налаштувань.WebStormзніміть галочкуUse "safe write", перейшовши в Preferences> Appearance & Behavior> System Settings.
Help us improve the docs
If something is missing or not entirely clear, please file an issue on the website repository or edit this page.