问题标签 [yarnpkg-v3]

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 投票
0 回答
390 浏览

installation - 使用纱线安装的新 Nuxtjs 不起作用

我只是使用(按照文档)创建了一个新的 nuxt 应用程序:

然后我切换到目录并运行(按照文档):

并得到以下错误:

为什么会这样?我正在运行 Node v14.16.0 和 yarn v3.0.0,并且我在 Linux Mint 上。

0 投票
0 回答
556 浏览

yarnpkg - 纱线设置版本不起作用。无法从 yarn 3.0.0 更改为 yarn 2.0.0

当前纱线版本是纱线 3.0.0。尝试使用yarn set version 2.0.0-rc.30. 即使在那个纱线版本之后仍然保持在纱线 3.0.0。

我尝试过的其他选择: npm uninstall -g yarnthen npm install -g yarn. 仍然纱线版本保持在 3.0.0。

更新:

  • 从根目录删除 yarnrc 文件后,设法将纱线版本升级到 2.0。
0 投票
1 回答
579 浏览

heroku - Heroku 没有为 Yarn v3 使用缓存

试图让 Heroku 使用工作区为 Yarn v3 使用缓存模块。我有以下内容:

package.json

heroku-buildpack-features

Heroku 输出:

我试过添加".yarn/cache"cacheDirectoriesin package.json,但它总是说它是空的。

不太确定从这里去哪里。

0 投票
1 回答
98 浏览

node.js - yarn pnp 回退到默认要求

我正在编写一些单元测试来检查是否my-module正确加载了用户区模块external-module

现在我遇到了错误:

这是响亮而清晰的,因为测试会在运行时创建node_modules文件夹中的依赖项,并且yarn在安装阶段不会对其进行处理。

我找不到一种方法yarn@3.0.1来回退到文件系统。

我阅读了有关PnPApi的信息,但我没有弄清楚如何使用它们来加载在运行时创建的这个依赖项。你可以帮帮我吗?这是正确的选择还是您看到了更好的方法?

我也尝试过pnpIgnorePatterns选项,但它忽略了整个文件,而不仅仅是一个文件require

在我看来,另一种解决方案是发布test-transport-module并安装它,但我会避免它。

yarnrc的很简单:

你有什么建议吗?

0 投票
1 回答
1521 浏览

javascript - 为什么是“纱线 2”纱线 3.0.1?

为什么 yarn 不只是叫 yarn 2 yarn 3 而不是叫yarn 2

或者甚至称它为浆果?我不明白命名约定。

0 投票
1 回答
86 浏览

yarnpkg - 使用 Yarn Berry 更新以前修补的软件包

我在我的项目中使用 Yarn@3.0.2。

我已经使用该命令修补了一个包 (@pkg/pkg),yarn patch @pkg/pkg并且我将它用作patch:协议的 devDependency。

现在我需要为同一个包制作另一个补丁 - 但是当我运行相同的命令时,我得到了Multiple candidate packages found [...].

它在尝试以原始包为目标时有效(使用yarn patch @pkg/pkg@x.x.x),但我似乎无法找到针对修补项目的方法。

那里有任何熟练的纱线开发人员吗?

(可能有用的信息:我不能使用该resolutions字段作为补丁,因为@pkg/pkg 是一个 CLI,它似乎不适用于这种方法)

0 投票
1 回答
410 浏览

node.js - yarn2 rollup -c 找不到模块“react”

tsconfig.json

rollup.config.js

包.json

我在 VSCode '4.4.2-sdk' 上设置了打字稿版本。

当我输入

此错误随之而来,

猜猜我的代码现在不要使用 ./pnp.cjs 了。

** 但是如果我输入 **

它成功构建,并且生成了这样的js文件 在此处输入图像描述

并遵循此错误

在此处输入图像描述

为什么当我输入时它成功构建

以及如何在没有 tsc 的情况下构建项目?

0 投票
1 回答
727 浏览

npm - 如何在不指定新目录的情况下使用 Yarn 2(或 3)运行 create-react-app?

我试图从 NPM 迁移到 Yarn 的唯一原因是摆脱“node_modules”文件夹。

我正在尝试使用 CRA 工具。但是,在 CRA 上,它建议使用yarn create,这不是 Yarn 2 文档中的命令。经过一番研究,我发现我应该使用yarn dlx命令,相当于npx.

