Gulp-Nodemon 监视更改并仅重新启动一次

Gulp-Nodemon watches for changes and restarts ONCE only

正如标题所说,我在 gulp 文件中使用 gulp-nodemon 模块让 nodemon 在检测到文件更改时重新启动我的服务器:

gulp.task('default', function() {
    nodemon({ script: 'dist/server/main.js',
        tasks: ['server', 'bundle', 'css', 'ejs'],
        ext: 'ejs js json'
    }).on('restart', function() {
        console.log('Restarted!');
    });
});

我列出的所有任务都是基本构建任务。当我更改文件时,服务器重新启动,但以后的更改将被忽略:

更重要的是,如果我中断进程 (CTRL+C) nodemon 显示重启消息,就好像 2 个实例同时 运行:

我在 gulp-nodemon 上做错了吗?或者只是 gulp 一般?

我发现这是 gulp-nodemon 的问题。它看起来不会很快得到修复。我建议寻找替代方案。

https://github.com/JacksonGariety/gulp-nodemon/issues/70

我有一个类似的问题,其中 nodemon 被用作我执行的“监视”gulp 任务的一部分 - 只有 运行 一次,然后似乎没有跟踪我的任何文件代码更改之后制作。

我的 gulp“观察”任务是 运行 单元 tests/linting 然后 运行 基于文件更改的构建。

我发现问题实际上出在我的单元测试中,我的导入有问题。即我正在导入一个不存在的代码模块。基本上这是一个导入模块错误,似乎被 gulp 吞没了,之后 nodemon 停止监视更改。

我通过注释掉代码(从所有测试开始)找到了根本原因,然后将其追溯到具有错误导入的确切测试文件。在我修复模块导入 nodemon 后完美运行!

总而言之 - 很可能是代码中的模块导入错误导致 nodemon 以这种方式运行,但错误已被 gulp. 吞没