【问题标题】:Gulp-Nodemon watches for changes and restarts ONCE onlyGulp-Nodemon 仅监视更改并重新启动一次
【发布时间】:2015-08-27 17:27:12
【问题描述】:

正如标题所说,我在我的 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 个实例同时运行:

我对@9​​87654327@ 做错了吗?或者只是gulp

【问题讨论】:

  • 当你在初始运行后进行更改时,它是否说它正在运行任务,但它没有改变任何东西?
  • 它确实,它改变并成功重启。
  • 看起来这是gulp-nodemon 本身的问题:github.com/JacksonGariety/gulp-nodemon/issues/70

标签: javascript node.js gulp nodemon


【解决方案1】:

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

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

【讨论】:

  • 我在使用没有 gulp-nodemon 插件的普通 nodemon 时遇到了完全相同的问题。
【解决方案2】:

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

我的 gulp “监视”任务正在运行单元测试/linting,然后在文件更改上运行构建。

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

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

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

【讨论】:

    猜你喜欢
    • 2019-03-23
    • 2018-07-08
    • 2014-08-24
    • 2020-06-15
    • 2018-03-05
    • 2016-07-22
    • 2019-06-22
    • 2020-07-16
    相关资源
    最近更新 更多