问题是要使用yarn dlx,我必须先有 Yarn 2。Yarn 2 要求我在我的项目目录中本地安装它。这样,我被迫拥有第二层文件夹结构。我想create-react-app在我的桌面上名为 myApp 的文件夹中。但是,我需要创建 myApp 文件夹来安装 Yarn 2,然后才能开始使用 dlx 运行create-react-app.

我错过了什么吗?

谢谢你。

0 投票
0 回答
495 浏览

typescript - 如何在配置了 TS References 的 monorepo 上正确配置 Yarn 2 PnP?

简短:对于下面描述的项目,我怎样才能最好地配置东西以便两个应用程序(客户端+服务器)运行?

我正在研究一个运行时间较长的项目,随着时间的推移演变成一个单一的回购。由于项目是私有的,我无法共享完整的代码,但项目大致具有以下结构,并标有数字,因此我可以在此示例中轻松引用特定文件:

具体来说,客户端包含一个NextJS项目,服务器包含一个NodeJS Express服务器,全局目录包含一些客户端和服务器都使用的共享功能和接口。

客户端和服务器能够通过 typescript 项目引用访问 global,以及使用 typescript 别名映射@global/到客户端上的 global/src 目录和服务器上的 global/build 目录,如 tsconfig 文件中所示以下。之所以在全局中有一个构建目录,是因为我们在服务器中有一个编译环境;服务器应用程序构建tsc并运行node server.js(大致)。这是编号的文件,放在 pastebin 中,所以帖子不是很大:

  1. /package.json
  2. /tsconfig.json
  3. /client/package.json
  4. /client/tsconfig.json
  5. /global/package.json
  6. /global/tsconfig.json
  7. /server/package.json

8 是一个代码片段,因为我当天的访客粘贴用完了:

这是我们可以为设置做的最好的事情。但是,在我们的代码可以再次工作之前,还存在几个问题。

我们决定将我们的 mono repo 迁移到 yarn pnp,因为我们在运行时遇到了这个问题,在我包含客户端和全局(draft-js)之间的共享依赖项之后。该 github 评论中的链接媒体文章指出了几种可能的解决方案,但我们没有使用 lerna,我们的整个应用程序也没有使用 webpack(仅客户端,因为 NextJS 内部使用它)。所以我们的解决方案似乎在脚注中,yarn pnp。

但是,我找不到任何有关如何将项目引用从 ts 正确转换为 yarn PnP 依赖项的文档,或者至少找不到如何使一切在 yarn pnp 环境中再次工作的文档。

有了这个设置,我们首先遇到了 global 无法构建的问题。它打印错误,“找不到模块'firebase'或其相应的类型声明”,即使firebase在文件5中明确列为依赖项,我可以在.yarn/cache目录中看到正确版本的zip文件火力基地。我还验证了它正在使用 .pnp.cjs 文件,并且我正在yarn build那里运行 ( yarn tsc --build),并yarn -v打印出我正在使用 v3 canary 版本的预期;我不明白为什么它仍然找不到 firebase 模块。

但是,在那个问题之后,另一个问题是打字稿别名似乎现在应该被替换为portal:orlink:依赖项,如他们的文档中所述。这对我们不起作用,它在尝试专门构建服务器时无法解决依赖关系。接下来,我们尝试使用工作空间,因为这似乎也承诺允许客户端和服务器相互访问。这是您现在可以在粘贴中看到的配置。但是,现在当尝试使用此工作区配置编译全局时,我收到类似于此处的第二个片段的错误,关于“无法找到 pnpapi”,表示 global/.pnp.cjs 由根 .pnp.cjs 控制

任何人都可以请建议,我怎样才能最好地建立这种项目?需要什么样的重构,这样我就可以拥有一个包含 NextJS TS 客户端、NodeJS 服务器和共享全局目录的存储库,用于共享 TS 接口和一些功能(因此还有一些共享依赖项可以从中获取类型/功能,例如作为draft-js和firebase)?

如果我可以提供更具体的细节或更好地格式化这个问题,也请对此发表评论。

谢谢!

0 投票
1 回答
102 浏览

yarnpkg - 纱线运行 someScript 输出“找不到命令:导出”

我已经升级到 yarn 版本 3.1.0(之前是 1.x 并且一切正常)。

在项目的 package.json 中有一个具有下一个结构的脚本:

跑步时

或者

外壳输出

在 shell 导出命令本身中运行时,会找到并列出找到的环境变量。

使用包含“导出”命令(用于设置环境变量)的纱线运行脚本有什么问题?应该写什么以及它在哪里可以像 1.x 版本一样工作,或者有没有一种新的方法来设置环境?