Git - 忽略node_modules文件夹无处不在

Meh*_*way 309 git node-modules

我有一个包含多个其他项目的项目:

  • 主要项目
    • 迷你项目1
    • 迷你项目2

全部包含node_modules文件夹.我希望git忽略该文件夹,无论它从根文件夹开始.像这样添加.gitignore:

*node_modules/*
Run Code Online (Sandbox Code Playgroud)

Ali*_*lik 633

加上这个

node_modules/
Run Code Online (Sandbox Code Playgroud)

.gitignore文件忽略所谓的所有目录node_modules当前文件夹和子文件夹中

  • 有关gitignore模式格式的更多信息:http://git-scm.com/docs/gitignore (9认同)
  • 对于nodejs的gitignore模板:https://github.com/github/gitignore/blob/master/Node.gitignore (4认同)
  • 如果您之前已将node_modules文件夹添加到git,请参见@AndrewSchreiber的答案。您需要使用“ git rm -r --cached node_modules”将其从缓存中删除。 (2认同)

And*_*ber 143

我进入这种情况几次,所以我做了一个单行程,我可以粘贴到我的项目目录中的终端:

__PRE__

或者,当我已经将.gitignore文件夹添加到git时:

__PRE__

然后,验证它是否有效:

__PRE__

说明

node_modules.gitignore如果文件尚不存在,将生成该文件.

touch并且.gitignore将追加echo在结尾>>,造成node_modules/文件夹和子文件夹都将被忽略.

.gitignorenode_modules从git控件中删除路径.标志导致删除是递归的并包括缓存.

  • 这里不需要`touch`:如果文件不存在,`>>将创建文件. (5认同)
  • `echo "node_modules/" > .gitignore` 应该创建一个包含原始内容的 _new_ 文件,使用 `>>` 将_文本追加到现有指定文件的末尾 (2认同)

Amj*_*d K 18

首先,最重要的是.gitignore在我的应用程序中添加文件.如下图所示.

将.gitignore放在node_modules的父文件夹/目录中.

然后将其添加到您的.gitignore文件中

/node_modules
Run Code Online (Sandbox Code Playgroud)

注意

您也可以添加其他文件以忽略它们在github上推送.以下是.gitignore中保存的更多文件.您可以根据自己的要求添加它们.#只是一种在.gitignore文件中发表评论的方式.

# See https://help.github.com/ignore-files/ for more about ignoring files.

# dependencies
/node_modules

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
Run Code Online (Sandbox Code Playgroud)

  • @SebastianNielsen我们不跟踪node_modules的原因相同。您可以通过编译来构建/。 (5认同)
  • 为什么要将构建添加到 .gitignore 中? (2认同)

Raj*_*dar 12

尝试做这样的事情

**/node_modules
Run Code Online (Sandbox Code Playgroud)

** 用于整个项目中的递归调用

与完整路径名匹配的模式中的两个连续星号(“ **”)可能具有特殊含义:

前导“ ”后跟斜杠表示在所有目录中均匹配。例如,“ / foo”在任何位置都与文件或目录“ foo”匹配,与模式“ foo”相同。“ ** / foo / bar”与文件或目录“ bar”匹配,直接位于目录“ foo”下。

尾部的“ / ”匹配内部的所有内容。例如,相对于.gitignore文件的位置,“ abc / ”匹配目录“ abc”内的所有文件的深度是无限的。

斜杠后跟两个连续的星号,然后斜杠匹配零个或多个目录。例如,“ a / ** / b”匹配“ a / b”,“ a / x / b”,“ a / x / y / b”等。

其他连续的星号被视为无效。

参考

  • 请解释一下为什么这种方法比简单的“node_modules/”更好? (3认同)
  • 如果是单一存储库,您可能需要处理多个前端。这种方法将递归地忽略所有“node_modules”文件夹,无论它们位于何处(例如“/BackOffice/frontend/node_modules”) (3认同)
  • 你不需要`**`,没有它它的工作原理是一样的 (2认同)

Ume*_*ana 10

在 .gitignore 中添加以下行将忽略整个存储库中的节点模块。

node_modules
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • 如何?它只会忽略 .gitignore 文件所在的同一文件夹中的 node_modules 文件夹 (3认同)
  • 这是递归的 (2认同)

小智 7

通过代码编辑器或命令直接在根文件夹中创建.gitignore文件

对于Mac和Linux

 触摸.gitignore 

对于Windows

 回声.gitignore 

打开.gitignore声明这样的文件夹或文件名/ foldername


Han*_*bib 6

**node_modules
Run Code Online (Sandbox Code Playgroud)

这对我有用

递归方法忽略子文件夹中存在的所有node_modules