Socket
Socket
Sign inDemoInstall

node-hot

Package Overview
Dependencies
16
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    node-hot

🔥 Hot-reloading for Node.js


Version published
Weekly downloads
42
decreased by-48.78%
Maintainers
1
Install size
369 kB
Created
Weekly downloads
 

Readme

Source

🔥 node-hot

node-hot is a Node.js package that will automatically monitor and hot reload modules (stuff that you require).

Based on this article by Kenneth Chung.

Installation

npm install --save-dev node-hot

Usage

// --- main.js ---

// Will only hot reload after this
require('node-hot')
    // Globally configure node-hot (optional)
    .configure({
        // Disable logging (default: false)
        silent: true,

        // Automatically patch all exported classes (default: false)
        patchExports: true,

        // Exclude patterns (default: node_modules)
        exclude: [
            /[\/\\]node_modules[\/\\]/,
            /[\/\\]bower_components[\/\\]/,
            /[\/\\]jspm_packages[\/\\]/
        ]
    });

// Main/entry module can't be reloaded, hence the extra file
require('./app');
// --- app.js ---

class Foo {}
let foo;

if (module.hot) {
    // Reload this module and its dependencies, when they change (optional)
    module.hot.accept();

    // Gets called before reload (optional)
    module.hot.store(stash => {
        stash.foo = foo;
    });

    // Gets called after reload, if there was a store (optional)
    module.hot.restore(stash => {
        foo = stash.foo;
    });

    // Replaces class methods and accessors (optional)
    module.hot.patch(Foo);
}

if (!foo) {
    foo = new Foo();
}

Once you modify a module on disk, node-hot recursively traverses the dependants of that module, looking for an accepting module. Once it finds that it will re-require that module.

You usually only need accept in one of your first modules to run. However, due to the main/entry module being treated differently from the rest by Node.js, you will not be able to accept from the main/entry module, meaning it can't be reloaded.

You can choose to omit accept entirely, in which case node-hot will automatically accept when it reaches a module with no dependants, which will most likely be the modules require'd by your main module.

License

See LICENSE.

Keywords

FAQs

Last updated on 24 Jun 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc