Node.js模块推送到GitHub

8

我正在尝试将我的项目推送到GitHub和Heroku。由于我的应用程序中使用了Node.js,所以我有一个名为node_modules的文件夹。在提交之前,我创建了一个名为.gitignore的文件来忽略Node.js模块。

在这个文件中,我添加了node_modules文件夹,并试图从命令行/Terminal推送到GitHub存储库。我没有预期Node.js模块会被推送,但它们最终出现在存储库中。是否有一些我需要遵循的方法?

以下是我解决问题的方法

 - $ git rm -r --cached node_modules

请将文件夹node_modules/添加到您的.gitignore文件中:
 - $ git commit -m "remove the ignored directory node_modules"

然后

 - $ git push origin master

完成以上步骤后,如果您刷新 GitHub 页面,您会发现node_modules文件夹已经消失。


1
请提供您的 .gitignore 文件。 - Julien Ambos
2
.gitignore文件中列出的已经被Git跟踪的文件不会被忽略,该文件仅提供给git add命令使用规则。如果你已经将这些文件添加到了版本控制中,你需要使用其他工具来移除它们。 - Lasse V. Karlsen
“.gitignore” 已经忽略了 “node_modules”,但出于某种原因,当我推送代码时,“node_modules” 与其他代码一起被推送。 - Moh K
5个回答

25

应将node_modules文件夹添加到.gitignore文件中。

首先,删除您的node_modules

$ git rm -r --cached node_modules  
$ git commit -m "remove node_modules"

然后,推送您的更改

$ git push origin master

刷新页面以查看所需效果。


4

首先,您需要将node_modules添加到您的.gitignore文件中。

然后,

$ git rm -r -chached node_modules
$ git commit -m "remove node_modules"

然后:

$ git push origin master

关于 *"将 node_modules 添加到您的 .gitignore 文件中。"*:具体怎么做?或许其他人也可以提供意见。 - Peter Mortensen
在你的 .gitignore 文件中添加一行 "node_modules" (不包括引号)。 - Gajraj Singh Chouhan

2

您需要告诉Git取消跟踪已经添加到Git的文件(在忽略它们之前):

git rm --cached FILE

该文件不会从您的文件系统中删除。Git将取消跟踪此文件,并且由于它被忽略,它将不再被跟踪。

然后,您需要提交和推送此更改。


1

以防万一,.gitignore文件是在node_modules中还是在项目的根目录中?

如果是这样,我建议将它放在(至少)父文件夹中,或者理想情况下放在项目的根目录中,并在其中调用node_modules作为相对于文件位置的路径。即:some-path/node_modules

此外,一旦文件夹被提交和推送,您应该忽略.gitignore文件(通过暂时删除它或删除node_modules行),这样Git可以跟踪文件,删除文件夹,提交,推送并恢复.gitignore文件。


1
“如果是这样”的意思是指前者还是后者?您能否让它更清楚一点?请通过[编辑您的问题](https://stackoverflow.com/posts/44169878/edit)来回答,而不是在评论中回答(***不要***包括“编辑:”,“更新:”或类似内容)。 - Peter Mortensen

-1
在您的目录中创建一个 .gitignore 文件并插入以下内容:
.gitignore
node_modules

它对我来说完美地运作了。这也是新手程序员摆脱Node.js模块的更简单方法。


2
OP已经将node_modules添加到他们的.gitignore文件中了 - 这就是问题的关键所在。 - snakecharmerb
1
也许OP打错了字,所以如果他再次检查,就没问题了。我现在也遇到了同样的问题,但是它完美地为我工作了。这就是为什么我想分享我的经验。那个snakecharmerb出了什么问题?(OP 3年前的帖子) - Shajid Shafee
分享你的经验没有错 :-) 这就是我们最终要做的。但在 SO 上,分享应该集中于回答所提出的问题,并且特别是在回答已有答案的旧问题时,应该为问答带来新的东西。祝你未来的回答好运 :-) - snakecharmerb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接