hot module compiled for node.js, no need to restart server. it's useful to speed-up node.js development
-
do not use it in production mode.
-
not support change exports variable type, as we can't convert
object
tofunction
-
typeof
operator returnobject
for exports that returns primitive value
-
we don't need
nodemon
/pm2
/supervisor
any more -
no special codes to inject into your codes
-
simply configuration
local
npm install --save-dev hotrun
global
npm install -g hotrun
hotrun app.js -i 9999 -b -w src -x src/excule.js -f src/server.js
a working example see ./example
.
import hotrun
and configure it in your development server entry, like ./example/app.js
const fs = require('fs');
const path = require('path');
const Koa = require('koa');
const emitter = require('hotrun')({
extensions: ['.js'],
watch: path.resolve(__dirname, './src')
});
const middleware = require('./src/middleware');
const app = new Koa();
app.use(middleware);
emitter.on('hot', () => {
console.log('module hot compiled done!')
});
app.listen(3100, (err) => {
if (err) throw err;
console.log('app running at port 3100')
})
-i, --inspect [port] Enable inspect mode on port
-b, --inspect-brk Enable inspect break mode
-c, --config Specify a json config file
-e, --extensions [extensions] List of extensions to hook into [.es6,.js,.es,.jsx]
-w, --watch [dir] Watch directory "dir" or files, to hot compile
-f, --force [dir] Force restart if directory "dir" or files changed
-x, --exclude [dir] Exclude matching directory/files from watcher
-p, --use-polling In some filesystems watch events may not work correcly. This option enables "polling" which should mitigate this type of issues
-V, --version output the version number
-h, --help output usage information
const emitter = require('hotrun')({
extensions: ['.js'],
usePolling: true,
watch: path.resolve(__dirname, './src'),
exclude: 'path/to/exclue.js'
});
specify which extension files to be hot compiling
specify which source modules in folder should be hot compiling
specify which files should not be hot compiling
deprecated, use options.watch instead
In some filesystems watch events may not work correcly. This option enables "polling" which should mitigate this type of issues