如何强制 Yarn 重新安装软件包?

新手上路,请多包涵

我的项目有一个依赖项,我有时从包服务器获取,有时从我机器上的本地副本获取。因此,我经常需要在查找依赖项的地方使用 Yarn 开关。此外,我经常更改依赖项的本地副本,并且需要看到该更改反映在我的主项目中。因此,我需要一种方法来告诉 Yarn 继续查看依赖项的相同位置,但要重新安装依赖项,跳过缓存并直接从其当前源中获取它,即使版本号没有更改。 (有时我想尝试对依赖项进行小的更改,并且每次更新版本号很快就会变得烦人。)

我该怎么做?

我尝试了以下方法,但它们都不起作用:

 yarn remove dependency
yarn add file:/dependency

继续使用之前版本的依赖。

 yarn remove dependency
yarn cache clear
yarn add file:/dependency
yarn install --force

也继续使用之前版本的依赖。

 yarn remove dependency
rm -rf node_modules/
yarn cache clear
yarn add file:/dependency
yarn install --force

仍然继续使用之前版本的依赖。

如何确保 Yarn 使用我的依赖项的最新版本?

原文由 Kevin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3k
2 个回答

您可以使用 yarn link 命令。这将设置您的本地依赖项,以便每当您对依赖项进行更改时,它会立即显示在您的主项目中,而您无需执行任何其他操作来更新它。

如果您的主要项目位于 ~/programming/main 并且您的依赖项位于 ~/programming/dependency 并命名为 MyLocalDependency ,您将需要:

1)从您的依赖项中运行 yarn link (没有其他标志):

 cd ~/programming/dependency
yarn link

  1. 在主项目中运行 yarn link <name of dependency package>
 cd ~/programming/main
yarn link MyLocalDependency

你完成了!

如果您想从依赖项的本地副本切换到托管在其他地方的副本,您可以使用 yarn unlink

 cd ~/programming/main
yarn unlink MyLocalDependency
cd ~/programming/dependency
yarn unlink


如果您使用 NPM 而不是 Yarn, npm linknpm link <dependency> 以相同的方式有效地工作。要取消链接依赖项,请运行 npm rm --global <dependency> 。 (这是因为 npm link 通过在全局 NPM 包中创建一个 simlink 来工作,因此从全局包中卸载链接的依赖项也会破坏链接。)

请参阅 npm link 文档如何卸载使用 npm 链接安装的软件包?

原文由 Kevin 发布,翻译遵循 CC BY-SA 4.0 许可协议

在删除节点模块后重新安装包适用于:

yarn install --check-files

原文由 Karl Adler 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题