2

我对 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暂时用)

4

2 回答 2

1

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

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

此更新修复了许多错误和烦恼,包括忽略规则优先于监视规则,以及忽略常见目录(如 .git 和 .sass-cache)的新默认选项(如果有的话,旧的 1.2 版本并没有很好地做到这一点。 )

于 2015-01-22T10:57:43.527 回答
1

如果您从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
...

此输出是在我弄乱 and 文件夹中的某些文件时获取的。在我的文件中,.gitnode_modules已明确Gruntfile.js设置了ignore这些文件夹的选项,但您不必这样做,因为它默认由 nodemon 完成:

//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 就是这样做的(重新启动、执行选项等)。

于 2015-10-31T13:12:26.753 回答