Webpack loader that add a hmr method to your module
- Wrap your module inside an HMR object
- Watch/Unwatch changes with the
watch
andunwatch
methods - Access to your module via the
module
property
$ npm install @internet/hmr -S # with npm
$ yarn add @internet/hmr --dev # with yarn
@internet/hmr
to each import statement your want to add hot reloading.
hmr-loader
doesn't work when specified in a webpack config file.
import Module from '@internet/hmr!./module-object'
import string from '@internet/hmr!./module-string'
// Return true - you can use it to check if the module is wrapped inside the hmr module
Module.__hmr
// Return module ID
Module.id
// Real module default value
Module.module
// onReload will be called on each reload
Module.watch(onReload)
// Stop calling onReload on each reload
Module.unwatch(onReload)
// Only the new module value is sent to the callback, without a new hmr wrapper
function onReload (newValue) {}
- Node >= 8
- Webpack >= 3
hmr-loader
is a package of the @internet npm scope.
@internet is a collection of opinionated and interoperables front-end npm ES6 modules, with minimal external dependencies.