1.0.4 • Published 4 years ago

hot-reloading-proxy v1.0.4

Weekly downloads
4
License
MIT
Repository
-
Last release
4 years ago

Hot-reloading-proxy

Inspired from https://github.com/JJJYY/http-live-server

When developping html page, you often want to reload your browser every time a page is modified.

Some great solutions exists, but often, they implies to use their own webserver or to server modified pages.

This solution propose to place an independant proxy between your 'official' server (--remote option) and your browser. This proxy will inject some code in each 'text/html' page that flow by, to enable them with hot reloading capabilities.

To select when to reload, the server himself will watch local files (--watch and --ignore options).

That's all!

Install

With local install from npmjs:

    npm install -D hot-reloading-proxy

With global install

    npm install -g hot-reloading-proxy

Run

With local install, in a package.json script

    scripts: {
        # Default config
        "watch": "hot-reloading-proxy"

        # Advanced config
        "watch": "hot-reloading-proxy --remote http://localhost:3000 --watch ."
    }

With global install

    hot-reloading-proxy --remote http://localhost:3000 --watch .

Configure

In default config, the hot-reloading-proxy will remote localhost on port 3000, and watch for all files except "node_modules" folder.

Other options:

optiondescriptiondefault value
--remotethe remote host to be proxiedhttp://localhost:3000
--portthe port on which the service is available3001
--watch(once or multiple times) set the folders to be watched.
--ignore(once or multiple times)set some folders to be ignored in the watch list'node_modules'
--verboseincrease verbosity-
--quietreduce verbosity-

Use it as a module

#!/usr/bin/env node
/* eslint-env node */

const hotReloadingProxy = require('hot-reloading-proxy/server');

hotReloadingProxy.start({
	port: 3000,
	remote: 'http://localhost:3001'
});

/* and now, do your own stuff, like starting your own server on 3001 */
/* example: call you original server.js: require('./server.js') */

The start take options:

wsPath: 
watch: array of path to watch for
ignore:

Changelog

v1.0.2: - Enable using hot-reloading-proxy as a module - Dev: factorize the default configuration