我知道当节点尝试将自身绑定到已经在使用的端口时,会发生EADDRINUSE。
问题是,当我的代码发生更改时,这一切都与gulp nodemon结合使用。自从我将代码从bin / www移到我的app.js文件中后,我感觉自己得到了这个错误。
bin / www看起来像这样:
#!/usr/bin/env node
var app = require('../app');
gulp.js使用以下代码重新启动我的服务器:
// nodemon task
gulp.task('nodemon', function(){
nodemon({ script: 'bin/www', ext: 'html js' })
.on('change', ['styles-website', 'watch', 'test'])
.on('restart', function(){
console.log('restarted nodemon!')
})
});
在我的app.js文件中我有这个启动服务器:
var server = app.listen(app.get('port'), function() {
console.log("Express server started!");
});
这一切在我第一次开始吞咽时工作正常,但现在当gulp重新启动时我得到错误:
Error: listen EADDRINUSE
我有一种感觉这与将代码移出bin / www(必须让socket.io在我的app var上工作)有关。
有没有人知道如何解决这个问题?
更新:使用" nodemon bin / www"在gulp之外,一切正常
答案 0 :(得分:0)
如果有人遇到同样的问题,这似乎可以解决它:
.pipe(livereload({ auto: false }))
auto:false选项可防止重新启动livereload服务器的另一个实例