出现依赖错误时恢复到以前版本的 Package.json

Posted

技术标签:

【中文标题】出现依赖错误时恢复到以前版本的 Package.json【英文标题】:Reverting to Previous Version of Package.json When a Dependency Bug Arises 【发布时间】:2017-09-30 06:00:39 【问题描述】:

在更新我和同事正在开发的 Angular 应用程序的过程中,当我打算运行“npm install”时,我最终运行了“npm update”。这样做让我有点不知所措,因为当然现在我所有的依赖项 - 并且他们的依赖项在这个过程中得到了更新。从那里我必须解决某些冲突才能使新版本正常工作。但是,这也导致我发现其中一个依赖项中的错误阻止了我的应用程序启动。根据 Angular github repo,这个问题正在处理中。

我的问题是,我如何才能在此期间恢复到以前的设置?我尝试复制并粘贴 package.json 文件,因为它在我的“npm update”之前最初存在,删除我的“node modules”文件夹,然后再次运行“npm install”。但这并不能解决问题。有什么方法可以确保我恢复到以前的工作设置?

【问题讨论】:

【参考方案1】:

您描述的过程应该有效:

从您的存储库中获取您知道其有效状态的 package.json 的旧副本 运行rm -rf node_modules 删除node_modules 文件夹 运行npm install再次安装

如果这不起作用,请确认您:

位于正确的目录中(应包含package.jsonnode_modules) 有权清理node_modules 文件夹 (chmod 777 node_modules) 写入文件系统的package.json 实际上是恢复的(有时IDE 或Git 可以创建一个奇怪的卷影副本,您认为这是一种方式,但实际上是另一种方式)。您可以通过使用 cat package.json 并检查输出来判断这一点

【讨论】:

当我尝试这个时,我最终遇到了多个编译错误,这些错误在我上次提交工作版本的 repo 时不存在。我也刚刚尝试从我们的服务器下载整个 repo 并再次运行“npm install”。仍然出现错误,例如“在环境上下文中不允许使用初始化程序”。这些错误以前不存在。我想知道这是否是因为所谓的小更新(应该是非破坏性的)实际上最终是这样 - 所以我昨天运行的“npm update”仍然是我现在看到的错误的原因。有没有万无一失的方法来做到这一点? 没有。如果您擦除您的node_modules,然后擦除npm install,它会将其重置为您的package.json 所拥有的。如果您仍然遇到错误,很可能是您的package.json 丢失(或添加了一些内容),而您还没有运行npm install。如果添加了一些东西而没有记得添加 --save--save-dev,有时会发生这种情况。 所以你的意思是错误之前就已经存在,只是最近没有运行“npm install”——如果同时添加了一些东西——这些错误从未出现过。正确的?所以,我现在的前进方向是处理导致错误的冲突,是吗?

以上是关于出现依赖错误时恢复到以前版本的 Package.json的主要内容,如果未能解决你的问题,请参考以下文章

恢复到以前版本的 wix 安装程序

svn怎么版本还原?

恢复到以前版本的 Firebase

出现错误:将备份恢复到 5.x Greenplum DB 时无法识别配置参数“gp_strict_xml_parse”

如何安装 NPM 拒绝安装的依赖项?

将 svn update 恢复到以前的 BASE 版本