如何使用纱线将全局安装的节点包链接到项目?

Posted

技术标签:

【中文标题】如何使用纱线将全局安装的节点包链接到项目?【英文标题】:How to link a globally installed node package to a project with yarn? 【发布时间】:2020-07-12 06:52:24 【问题描述】:

我刚刚开始使用 yarn,但不知道如何将全局安装的包链接到项目。使用 npm 我只会运行 npm link <package-name> 但它不适用于纱线。 当我运行 yarn link <package-name> 时,它给出了这个错误: 纱线链接 v1.22.4 错误找不到名为“express”的注册包。 info 访问 https://yarnpkg.com/en/docs/cli/link 以获取有关此命令的文档。

【问题讨论】:

【参考方案1】:

链接功能并不是真正用于将全局包链接到项目。它旨在将您正在处理的包链接到您正在处理的另一个项目。事实上,npm link 命令可用于将全局安装的包链接到当前项目只是 npm 的一个实现细节。来自yarn docs:

对于绝大多数包来说,拥有全局依赖项被认为是一种不好的做法,因为它们是隐式的。最好在本地添加所有依赖项,这样它们是显式的,并且使用您项目的其他任何人都可以获得相同的依赖项集。

所以你应该通过yarn add <package-name>添加依赖项。

【讨论】:

感谢您的快速响应。我知道这不是我经常做的事情,但有没有办法实现与 yarn 的“npm link”相同的功能。 你可以用yarn global add <package>全局安装包,然后在包的全局node_modules文件夹中运行yarn link(~/.config/yarn/global/node_modules/<package>)。这可能不是预期用途,可能适用于您的工作流程,也可能不适用于您的工作流程。另一种选择是将包的源代码克隆到某个目录,然后在该目录中运行yarn link

以上是关于如何使用纱线将全局安装的节点包链接到项目?的主要内容,如果未能解决你的问题,请参考以下文章

我如何确认我正确使用了纱线链接?

如何安装没有符号链接的纱线工作区包?

如何将引导程序 4 升级到引导程序 5? - 纱线

如何显示纱线全局安装的包?

如何使用`add`安装多个纱线包?

如何在 GitHub Actions 中缓存纱线包