An advanced hot reload solution for Node apps. Works very well for developing VSCode extensions and automating websites with puppeteer.
https://github.com/hediet/node-reload.git
A thoughtfully designed library that brings advanced hot reloading to NodeJS.
node_modules and there like can be ignored).yarn add @hediet/node-reload
or
npm install @hediet/node-reload --save
See the ./examples folder for detailed examples.
Works best with TypeScript.
hotReloadExportedItem makes it very easy to track changes of exported items.
import { enableHotReload } from "@hediet/node-reload/node"; // This import needs nodejs.
// Call this before importing modules that should be hot-reloaded!
enableHotReload({
entryModule: module, // only this module and its transitive dependencies are tracked
logging: 'debug', // useful for debugging if hot-reload does not work
});
import { hotReloadExportedItem } from "@hediet/node-reload"; // This import is bundler-friendly and works in any environment!
import { myFunction } from './dep1';
const d = hotReloadExportedItem(myFunction, myFunction => {
// Runs initially and on every change of `myFunction`
console.log('myFunction: ' + myFunction());
return {
dispose: () => {
console.log('cleanup');
}
}
});
// ...
d.dispose();
hotReloadExportedItem and more portable code.