【问题标题】:nodemon ignore directorynodemon 忽略目录
【发布时间】:2017-06-14 06:19:06
【问题描述】:

在通用 Javascript 应用程序中,我希望 nodemon 忽略客户端目录更改。

我尝试了以下方法:

"devStart": "nodemon server/server.js --ignore 'client/*' --exec babel-node",
"devStart": "nodemon server/server.js --ignore 'client/' --exec babel-node",
"devStart": "nodemon server/server.js --ignore client/ --exec babel-node",
"devStart": "nodemon --ignore 'client/*' server/server.js --exec babel-node",
"devStart": "nodemon --ignore 'client/' server/server.js --exec babel-node",
"devStart": "nodemon --ignore client/ server/server.js --exec babel-node",

这些都不起作用。

文件结构:

+-server
+-client
+-package.json <------- where nodemon script is

但是这不起作用。很确定这是一个模式问题。

有什么想法吗?

【问题讨论】:

  • 我建议将您的 nodemon 配置存储在 nodemon.json 文件中。会让它更干净。
  • @Aᴍɪʀ 感谢您的提示。对实际问题的任何提示?
  • 很确定它只是通往客户端的路径 - 应该是 ./client/*client/*
  • 你可以尝试不使用' 标记并使用. 代替..'./client/*' 并且不使用*
  • @Aᴍɪʀ 编辑的package.json 实际上与serverclient 在同一目录中

标签: javascript node.js nodemon


【解决方案1】:

您需要将.. 替换为.,或者直接引用client/,还需要去掉星号:

"devStart": "nodemon --ignore ./client/ --exec babel-node src/server.js"

或者

"devStart": "nodemon --ignore client/ --exec babel-node src/server.js"

根据 nodemon 文档,这是如何通过命令行忽略目录:

nodemon --ignore lib/ --ignore tests/

还要注意nodemon只会重启node进程,如果你改变npm脚本你需要杀死进程并重新运行npm run devStart

【讨论】:

  • 已编辑我的package.json 实际上与clientsrc 位于同一目录中
  • 已更新答案以删除星号 - nodemon 文档说要遵循此模式:nodemon --ignore lib/ --ignore tests/
  • 好的,知道了。我期待服务器重新加载实际上重新加载 devStart 脚本。结果我不得不终止进程并再次运行npm run devStart。如果您可以更新您的答案以反映这一点,我会接受它。 @hackerrdave
  • 我不得不删除client/周围的引号
  • 删除引号对我有用:nodemon --ignore client src/server.js
【解决方案2】:

如果您很可能在配置文件中使用nodemon,您可以为这些文件创建一个单独的配置条目以被忽略。奖励,一个看起来更干净的nodemon 调用,尤其是当要忽略的文件变大时。

例如,这个package.json 指示nodemon 忽略目录test

{
  "scripts": {
    "test": "jest",
    "start": "nodemon server.js"
  },
  "nodemonConfig": {
      "ignore": ["test/*"]
  }
}

找到nodemon配置文件设置here的完整说明。

与其他答案一样,请务必重新启动nodemon 以使配置更改生效。

【讨论】:

    【解决方案3】:

    在您的项目根目录中创建nodemon.json,如下所示:

    {
      "ignore": ["db.json"]
    }
    

    这是在 Andrew Philips 回答中看到的使用 package.json 的替代方法

    docs

    【讨论】:

      【解决方案4】:

      您也可以使用类似的方法仅在特定文件夹中运行 nodemon。这样您就不必添加多个--ignore 参数。

      {
        "scripts": {
          "devStart": "cd ./server/ && nodemon ./server.js"
        }
      }
      

      【讨论】:

        【解决方案5】:

        大家都知道,我使用这种模式来排除目录:

        node_modules/**

        但这导致使用了很多观察者:我的一个项目有近 500000 现在我使用

        node_modules/

        仅使用 134 个观察者。

        始终监控您的工作

        【讨论】:

          猜你喜欢
          • 2020-07-15
          • 2021-03-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-05
          • 2019-09-09
          • 1970-01-01
          相关资源
          最近更新 更多