问题标签 [yarnpkg-v2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1422 浏览

reactjs - 纱线版本 2 的 Storybook 5.3 问题

对于项目需求,我正在为 react 组件开发配置 storybook 5.3。我使用 Yarn 版本 2 作为包管理器。我已经完成了故事书教程中提到的所有步骤。但是当使用 启动故事书时'yarn storybook',它显示以下错误。如果我切换到 npm,同样的事情也可以正常工作。在阅读了一些关于“纱线”的文档后,我假设(可能是错误的)这是因为纱线的“即插即用”功能而发生的。那么关于如何解决这个问题的任何想法?

package.json 如下所示

0 投票
1 回答
16726 浏览

git - 纱线 v2 gitignore

我将 yarn 从 v1.22.0 升级到 v2.0.0-rc.29。它生成了 .yarn文件夹,其中包含:

  • 文件夹:缓存发布拔出
  • 文件:build-state.yml

我应该将整个 .yarn 文件夹添加到.gitignore吗?或者可能有一些嵌套文件夹,比如.yarn/cache

另外,如何处理.pnp.js。我是提交它,还是添加到.gitignore

0 投票
2 回答
1790 浏览

jestjs - 使用 Yarn 2 / Yarn PnP 时如何调试 Jest 测试

我想使用上一个答案jest 文档node --debug-brk中描述的功能在基于 npm/yarn 1 的项目中进行调试,但在基于 Yarn 2/PnP(即插即用)的项目中不存在,因此这些说明不会为我工作。node_modules/

在 yarn 2 of中访问二进制文件的常用方法是yarn run --inspect-brk jest --runInBand从终端启动调试会话,但是当通过 连接到 Chrome 的远程目标检查器时chrome://inspect,我们会收到一条错误消息,提示无法连接到 jest.js 二进制文件,因为它是一条路径到一个.zip文件。

在不降级到 Yarn 1 的情况下有哪些解决方法?

0 投票
1 回答
551 浏览

node.js - 纱线无法添加包(工作区内外)

纱线无法添加包(工作区内外)

您好,我使用的是 Yarn 2,我似乎无法安装任何软件包。我总是收到以下格式错误:

我在使用纱线工作区的项目内部和另一个测试项目外部都进行了尝试。

这发生在我尝试的任何包和谷歌搜索我似乎无法在此处找到此错误消息的任何相关命中。

您认为问题可能是什么?

最好的,马特

0 投票
1 回答
6483 浏览

reactjs - 使用 Yarn 2 链接 React 组件时未找到模块错误

我创建了一个存储库,其中包含一个 React 应用程序(使用 创建create-react-app)和一个包含简单 Material UI 按钮的组件目录。文件夹结构为:

两个目录都设置为使用Yarn 2,并且不在工作区中(因为我试图在单独的目录中模​​拟项目并简化我的真实世界场景)。

我构建组件:

然后我将Yarn组件链接到 React 应用程序:

这导致修改目录package.json中的react-app文件:

我的App.tsx文件如下所示:

但是,当我使用运行 React 应用程序时,yarn start出现以下错误:

我不确定我做错了什么。如果我在其中添加对 components 目录的显式引用dependencies(我不认为我应该这样做,因为我已经链接了它),例如:

然后我得到错误:

当然,我不必弹出应用程序并找到绕过此错误的方法吗?

编辑:根据Yarn 文档“Webpack 5 将原生支持 PnP,但如果您使用 Webpack 4,则需要自己添加 pnp-webpack-plugin 插件”。在撰写本文时,最新版本create-react-app依赖于 v3.4.1,react-scripts而 v3.4.1 又依赖于 Webpack 4。因此我弹出了我的应用程序以检查 Webpack 配置,并且似乎已经安装了该插件。因此,这不是 CRA/Webpack 问题。我还将我的 Node 版本从 v10.16.0 升级到 v12.16.3,但无济于事。

0 投票
1 回答
360 浏览

yarnpkg - yarn v2“松散”模式下的后备池

来自有关 yarn v2 松散模式的文档:

Yarn 带有“松散”模式,这将导致 PnP 链接器与 node-modules 提升器协同工作 - 我们将首先生成在典型 node_modules 安装中将被提升到顶层的包列表,然后记住这个列表,我们称之为“后备池”。

在运行时,如果依赖项的任何版本最终在回退池中,仍然允许需要未列出的依赖项的包访问它们(可以使用 pnpFallbackMode 调整哪些包完全被允许依赖回退池)。

那么这个“后备池”到底在哪里呢?在.yarn/cache? 我在一个有很多部门的项目中激活了松散模式,但与之前的状态相比没有发现任何差异。

0 投票
1 回答
1300 浏览

node.js - 运行 yarn install 时,一个模块不提供另一个模块是什么意思?

当我yarn在使用 firebase 的 react 应用程序上运行时,我会收到几个警告,例如...

(仅供参考......我正在使用纱线 v2)

这是否意味着我需要明确地将它们添加到我的 package.json 中?

0 投票
0 回答
216 浏览

yarnpkg - Yarn UI 日志不可用,因为应用程序时间线服务似乎不健康

最近,我们安装了 Cloudera 7。在新的 Yarn UI 中,我看不到应用程序的日志。

yarnUI 的截图

UI 中的错误: 日志不可用,因为应用程序时间线服务似乎不正常。

使用此命令启动新的时间线服务器后, yarn --daemon start timelinereader 我仍然看不到日志。

在浏览器控制台中,我可以看到跨域错误

使用此链接配置跨域支持后: https ://docs.cloudera.com/runtime/7.0.2/yarn-security/topics/yarn-configure-cross-origin-support-for-yarn.html 错误是仍然存在。

0 投票
1 回答
1874 浏览

dependencies - 使用 Yarn 2 使依赖项的依赖项可用

我正在开发一个框架,我希望框架包的依赖项可用于使用它的应用程序。依赖项不是由消费者直接使用,而是由框架提供的文件使用。

使用 npm,它可以工作,但是使用 Yarn 2 我会遇到这样的错误

显然,我可以将依赖项添加到使用应用程序的 package.json 中,但这需要在依赖项更改时手动编辑 package.json。这违背了具有无模糊升级路径的框架的想法。此外,依赖项适用于框架提供的文件。它们不应该受到下游代码的干扰。

是否可以在下游共享依赖项?

注意:我正在使用工作区。我不知道这是否与问题有关。

0 投票
2 回答
1777 浏览

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

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

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

我将 Yarn 2 用于一个新的空项目,我使用命令添加了 webpack yarn add -D webpack webpack-cli。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 存储库安装的。