将 package-lock.json 包改回原始 repo 版本

bow*_*ice 3 git npm

我正在处理 Mocha 的 git pull 请求。

我遇到了一个与我的 package-lock.json 文件相关的错误,我不小心将 ansi-regex 包从 2.1.1 更新到了 3.0.0

我现在在将此版本恢复为原始版本时遇到问题,这是回购所有者要求的。

我遇到的主要问题是这个 npm 包只存在于 package-lock 中

 "ansi-regex": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
      "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
    },
Run Code Online (Sandbox Code Playgroud)

它不存在于主 package.json 文件中。

通过研究,我发现不建议删除 package-lock 文件并使用 npm i 重新生成它,因为这可能会引入更多更改。

我也试过命令:

git checkout --theirs package-lock.json
git add package-lock.json 
Run Code Online (Sandbox Code Playgroud)

但是版本还是3.0.0

我也试过运行

npm uninstall --save ansi-regex@3.0.0 -package-lock.json
Run Code Online (Sandbox Code Playgroud)

手动删除文件,但命令完成时不删除任​​何包。

我不确定如何将这个版本恢复到 repo 所有者的一个设置,并且真的可以使用一些帮助来确定下一步。

谢谢

LeG*_*GEC 8

您需要在修改之前找到提交的 ID package-lock.json,并package-lock.json从该提交中恢复其内容。


使用命令行(git-bash例如打开):

您可以从图形客户端执行相同的操作,只需确保从过去的提交中选择文件并仅检出该文件,而不是检出整个提交。