Nodemon看了太多文件

时间:2014-11-26 09:27:11

标签: node.js nodemon

我对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

绝大多数这些文件都在.gitnode_modules之下,但nodemon应该忽略这些文件。知道是什么导致了这个吗?

(我暂时会使用--watch

2 个答案:

答案 0 :(得分:1)

我承认,与手表计数相比,我对文件数量感到有些不安,但一个很好的选择可能是将nodemon更新到最近的1.3.0版本:

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

此更新修复了许多错误和烦恼,包括忽略优先于监视规则的规则,以及忽略常见目录(如.git和.sass-cache)的新默认选项(旧的1.2版本不能很好地执行此操作,如果完全没有。)

答案 1 :(得分:0)

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

...
[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
...

当我弄乱.gitnode_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执行此操作&# 39; s的东西(重启,执行选项等)。