Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何告诉nodemon忽略除一个目录之外的所有node_模块_Nodemon - Fatal编程技术网

我如何告诉nodemon忽略除一个目录之外的所有node_模块

我如何告诉nodemon忽略除一个目录之外的所有node_模块,nodemon,Nodemon,我正在开发一个Node.js服务器,我使用nodemon在源代码更改时重新启动服务器 这个服务器依赖于另一个模块,我也在开发这个模块,所以如果对该模块的更改也重新启动服务器,那就太好了 迄今为止最好的尝试(谢谢,比特漫游者!) 如果有人想查看,我做了一次回购,用最少的代码重现这个问题: 突出显示在nodemon.json中: { "ignoreRoot": [ ".git", ".nyc_output", ".sass-cache", "bower-compo

我正在开发一个Node.js服务器,我使用nodemon在源代码更改时重新启动服务器

这个服务器依赖于另一个模块,我也在开发这个模块,所以如果对该模块的更改也重新启动服务器,那就太好了

迄今为止最好的尝试(谢谢,比特漫游者!)

如果有人想查看,我做了一次回购,用最少的代码重现这个问题:

突出显示在
nodemon.json
中:

{
  "ignoreRoot": [
    ".git",
    ".nyc_output",
    ".sass-cache",
    "bower-components",
    "coverage"
  ],
  "ignore": [
    "node_modules/!(is-node)",
    "node_modules/is-node/node_modules"
  ]
}
  • ignoreRoot
    与相同,但没有
    node\u模块
  • ignore
    是我试图告诉它忽略node\u模块的地方,但不是
    是node
这几乎是可行的(编辑is节点会重新启动服务器),但它会监视所有节点模块,而不仅仅是is节点

我如何告诉nodemon忽略除一个模块之外的所有节点模块

详细信息

  • 我使用的是nodemon的最新版本,1.11.0
  • 我也试过了
解释问题

Nodemon接受忽略并将它们组合成一个大的正则表达式,然后将其传递给chokidar。它是一种基于正则表达式的自定义解析算法,既不支持全局否定,也不支持正则表达式语法。例如,上面的示例生成以下正则表达式:

/\.git|\.nyc_output|\.sass\-cache|bower\-components|coverage|node_modules\/!\(is\-node\)\/.*.*\/.*|node_modules\/is\-node\/node_modules\/.*.*\/.*/

注意否定字符
最终成为文字
。由于控制字符被转换为文字字符,所以使用否定先行语法也不起作用。

由于
nodemon
使用
minimatch
进行匹配,您应该能够对符号
使用否定,根据

因此,在您的情况下,请尝试:

{
  "ignore" : "node_modules/!(my-watched-module)/**/*"
}
这应该忽略所有模块文件,除了
my wasted module

注意:此处的
忽略
规则仅针对文件,而不是目录。这种行为在
nodemon
的上下文中是有意义的,因为它监视文件更改


应该但不应该。在我最近的一次尝试中,我在nodemon.json中使用了以下内容:
{“ignoreRoot:[”.git“,“.nyc_output”,“.sass cache”,“bower components”,“coverage”],“ignore:[“node_modules/!(我关注的模块)”,“node_modules/my关注的模块/node_modules”]
它正确地监视了我关注的模块,而没有监视我关注的模块的节点,但它仍在监视其他节点模块…我编辑了我的问题,并链接到了一个repo,如果你感兴趣的话,它会重现这个问题。这很奇怪,因为
ignoreRoot
显然是黑名单目录…欢迎!是的,我同意e、 如果将
忽略
应用于目录,会更直观。但是,嘿,至少你可以自由地分叉并添加该功能该死,这在非简化环境中不起作用。当我设法重现实际问题时,我会再次发布