Node.js NPM包锁查询

Node.js NPM包锁查询,node.js,npm,Node.js,Npm,这是为了澄清npm在package.json和package-lock.json方面的行为 场景是这样的,my package.json具有如下依赖关系: “xxx包”:“^7.34.0” 当我在一台新机器上运行“npm install”(没有node_modules文件夹,也没有package lock.json)时,安装程序找到了一个更新版本的包“7.36.0”,并安装了它。这是正确的,因为我们在依赖项列表中有插入符号(^)符号 但令人困惑的是:npm随后使用新的更新版本创建了一个packa

这是为了澄清npm在package.json和package-lock.json方面的行为

场景是这样的,my package.json具有如下依赖关系: “xxx包”:“^7.34.0”

当我在一台新机器上运行“npm install”(没有node_modules文件夹,也没有package lock.json)时,安装程序找到了一个更新版本的包“7.36.0”,并安装了它。这是正确的,因为我们在依赖项列表中有插入符号(^)符号

但令人困惑的是:npm随后使用新的更新版本创建了一个package-lock.json,但从未更改package.json清单。因此,现在package-lock.json显示为“7.36.0”,但package.json仍然显示较低版本

此外,“npm过时”和“npm更新”将不起任何作用,因为包锁中的版本与最新版本匹配

我的应用程序在“7.34.0”上运行良好,但新安装的应用程序破坏了它,我花了很多时间试图修复应用程序中可能存在的错误。只有当我检查包锁时,我才意识到这是由于更新的版本,而不是我的代码

有没有办法确保在使用“npm安装”安装新版本时更新package.json? 还是我们做错了什么

npm版本是7.9.0
节点版本是15.3.0

我想,它只会在安装特定包时更新package.json。因此,当
npm install
后面有一个包名时。我想知道,如果您尝试
npm安装--save
,会发生什么情况。尝试了同样的行为。版本上仍然存在差异。只是为了确保,因为您在问题中添加了一些内容。7.36.0版本破坏了你的应用程序?或者package.json和package-lock.json中的版本不同这一事实是否破坏了你的应用程序?版本更新破坏了它。使用命令“npm install xxx”-package@7.34.0“解决了这个问题。目前,删除插入符号对我们来说很有效,因为它会导致版本被强制执行。然后,您不希望有更新package.json的方法,因为这只会再次导致相同的问题。看来最好的办法就是现在就坚持执行这个版本。