繁体   English   中英

为什么node_modules文件夹没有提交给Git?

[英]Why is the node_modules folder not committed to Git?

当我用。创建一个AngularJS项目时

yo angular 

它创建一个node_modules /目录,但将该目录放在.gitignore中。 当我在别处克隆项目并运行时

grunt server

我明白了

致命错误:无法找到当地的咕噜声。

如果您看到此消息,则表示未找到Gruntfile或者您的项目未在本地安装grunt。 有关安装和配置grunt的更多信息,请参阅“入门指南”:

入门指南没有说明如何处理丢失的node_modules /目录。

node_modules /目录故意丢失,因为yeoman把它放在.gitignore中。

在这种情况下,使用Yeoman和Grunt的正确方法是什么?
Yeoman和Grunt有更好的文档吗?

谢谢。

这是正确的行为。 node_modules的内容并不意味着提交给源代码控制。 npm背后的想法是它跟踪一个名为package.json的文件中所有必需的节点依赖项。 此文件应提交给源代码管理。 然后在另一台机器上,您可以查看代码并运行

npm install

这将查看package.json文件并从云中下载所有必需的文件,并将它们全部放入新的node_modules目录中。

如果你对这个主题进行了足够的搜索,你最终将会遇到以下文章 ,该文章指出,如果你正在构建一个应该签入依赖项的应用程序。 依赖于package.json会导致模块作者发布更新时出现问题,使用更好的解决方案

npm shrinkwrap

这会创建一个锁定依赖项和依赖项依赖项的文件,但即使这样也很脆弱,因为模块作者可以使用不同的代码重新发布相同的版本。

由于yo angular正在创建一个应用程序IMHO node_modules不应该包含在.gitignore中,但是我只是粗暴地发现,如果你在Windows上,由于路径长度,你很有可能无法签入该文件夹中的模块...叹。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM