问题标签 [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 投票
0 回答
120 浏览

yarn-workspaces - 修改纱线的锁定文件的问题

我正在使用 yarn berry,特别是 3.0.0 版,但在 2.4.2 中也遇到了同样的问题。当我yarn install --immutable在 CI 中运行时,我得到了错误:

[2021-07-27T04:51:41Z] ➤ YN0028: │ The lockfile would have been modified by this install, which is explicitly forbidden.

但是,当我在yarn install本地运行时,文件没有任何更改yarn.lock。我在12.22.3本地机器和 CI 机器上运行相同的节点版本。唯一的另一个区别是,在 CI 中,我在Alpine图像中运行它,而我的本地机器是 Mac,但我没有读到这会导致问题。

我能做些什么来进一步调试呢?

0 投票
0 回答
208 浏览

typescript - 如何运行使用 Yarn 2 安装的软件包二进制文件

我正在试一试 Yarn 2/Berry,但我无法弄清楚如何运行由软件包安装的二进制文件。

我专门尝试运行 GRPC 打字稿编译。我在与 Yarn 1 一起使用的 bash 脚本中有以下命令:

但是当我搬到 Yarn 2/Berry 时,我得到一个./node_modules/.bin/protoc-gen-ts不存在的错误:

当我运行时,yarn bin我看到以下内容:

当我跑步时,yarn bin protoc-gen-ts我看到

它告诉我二进制文件安装在一个 zip 文件中(假设我没看错)。我怎样才能像在它所在的经典纱线中一样“公开”这个二进制文件node_modules/.bin

0 投票
0 回答
18 浏览

yarnpkg - yarn2 中的自定义模块文件夹

我目前正在升级到纱线 2,并且使用经典纱线(纱线 1),我们曾经使用此处--modules-folder描述的方法将软件包安装在自定义文件夹中

我没有找到等效的选项或使用纱线 2 的方法。

0 投票
1 回答
1196 浏览

security - 如何在不破坏身份验证的情况下将注册表与 Yarn 2 中的范围相关联?

本文建议.npmrc在您的项目中添加配置以将作用域与私有注册表相关联,以降低 npm 替换攻击的风险(其中有人可能故意发布具有相同名称的恶意公共包)。

我们如何在 Yarn 2 项目中实现类似的效果?我尝试.yarnrc.yml在我的项目根目录中添加一个文件:

我们还~/.yarnrc.yml为每个具有类似配置的开发人员提供了一个主目录,但另外还有一个适当npmAuthToken的身份验证。

但是,当我执行 a 时,该范围内的包yarn install会出现Invalid authentication (as an anonymous user)错误。大概项目特定.yarnrc.yml覆盖了 per-user 的设置~/.yarnrc.yml,所以身份验证信息不再存在?

我所寻求的缓解措施是,如果开发人员忘记运行yarn npm login,那么它不会检查公共注册表中特定范围内的包。有没有办法在 Yarn 2 中做到这一点?

0 投票
0 回答
202 浏览

yarnpkg - 如何使用 Yarn 2 添加本地 .tgz 文件?

我正在尝试使用 Yarn 2 将模块安装到离线计算机上。

我有.tgzNPM 模块的文件。看起来它可以用 Yarn 1.x 完成,但似乎不适用于 Yarn 2。

我将文件lowdb-1.0.0.tgz放入项目文件夹的根目录进行测试并尝试了这些不起作用(项目配置为 Yarn 2):

yarn add lowdb-1.0.0.tgz

yarn add ./lowdb-1.0.0.tgz

yarn add file:./lowdb-1.0.0.tgz

这可能与Yarn 2有关吗?或者是否有另一种方法可以使用 Yarn 2 下载的 assets/bundles/tgz 将模块直接安装到离线计算机上?

0 投票
1 回答
395 浏览

typescript - 在 JS 中工作时,在 Typescript 项目中添加本地依赖项不起作用

我已经能够通过运行将本地包导入到项目中yarn link ../path,这会在 中添加一个resolution字段来package.json告诉捆绑器在哪里可以找到包,基本上是给它一个别名。

奇怪的是,虽然这在我正在导入 from 的文件时有效.jsx,但没有更改任何其他内容,如果我正在导入 from .tsx,则找不到该模块。

所以罪魁祸首可能是 ts-loader、Typescript(它如何处理导入)、webpack 或 yarn。我不知道这是因为我做错了什么还是这是一个错误。

所以文件夹结构可能是:

webpack.config.js在 ProjectMain中有以下内容

ProjectToImport 的index.js样子

0 投票
0 回答
55 浏览

yarnpkg - yarn 无法解析 babel-loader 虽然它已经安装

我想将包管理器从 npm 迁移到 yarn berry。

使用 npm,我的构建脚本成功了。

但是,当我安装 yarn 并使用它运行脚本时,它失败了,因为没有babel-loaderand pug-loader,即使我已经安装了它们。

这是我的项目。develop分支使用 npm 并feature/yarn使用 yarn berry。使用纱线浆果,我无法运行watch:clientwatch:ssr编写脚本。

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 投票
2 回答
714 浏览

typescript - 打字稿编译器找不到带有纱线的节点-找不到“节点”的类型定义文件

我安装了@types/node。我正在使用纱线 2 (PnP)。好像 Typescript 找不到 @types/node 包?

yarn build使用构建脚本运行时会webpack显示有关无法解析模块(路径、缓冲区等)的错误

跑步tsc节目TS2688: Cannot find type definition file for 'node'.

但是,运行“ts-node”确实可以正常工作。

我的 tsconfig.json 如下:

我的 webpack.config.js