gpt4 book ai didi

nodemon - 我如何告诉 nodemon 忽略除一个目录之外的所有 node_modules

转载 作者:行者123 更新时间:2023-12-01 13:36:11 26 4
gpt4 key购买 nike

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

该服务器依赖于我也在开发的另一个模块,因此如果对该模块的更改也重新启动服务器会很好。

最好的尝试 (谢谢,bitstrider!)

如果有人想检查它,我制作了一个 repo 以用最少的代码重现这个问题: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"
]
}
  • ignoreRootthe 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使用 minimatch对于匹配,您应该能够使用带有符号 ! 的否定。 ,根据 documentation .

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

    {
    "ignore" : "node_modules/!(my-watched-module)/**/*"
    }

    这应该忽略除了 my-watched-module 中的所有模块文件。

    NOTE: The ignore rule here only targets files, not directories. This behavior makes sense in the context of nodemon because its watching for file changes.

    关于nodemon - 我如何告诉 nodemon 忽略除一个目录之外的所有 node_modules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43189360/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com