【问题标题】:Nodemon watching too many filesNodemon 监视太多文件
【发布时间】:2015-01-24 13:30:44
【问题描述】:

我对 nodemon 的警告信息感到困惑:

myproject $ nodemon index.js
26 Nov 11:14:31 - [nodemon] v1.2.1
26 Nov 11:14:31 - [nodemon] to restart at any time, enter `rs`
26 Nov 11:14:31 - [nodemon] watching: *.*
26 Nov 11:14:31 - [nodemon] starting `node index.js`
26 Nov 11:14:31 - [nodemon] watching 26,084 files - this might cause high cpu usage. To reduce use "--watch".

如果我计算所有文件,我得到:

myproject $ find . | wc -l
16628

这些文件中的绝大多数都在 .git 和 node_modules 下,无论如何 nodemon 都应该忽略它们。知道是什么原因造成的吗?

(我暂时用--watch)

【问题讨论】:

    标签: node.js nodemon


    【解决方案1】:

    我承认文件计数与观看计数相比我有点困惑,但一个不错的选择可能是将您的 nodemon 更新到最近的 1.3.0 版本:

    npm uninstall -g nodemon
    npm cache clean
    npm install -g nodemon
    

    此更新修复了许多错误和烦恼,包括忽略规则优先于监视规则,以及忽略常见目录(如 .git 和 .sass-cache)的新默认选项(如果完全没有。)

    【讨论】:

    • 我正在使用 nodemon 1.3.1,但仍然面临同样的问题。对此还有什么想法吗?
    • 你在'options'中定义了'ignore'吗? nodemon: { dev: { script: 'server.js', options: { nodeArgs: ['--debug'], ignore: ['public/', 'node_modules/'],等
    【解决方案2】:

    如果您使用--verbose 选项启动nodemon,您将看到类似于此的输出:

    ...
    [nodemon] files triggering change check: .git\index.lock
    [nodemon] changes after filters (before/after): 1/0
    [nodemon] files triggering change check: .git
    [nodemon] changes after filters (before/after): 1/0
    [nodemon] files triggering change check: .git
    [nodemon] changes after filters (before/after): 1/0
    ...
    [nodemon] files triggering change check: node_modules\jade
    [nodemon] changes after filters (before/after): 1/0
    ...
    

    此输出是在我处理 .git 和 node_modules 文件夹中的一些文件时获取的。在我的 Gruntfile.js 中,我已为这些文件夹明确设置了 ignore 选项,但您不必这样做它是 nodemon 的done by default:

    //Gruntfile.js excerpt
    
    grunt.initConfig({
    ...
    //configure nodemon
        nodemon: {
            options: {
                ignore: ['.git/', 'node_modules/', etc..],
                ...
                //other options
                ....
             }
         }
    


    所以看起来nodemon 跟踪文件系统中发生的事情,即使在被忽略的目录下也是如此。在使用 nodemon 的代码一段时间后,我注意到它从 cwd 开始递归地建立文件观察器。
    您可以在输出changes after filters (before/after): 1/0 中看到文件更改是针对被忽略目录列表检查的(这就是过滤器的内容)。如果文件在监视目录中,那么 nodemon 就可以了(重新启动、执行选项等)。 )。

    【讨论】:

      猜你喜欢
      • 2021-12-12
      • 2019-02-20
      • 2017-03-08
      • 2018-07-11
      • 2018-06-03
      • 2016-07-22
      • 2017-07-08
      • 2020-09-30
      • 2015-11-14
      相关资源
      最近更新 更多