如何在文件更改时重新启动节点服务器

Jea*_*eri 4 javascript node.js gulp

我正在开发一个节点/快递应用程序

$> ./node_modules/babel/bin/babel-node.js index.js
Run Code Online (Sandbox Code Playgroud)

现在我想重新加载应用程序,如果我进行更改index.js或任何其他依赖项.我怎样才能做到这一点.我想我必须使用gulp它,但我还是想就如何做到这一点(使用哪些模块等)提出一些建议

更新:我刚刚测试过supervisor,但是当发生变化时,我收到以下错误:

$> /node_modules/.bin/supervisor --exec ./node_modules/babel/bin/babel-node.js index.js 

crashing child
Starting child process with './node_modules/babel/bin/babel-node.js     index.js'
events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: listen EADDRINUSE
    at exports._errnoException (util.js:746:11)
    at Server._listen2 (net.js:1146:14)
    at listen (net.js:1172:10)
    at Server.listen (net.js:1257:5)
Run Code Online (Sandbox Code Playgroud)

更新:我刚试过,nodemon但我得到的错误与supervisor:

$> nodemon  --exec ./node_modules/babel/bin/babel-node.js index.js  --watch libs

...
22 Aug 16:58:35 - [nodemon] restarting due to changes...
22 Aug 16:58:35 - [nodemon] starting `./node_modules/babel/bin/babel-   node.js index.js`
events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: listen EADDRINUSE
    at exports._errnoException (util.js:746:11)
    at Server._listen2 (net.js:1146:14)
    at listen (net.js:1172:10)
Run Code Online (Sandbox Code Playgroud)

更新:我EADDRINUSE通过添加以下内容解决了这个问题index.js

process.on('exit', () => {
    server.close();
})

process.on('uncaughtException', () => {
    server.close();

})

process.on('SIGTERM', () => {
    server.close();
})
Run Code Online (Sandbox Code Playgroud)

但是,现在它似乎重新启动,但新代码未加载

小智 6

用这个:

supervisor -- -r 'babel/register' index.js
Run Code Online (Sandbox Code Playgroud)

并删除server.close代码.