npm i --package-lock-only
到底是做什么的?该文档对示例有些害羞。 https://docs.npmjs.com/files/package-locks.html
我很想知道我的本地node_modules文件夹中是否有较旧的软件包,并且没有pack-lock.json文件,npm i --package-lock-only
会根据我的本地node_modules文件夹中的版本生成一个package-lock.json还是会生成具有较新软件包版本的package-lock.json,该软件包版本与npm注册表中发布的package.json中的semver范围一致。
答案 0 :(得分:4)
好吧,@Ben Wheeler 是准确的,但有一个地方可以提供有关此过程的一些背景知识。在常规情况下,包锁旨在为每个包及其应用程序中的依赖项设置完整的依赖树,因此不同机器上的每个开发人员都将拥有完全相同的树。这很重要,因为依赖包可能会随着时间更新,如果每个开发人员都使用不同的版本,它可能会破坏您的应用程序。因此,每次执行“npm i”时,如果您确实有 package.lock.json,它都会从那里安装软件包,而不是从 package.json 安装。
有时,当开发人员遇到依赖项错误时,他们倾向于删除锁定文件和 node_modules。这并不总是最好的选择。大多数情况下,只需更新锁定文件以反映带有 --package-lock-only
标志的 package.json,然后您可以再次执行“npm i”来安装您的软件包。锁定文件应提交到您的项目存储库,以便每个人都可以使用它来拥有相同的包版本。
答案 1 :(得分:0)
它将使用package.json
确定要安装的软件包的版本,然后使用已解析版本创建package-lock.json
文件(如果不存在),或覆盖现有文件。
重要的是,它实际上并没有安装任何东西,这与常规npm install
(或别名npm i
)不同。