【问题标题】:How does npm error affect old git commits?npm 错误如何影响旧的 git 提交?
【发布时间】:2020-01-04 14:56:11
【问题描述】:

在我的 create-react-app 项目中,我通过 npm 安装了许多节点包。每次,我都使用npm install --save 更新package.json 和package-lock.json,然后将更改提交到git。

最近,一些事情导致以前工作的 npm 模块失败。由于找不到原因,我尝试删除并重新安装所有依赖项,如下所示:

    rm -rf node_modules/
    npm install

但是,即使我切换回较旧的提交并重复上述命令,相同的模块仍然失败!

由于问题不可能出在提交的代码本身(它在另一台机器上运行良好),问题一定出在其他地方,例如create-react-app 开发服务器或/node_modules。

鉴于一切都在 git 中并且之前一直在工作,我如何才能将我的工作重置为工作状态?

更新:

我在下面的回答结果只是部分正确。 npm 确实安装了更新版本的软件包,但这毕竟不是问题。真正的解决方法是意识到我的数据(来自我的数据库)已损坏,因此在我修复数据之前返回到之前的“工作版本”没有任何区别!

【问题讨论】:

  • 请注意,您所做的 nothing 可以更改 any 现有的 Git 提交。但是 Git 提交是由哈希 ID 标识的,而不是由分支名称来标识的——您可以更改某个分支名称标识的哈希 ID。如您所见,问题与 Git 无关。
  • @torek 是的,旧提交中的代码不会改变,但是如果环境发生变化,该代码的行为可以改变。所以我的问题主要是关于 node 和 npm,但我写了关于 git 的上下文。

标签: npm node-modules create-react-app


【解决方案1】:

更新:正如更新的问题中提到的,这个答案毕竟并没有真正解决我的问题。乱用 npm 模块确实解决了一些问题,但它很快又开始失败,所以修复不完整。

UPDATE 2:我从数据库传递到模块的数据也有问题!该数据未存储在git 中,因此摆弄npm 模块和git 没有任何动力。


看来问题出在 npm 版本控制上!由于我的package.json 列出了somepackage@^6.0.0,运行npm install 获取了最新版本(有错误)。

因此,当我从头开始重新安装时,我引用 somepackage@^6.0.0 的旧工作提交实际上仍然安装了新的错误版本。

解决方案是编辑package.json并将somepackage@^6.0.0更改为somepackage@6.0.0(没有^的精确匹配)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 2011-06-27
    • 2020-06-28
    • 2018-10-18
    • 2012-02-08
    相关资源
    最近更新 更多