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
绝大多数这些文件都在.git
和node_modules
下, node_modules
都应该被nodemon忽略。 任何想法可能是什么原因造成的?
(我会--watch
使用--watch
)
我承认,与计数相比,文件数量有点让人费解,但一个好的select可能是将您的nodemon更新到最新的1.3.0版本:
npm uninstall -g nodemon npm cache clean npm install -g nodemon
该更新修复了许多错误和烦恼,包括优先于监视规则的忽略规则,以及忽略常见目录(例如.git和.sass-cache)的新默认选项(旧版本1.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
文件夹中的一些文件的情况.git
node_modules
在我的Gruntfile.js
我已经明确地为这些文件夹设置了ignore
选项,但是你不需要像nodemon 默认的那样完成:
//Gruntfile.js excerpt grunt.initConfig({ ... //configure nodemon nodemon: { options: { ignore: ['.git/', 'node_modules/', etc..], ... //other options .... } }
所以它看起来像nodemon
跟踪文件系统中发生了什么,即使在被忽略的dirs。经过一段时间nodemon的代码我注意到,它build立文件观察员recursion从cwd开始。
你可以看到在输出changes after filters (before/after): 1/0
文件变化检查对忽略的目录列表(这就是filter的意思)。如果该文件在手表dirs然后nodemon它是事情(重新启动,执行选项等)。