首页 > 解决方案 > npm install 覆盖现有的 package-lock.json 并破坏 Modal

问题描述

我看到一个奇怪的行为package-lock.json。一旦我删除 node_modulespackage-lock.json然后构建它们,我的应用程序就会按预期工作。当我npm install再次使用刚刚构建package-lock.json的现有文件时,文件会完全改变,从树中删除大量包。当我现在运行服务器时,某些Modal(来自react-bootstrap)组件无法正常工作。我不明白为什么这个文件应该更改并最终安装不同版本的依赖项,这会破坏代码。我做错了什么package-lock.json吗?

每次我同时删除 node_modules 和这个文件并构建时,我都不会遇到任何问题。只有当这个文件已经存在并且我npm install遇到问题时。

标签: reactjsnpmnpm-install

解决方案


npm installpackage-lock.json每当你更新时创建一个新的,node_modules即当你安装一个新的模块/包时。因此,覆盖预先存在package-lock.json的行为是预期的行为。

至于Modal破解可能是因为版本冲突。如果您发布“中断”错误,我们可以更好地确定导致它的原因,但这通常发生在您的包需要某个版本的另一个依赖项时。

一个可能的解决方案是删除node_modules原始package-lock.json文件,然后运行安装。你也可以试试npm ci

编辑

此链接可能有助于您更深入地了解package-lock.json文件以及它们如何受npm install. 本质上,一旦生成了锁定文件,它就会避免更新到较新的版本 - 直到您编辑package.json以指定不同的版本或范围。无论您要安装什么,都应该从命令行进行。


推荐阅读