【问题标题】:Angular - Wrong package versions?Angular - 错误的包版本?
【发布时间】:2021-12-21 01:57:22
【问题描述】:

我有一个 Angular 应用程序。 在 package.json 中,我为所有 Angular 包定义了 12.2.9 版本,例如:

"@angular/animations": "^12.2.9",
"@angular/cdk": "^12.2.9",
"@angular/common": "^12.2.9",
"@angular/compiler": "^12.2.9",
"@angular/core": "^12.2.9",
...

我删除了node_modules 文件夹和“package-lock.json”

我用npm install安装了所有的包

之后,调用npm outdated,我所有 Angular 包的当前版本是 12.2.13 而不是 12.2.9

在哪里定义,安装的是 12.2.13 版本,而不是来自 package.json 的版本?

【问题讨论】:

标签: angular npm npm-install


【解决方案1】:

package-lock.json 中,node_modules 中包含有关您已安装软件包的所有信息。例如,如果你去那里搜索@angular/animations 的文件,你会看到你的版本。

解决方法是删除node_modulespackage-lock.json并通过运行npm cache clean --force清除缓存。

更新:


正如 cmets 中提到的Harun Yilmaz

版本中有插入符号 (^)。所以,删除 package-lock.json 和 node_modules 并运行 npm install 仍然会安装最新的兼容版本。

您可以通过jgillich 了解this answer 中的npm 包管理中的^~ 究竟做了什么。

【讨论】:

  • 请注意,版本中有插入符号 (^)。因此,删除package-lock.jsonnode_modules 并运行npm install 仍将安装最新的兼容版本。
  • 是的,你是对的,我忘了提到这一点。我会更新的。
  • 啊,好吧 - 我以为 (^) 仅用于 npm 更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-16
  • 2018-09-27
  • 2017-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多