Angularjs 为什么node_modules文件夹没有提交到Git?
当我创建一个AngularJS项目时Angularjs 为什么node_modules文件夹没有提交到Git?,angularjs,gruntjs,yeoman,Angularjs,Gruntjs,Yeoman,当我创建一个AngularJS项目时 yo angular 它创建一个节点\模块/目录,但将该目录放在.gitignore中。当我在别处克隆项目并运行 grunt server 我明白了 致命错误:找不到本地grunt 如果您看到此消息,可能是找不到GrunFile,或者 grunt尚未在本地安装到您的项目中。更多 有关安装和配置grunt的信息,请参阅 入门指南: 但是,《入门指南》没有说明如何处理丢失的节点\模块/目录 节点\ u modules/目录故意丢失,因为yeoman将其放在
yo angular
它创建一个节点\模块/目录,但将该目录放在.gitignore中。当我在别处克隆项目并运行
grunt server
我明白了
致命错误:找不到本地grunt
如果您看到此消息,可能是找不到GrunFile,或者
grunt尚未在本地安装到您的项目中。更多
有关安装和配置grunt的信息,请参阅
入门指南:
但是,《入门指南》没有说明如何处理丢失的节点\模块/目录
节点\ u modules/目录故意丢失,因为yeoman将其放在了.gitignore中
在这种情况下,使用Yeoman和Grunt的正确方法是什么?对于Yeoman和Grunt有更好的文档吗
谢谢。这是正确的行为。
node_模块的内容不应提交给源代码管理。其背后的思想是,它在一个名为的文件中跟踪所有必需的节点依赖关系。此文件应提交给源代码管理。然后在另一台机器上,您可以签出代码并运行
npm安装
这将查看package.json文件并从云中下载所有必需的文件,并将它们全部放入一个新的节点\u modules
目录。如果您对该主题进行了足够的搜索,您最终将遇到以下问题,即如果您正在构建应用程序,您应该签入您的依赖项。依赖package.json会导致模块作者发布更新时出现问题,更好的解决方案是使用
npm包覆面提取
这会创建一个文件,锁定依赖项和依赖项,但即使这样也可能很脆弱,因为模块作者可能会使用不同的代码重新发布同一版本
由于yo
正在创建应用程序,因此.gitignore中不应包含IMHO节点\u模块,然而,正如我刚刚粗暴地发现的那样,如果您在Windows上,由于路径长度的原因,您很有可能无法签入该文件夹中的模块……唉。除了节点模块之外,您的.gitignore文件中还列出了哪些内容?您的GrunFile.js是否因克隆操作而出现?这可能是继Marplesoft解决的问题之后的第二个问题。