docker节点应用程序总是使用nodemon在文件更改上崩溃

我正在使用最新版本的docker和最新的节点映像。 我有一个启动nodemon进程的gulp文件。 我正在使用–inspect标志来表示我想要使用实验性的开发工具debugging器。 但是,当我更改文件时,nodemon会将其选中并重新启动该进程,但会崩溃。

这是我的g task任务:

gulp.task('start:dev', done => { let started = false; nodemon({ script: path.join(__dirname, 'index.js'), ext: 'js json', nodeArgs: ['--inspect=0.0.0.0:9229'], watch: path.join(__dirname, 'express'), legacyWatch: true }) .on('start', () => { // to avoid nodemon being started multiple times if (!started) { setTimeout(() => done(), 100); started = true; } }); }); 

这里是错误:

Starting inspector on 0.0.0.0:9229 failed: address already in use

如果我将--inspect标志更改为--debug它就像一个魅力。

我猜测是重启进程太快, --inspect无法释放它的端口。 如果我做另一个文件改变它确实工作,并正常重新启动。 可能是因为它有时间释放这个港口。

我曾尝试在nodemon上使用延迟,但我宁愿不。 我想快速重启。 我已经尝试使用事件,如重新启动和退出,等待几秒钟,然后重新启动整个吞咽任务。 但是,这是令人沮丧的,我又想快速重新启动,而不必一起破解一些东西。

现在我只是转回到--debug但在最新的V8中已经弃用了。 他们build议使用--inspect

也许唯一的办法是locking我的版本的节点?

有什么build议么?

只要杀了督察,再次启动督察这里是我们的团队在我们的package.json的解决scheme。 你最好杀死检查员进程,然后重新启动检查员

"inspect": "kill-port --port 9229 && node --inspect=0.0.0.0:9229 build/startup.js", "start_watch_inspect": `nodemon --delay 80ms --watch build/ build/startup.js --exec 'npm run inspect'`