我有一个我正在开发的Node.js服务器,并且我使用nodemon在源代码更改时重新启动服务器。如何告诉nodemon忽略除一个目录以外的所有node_modules
此服务器对另一个模块(我正在开发)有依赖性,所以如果对该模块的更改也重新启动了服务器,那将会很好。
最好的尝试尚未(!谢谢,bitstrider)
我做了一个回购协议,如果有人想检查出来重现此问题用最少的代码:https://github.com/shawninder/nodemon-troubles
亮点是nodemon.json
:
{
"ignoreRoot": [
".git",
".nyc_output",
".sass-cache",
"bower-components",
"coverage"
],
"ignore": [
"node_modules/!(is-node)",
"node_modules/is-node/node_modules"
]
}
ignoreRoot
相同the defaults,但没有node_modules
。ignore
是我试图告诉它忽略node_modules,但不是is-node
。
这几乎可以工作(编辑is-node重新启动服务器),但它正在监视所有节点模块,不仅是is-node。
如何让nodemon忽略除一个之外的所有节点模块?
详细
- 我使用的是最新版本的nodemon的,1.11.0
- 我也试图与https://github.com/remy/nodemon/pull/922
说明问题
Nodemon将忽视并将它们组合成一个大规则在将此传递给chokidar之前。这是一种基于正则表达式的自定义解析算法,不支持全局否定和正则表达式语法。例如,上面的例子中产生下面的正则表达式:
/\.git|\.nyc_output|\.sass\-cache|bower\-components|coverage|node_modules\/!\(is\-node\)\/.*.*\/.*|node_modules\/is\-node\/node_modules\/.*.*\/.*/
通知否定字符!
端向上作为在所得的正则表达式字面!
。使用负向预览语法也不起作用,因为控制字符被转换为文字字符。
应该但不。在我最近的尝试中,我在nodemon.json中使用了以下内容: '{“ignoreRoot:[”.git“,”.nyc_output“,”.sass-cache“,”bower-components“,”coverage“],忽略“:[”node_modules /!(my-watched-module)“,”node_modules/my-watched-module/node_modules“]} 它正确地观看我观看的模块,而不是观看我观看的模块的node_modules,但它仍然在观看其他节点模块... – Shawn
我编辑我的问题,并带有一个链接到一个回购问题,如果您有兴趣,可以重现问题 – Shawn
@Shawn我的更新答案应该适用于您 – bitstrider