Node.js 吞下nodemon,观察文件的变化;应用程序崩溃-在启动前等待文件更改;

Node.js 吞下nodemon,观察文件的变化;应用程序崩溃-在启动前等待文件更改;,node.js,gulp,Node.js,Gulp,我正在尝试自动执行一个简单的gulp任务,以运行/调试节点,监视文件更改,并在任何文件更改时重新启动节点。我见过的最流行的用于此用途的方法,但当发生文件更改事件时,(吞咽-nodemon崩溃: [nodemon] app crashed - waiting for file changes before starting... 崩溃的发生是不一致的,因此有时我必须手动发送一个SIGINT来停止节点进程(这种情况违背了nodemon的目的)。 我希望能够运行一个可以监视文件、运行或调试节点的gu

我正在尝试自动执行一个简单的gulp任务,以运行/调试节点,监视文件更改,并在任何文件更改时重新启动节点。我见过的最流行的用于此用途的方法,但当发生文件更改事件时,(吞咽-
nodemon
崩溃:

[nodemon] app crashed - waiting for file changes before starting...
崩溃的发生是不一致的,因此有时我必须手动发送一个
SIGINT
来停止节点进程(这种情况违背了nodemon的目的)。
我希望能够运行一个可以监视文件、运行或调试节点的gulp任务。如何在没有nodemon崩溃的情况下实现这一点呢?

这并不奇怪,但是下面应该可以实现您想要的

  'use strict'
   const gulp = require('gulp');
   const spawn = require('child_process').spawn;

   gulp.task('debug', function() {
    let child = spawn("node", ["debug", "./server.js"], { stdio: 'inherit' });
    gulp.watch([__dirname + "/*.js", '!gulpfile.js'], function(event) {
        console.log(`File %s was %s.`, event.path, event.type);
        if (child) {
            child.kill();
            child = spawn("node", ["debug", "./server.js"], { stdio: 'inherit' });
        }
    });
});
这假设您正在监视
\uuu dirname
中的任何
js
文件的更改,gulpfile除外