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