【问题标题】:git new branch without npm update Angular 10没有npm更新Angular 10的git新分支
【发布时间】:2021-02-03 12:05:25
【问题描述】:

我在 git 功能分支上创建了一个新的 Angular 10 应用程序。我为它设置了基本框架,然后将该功能分支合并到发布中。我从发布创建了一个新功能分支以开始进行增强,当我尝试运行 ng serve 时,出现此错误:

An unhandled exception occurred: Cannot find module '@angular-devkit/build-angular/package.json'

查看这个 SO 答案 (https://stackoverflow.com/a/51581991/787958),解决方案是运行 npm update。这对我有用,但是在每个新的 git 分支上都需要这样做似乎是一个很大的痛苦。我可以在 gitignore 文件中更改什么内容,这样就没有必要了,或者这只是每个人都必须处理的标准问题?

【问题讨论】:

  • 您是否不小心删除了 node_modules 目录?? xD
  • 不,但既然你这么说,我查看了 VS Code 中的 node_modules 文件夹,它有灰色文本,而所有其他文件夹和文件都是白色文本。我想知道这是否意味着它没有被 git 拾取以进行签入。
  • 如果您的功能分支具有不同版本的 angular 并且 git 没有跟踪 node_modules(它可能不应该),那么您需要通过执行 @987654326 来更新包@。我通常只是删除 node_modules 文件夹并进行全新安装,只是为了保存。
  • 澄清一下,在将功能分支 A 合并到其中之前,发布分支中没有任何内容。合并后,功能分支 B 是从发布创建的,并且与功能分支 A 的 Angular 版本相同。(因为它基本上是功能分支 A。)如何解决问题不是问题。正如我所说,npm update 解决了这个问题。问题是,有没有办法解决这个问题,这样我每次从发布创建新功能分支时都不需要运行npm update?
  • 它应该被明确提交,因此它被 git 忽略了,这可能就是为什么 vcs 代码将它显示为灰色(我使用 intellij)

标签: angular git angular10 npm-update


【解决方案1】:

至于为什么你的 node_modules 是灰色的(我看到你的评论),这是因为它没有被 git 跟踪,这是一件好事,因为你不想将所有依赖项保存到你的存储库中(那里有 50K 文件)。这意味着,如果您曾经克隆项目,则必须使用 npm install。

我相信这可以解释您的问题。您可能已经克隆了项目,因此您必须使用 npm install 来安装依赖项。 npm update 之所以起作用,是因为它会比较 package.json 中所有依赖项的稳定版本并升级到该稳定版本,然后安装所有依赖项。

希望这能帮助你更好地理解。

【讨论】:

  • 好的,所以我不会跟踪 node_modules,很高兴知道。但是,您是说每个新功能分支都需要运行npm install 是正常的吗?
  • 不,我不这么认为。我只是认为您一开始就没有 node_modules 。克隆存储库时使用npm install 是正常的。尝试创建一个新分支并告诉我您是否仍有问题必须使用npm install。
  • 回购完全是空的。我从发布创建了我的第一个分支(也就是什么都没有),然后创建了应用程序。我在第一个分支上运行了 ng serve 很多次,没有问题。我提交了所有内容,然后将功能分支合并到发布中。然后我从发布中创建了第二个功能分支。这是我运行 npm update 来修复它的时候。我确实测试了从发布创建第三个分支,并且 ng serve 运行没有问题。
  • 感谢您解释不跟踪 node_modules 以及为什么我应该使用 npm install 而不是 npm update。只是不知道为什么我需要在第二个功能分支上这样做。
  • 是的,所以安装过程中可能出现问题,并且某些依赖项没有安装。很酷,它现在按预期工作。我认为您也可以将其标记为官方答案。
猜你喜欢
  • 2021-04-29
  • 2015-04-24
  • 2014-06-10
  • 2012-07-03
  • 2011-04-22
  • 2018-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多