Javascript npm安装更改了my-package-lock.json,这会干扰远程代码吗?

Javascript npm安装更改了my-package-lock.json,这会干扰远程代码吗?,javascript,npm,Javascript,Npm,我知道这方面有很多问题,我发现命令npm ci应该不会更改package-lock.json,但当我运行npm ci时失败: ERR! cipm can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing. 还尝

我知道这方面有很多问题,我发现命令
npm ci
应该不会更改package-lock.json,但当我运行
npm ci
时失败:

ERR! cipm can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing.
还尝试了另一种解决方案,包括删除我的node_modules目录并再次运行
npmi
,但这不会改变结果

我是一名初级开发人员,与一个团队远程合作。。我被分配了一个任务,所以我在Gitlab上创建了一个新分支,把它拉到我的本地机器上,然后运行
npmi
以跟上速度

但它一直在戏剧性地改变我的package-lock.json(它添加了大约20000行代码)


在我看来,把它投入到团队的项目中似乎是疯狂的。有人有什么建议吗?

更新:OP最终需要利用他们的团队和项目所利用的
纱线。如果任何人在他们的项目根目录中发现
warn.lock
,这表明涉及
warn
,并且任何
包锁.json
(如果有)都很可能已经过时


TL;DR:听起来像是
包锁。json
需要一些更新和解析,这主要是通过
npm安装完成的

听起来像是
package lock.json
不再“同意”您的
package.json
。听起来您团队中的其他人也在避免将更改提交到您的
包锁.json
;以我的经验来看,这是一种不好的做法,因为它只会加深他们在内容上的分歧。随着时间的推移,当依赖项的依赖项可能发布错误修复版本并可能取消发布以前的版本时,它们可能会不同步

作为该团队的初级开发人员,我会将此问题告知您的开发/团队领导,并询问他们的首选方法。如果故意删除了一个主要的依赖项,并且该依赖项有很多自己的依赖项,那么它可能会导致从
package lock.json
中大量删除行,对不太习惯它的人来说,这看起来很严重

额外上下文:

在安装过程中,npm将安装
包.json
中列出的依赖项和开发依赖项。在这个过程中,随着时间的推移,这些依赖项的某些依赖项(需要执行)可能会重叠,并且经常与冲突的版本发生冲突。执行
npmi(nstall)
将尝试为您协调子依赖项的所有这些竞争版本


在连续集成环境中,最好使用备用命令
npm ci
,该命令只显式安装已从
package lock.json
(以前称为“shrinkwrap”)解析的内容。这是为了减少“但它在我的机器上工作!”的时刻作为一名开发人员,我发现最好使用
npm安装
,因为这可以更快地提醒开发人员任何依赖项解决问题,并使
包锁定.json
保持最新。

因为这篇文章有很多视图,我想我会回来发布我发现的内容

Thread和NPM都会更新和安装软件包和依赖项,但区别在于:

warn
创建名为
warn.lock的文件

npm install
创建一个名为
package lock.json的文件

当时我不知道这一点,所以当我将项目repo克隆到本地机器时,我运行了
npmi
,创建了
package lock.json
。然而,我的队友已经在使用
纱线了


因此,请确保您使用的是已经使用过的版本。

这意味着他们不同意。我会与您的团队进行沟通,以了解到底发生了什么以及他们的流程。这花了我一分钟的时间,但感谢您的建议。我和我的技术主管解决了这个问题。谢谢你的深思熟虑和描述性的回答!干杯@Cin88。这当然是一个奇怪的开始,但我很高兴听到你已经把事情解决了。