如何在 Yarn 2 中列出和使用包?

Posted

技术标签:

【中文标题】如何在 Yarn 2 中列出和使用包?【英文标题】:How to list and use packages in Yarn 2? 【发布时间】:2020-10-03 04:40:51 【问题描述】:

由于我是 Yarn 的初学者,因此我遵循了当前的 Yarn 教程,它描述了 Yarn 2。所以我安装了 Yarn 2。yarn --version 命令给出了2.0.0-rc.34

但 Yarn 2 似乎缺少显示本地安装的软件包列表的命令。我知道 Yarn 1 有 list 命令,但我在 Yarn 2 中找不到任何类似的命令。

我将 Yarn 2 用于一个新的空项目,我使用命令 yarn add -D webpack webpack-cli 添加了 webpack。 Yarn 2 似乎存储包的方式完全不同——它没有创建node_modules 目录,它似乎使用.yarn 目录来存储包。所以npm list 什么也没显示。

此外,当我尝试npx webpack --help 时,npm 找不到 webpack,并建议使用yarn add -D 安装它,尽管我已经这样做了。

那么如何查看所有已安装包的列表,以及如何使用 Yarn 2 让 npm 看到它们?

我的系统是 Linux Mint 19.3,Node.js 版本是 12.18.0,npm 版本是 6.14.4。 Node.js 是从 deb.nodesource.com/node_12.x 存储库安装的。

【问题讨论】:

重要的是要意识到npmyarn 都是节点包管理器。所以你安装的任何一个都不能被另一个看到。 @MwamiTovi,当我使用 Yarn 1 安装软件包时,它们会出现在 node_modules 中,所以 npm 完美地 可以看到它们。它们是可以互换的。但这不是 Yarn 2 的情况。这并不清楚问题,如何用 Yarn 2 本身做到这一点。 【参考方案1】:

不是及时响应,但它可能仍然有用。使用 Yarn 2.4.0,在你的 repo 的根目录中运行 yarn info --recursive --dependents 将列出它们。还有其他选择,查看yarn info

【讨论】:

【参考方案2】:

Yarn 2 确实还没有list 命令,但是有一个添加它的请求(https://github.com/yarnpkg/berry/issues/720)。

Yarn 2 确实以不同的方式存储包,与 Yarn 1 相比,它与 npm 不兼容。

要使用 Yarn 2 启动 webpack,可以使用 yarn run webpack 甚至 yarn webpack

【讨论】:

以上是关于如何在 Yarn 2 中列出和使用包?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用“yarn”或“npm”列出特定类型的依赖项

什么是yarn,如何使用yarn安装项目依赖

yarn添加包

如何在 Yarn 中从 github repo 安装包

如何使用 yarn 2 (berry) 设置工作区存储库

如何通过 Yarn 使用本地路径安装软件包?找不到包