如何在 Mac 上的 Dropbox 中递归忽略 node_modules

How to ignore node_modules recursively in Dropbox on a Mac

我想将所有节点项目保存在 Dropbox 中,除了我想排除所有 node_modules 目录同步到 Dropbox。

我过去常常通过将这些目录符号链接在不同的位置来实现这一点,但最近版本的 npm 不允许 npm_modules 成为符号链接,从而破坏了这样做的能力。

以下命令将从 Dropbox 中查找并添加所有顶级 node_module 目录。也就是说,它会在另一个 node_modules 目录中添加 node_module 目录,但不会添加 node_module 目录(因为顶级目录已经被忽略了。

find ~/Dropbox  -type d | grep 'node_modules$' | grep -v '/node_modules/' | xargs -I {} -t -L 1 xattr -w com.dropbox.ignored 1 "{}"

命令分解:

  • 查找~/Dropbox
  • 中的所有目录
  • 使用 grep 过滤仅以 node_modules
  • 结尾的目录
  • 使用 grep 从这些目录中排除还包括 node_modules/ **
  • 使用 xargs 将此目录作为参数传递
  • xattr 命令告诉 dropbox 忽略它

** 如果目录以 node_modules 结尾但还包含 node_modules/ 那么该目录包含在更高级别的 node_modules 目录中,因此我们可以跳过它因为我们已经忽略了更高级别的目录。