【问题标题】:Run `yarn remove <dependency_name>` to remove dependency, but yarn.lock still shows the removed dependency运行 `yarn remove <dependency_name>` 来移除依赖,但是 yarn.lock 仍然显示移除的依赖
【发布时间】:2022-01-16 23:34:25
【问题描述】:

在我的 node.js 项目中,我使用 yarn 安装了依赖项@nestjs/jwt,现在我想卸载它,因为我没有使用它。

我运行yarn remove @nestjs/jwt。它是成功的。我检查了我的package.json,它已被删除。但是当我检查yarn.lock 文件时,它仍然在显示。这是为什么呢?

我的git add -p yarn.lock 显示给我:


-"@nestjs/jwt@8.0.0", "@nestjs/jwt@^8.0.0":
+"@nestjs/jwt@^8.0.0":
   version "8.0.0"
   resolved "https://registry.yarnpkg.com/@nestjs/jwt/-/jwt-8.0.0.tgz#6c811c17634252dd1qcd5dabf409db4692b812da"
   integrity sha512-fz2LQgYY2zmuD8S+8UE215anwKyXlnB/1FwJMLVR47clNfMeFMK8WCxmn6xd0hF5JKuV1crO6FVabb1qWzDxqQ==

【问题讨论】:

  • 您安装的另一个软件包可能需要它。 yarn why @nestjs/jwt -R 说什么?
  • Yarn 总是更新锁定文件,所以我在这里同意@lossleader。其他一些软件包可能正在使用它。
  • 您的 package.json 中可能有“@nestjs/jwt@8.0.0”,yarn 已删除(来自包文件和锁定文件)。您的其他一些依赖项(依赖项...)需要“@nestjs/jwt@^8.0.0”。所以它的分辨率仍然保存在 yarn.lock 中。

标签: node.js nestjs yarnpkg


【解决方案1】:

除了您明确安装的软件包之外,软件包还依赖于其他软件包。要查看您已安装的此软件包的任何依赖项的图表,请执行以下操作:

yarn why @nestjs/jwt -R

【讨论】:

    【解决方案2】:

    yarn.lock 是yarn 用来知道每个依赖项安装了哪些版本的工具,因此当您在新机器上运行yarn install 时,它可以再次获取这些确切的版本。尝试运行“纱线升级”。这应该会创建一个没有这些依赖项的新 yarn.lock 文件。

    【讨论】:

    • 另外:如果您不熟悉classic.yarnpkg.com/lang/en/docs/cli/upgrade,此链接可能会帮助您了解“纱线升级”的作用
    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    • 这个答案不正确。如果您查看文档,它会说:“注意:yarn remove 将始终更新您的 package.json 和 yarn.lock。这可以确保同一项目中的不同开发人员获得相同的依赖项集。无法禁用此行为。”
    猜你喜欢
    • 2018-08-29
    • 2019-11-13
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    相关资源
    最近更新 更多