Node.js application hot reload with Proxy
.
NB: proxy-hot-reload can only proxy modules that return an plain object, like:
module.export = { ... }
// or
exports.xxx = ...
$ npm i proxy-hot-reload --save
app.js
'use strict';
if (process.env.NODE_ENV !== 'production') {
require('proxy-hot-reload')({
includes: '**/*.js'
});
}
const express = require('express');
const app = express();
const user = require('./user');
app.get('/', function (req, res) {
res.send(user);
})
app.listen(3000);
user.js
module.exports = {
id: 1,
age: 19
}
DEBUG=proxy-hot-reload node app.js
Then try to modify user.js, access to localhost:3000
.
require('proxy-hot-reload')([option])
option:
- includeFiles([obsolute filepath]) || includes(glob pattern string): as
PROXY_HOT_RELOAD_INCLUDES
, files should be includes, see glob. - excludeFiles([obsolute filepath]) || excludes(glob pattern string): as
PROXY_HOT_RELOAD_EXCLUDES
, files should be excludes, see glob. - watchedFileChangedButNotReloadCache: default:
function (filename) {
debug(`${filename} changed, but not reload cache!`)
}
- proxy-hot-reload should not be used in production environment.
- proxy-hot-reload is effective for some specific files like:
lib/*.js
,utils/*.js
etc.
If you find some bugs please raise an issue or make a pull request.
MIT