如何撤消npm update?

aug*_*aug 14 node.js npm

有没有办法撤消命令npm update?我运行命令,现在我有一堆未满足的依赖项和一些错误.

我正在尝试手动重新安装并修复所有错误但是有谁知道如何基本上恢复npm update

cyb*_*sam 10

您可以将package.json文件恢复到以前的状态(希望您仍然具有该状态,或者至少记住您已更改的内容),然后再执行另一个状态npm update.

[UPDATE]

但是,通常,此技术不能保证整个依赖关系树将恢复到其先前的状态(因为package.json依赖关系树中的文件通常会松散地指定依赖关系版本).

如果您需要确保可以精确地恢复包的依赖关系树,则必须使用类似npm shrinkwrap的东西来"锁定"依赖关系版本(发布包之前).

  • 难道这不是简单地重做我第一次做的`npm update`吗?我想恢复原来的状态,而不是'npm update`. (2认同)
  • `npm update` 强制执行您的节点包的依赖项,与您的 `package.json` 中指定的完全相同(包括依赖项的版本)。它不是简单地将所有内容更新到最新版本。 (2认同)
  • 如果你的 `package.json` 有波浪号或插入符号版本并且依赖更新(非主要)破坏了你的构建,你会怎么做?如何恢复到更新前安装的确切版本? (2认同)

小智 5

做这个:

git log
Run Code Online (Sandbox Code Playgroud)

然后复制最新的最新密钥。这将使您签出最新提交。

git checkout "your-key" package.json
git checkout "your-key" package-lock.json 
Run Code Online (Sandbox Code Playgroud)

没有"引号

(package-lock.json确实是必需的,但无论如何我还是喜欢这样做-“只要确保...”)

你可以做一个

git status
Run Code Online (Sandbox Code Playgroud)

确保您package.jsonpackage.lock

您也可以

rm -rf node_modules/ 
Run Code Online (Sandbox Code Playgroud)

这将删除node_modules文件夹

npm install
Run Code Online (Sandbox Code Playgroud)