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

时间:2015-06-11 20:16:28

标签: javascript node.js gulp nodemon

正如标题所说,我在我的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!');
    });
});

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

enter image description here

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

enter image description here

我对gulp-nodemon做错了什么?或者只是gulp

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我遇到了一个类似的问题,其中nodemon用作我的“监视” gulp任务的一部分-仅运行一次,然后似乎没有跟踪我在此之后所做的任何文件代码更改。

我的“监视”任务是运行单元测试/启动,然后运行基于文件更改的构建。

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

我通过注释掉代码(从所有测试开始)找到了根本原因,然后将其追溯到具有错误导入的确切测试文件。在修复模块导入节点之后,monmon工作得非常好!

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