yarn berry 运行 如何 运行 安装包

yarn berry run how to run installed packages

我看到 yarn berry 我得到了即插即用功能而不是 node_modules/

我找不到任何表明它支持 运行ning 来自已安装软件包的信息。

例如,对于 npm,工作流程可能是 运行 安装的 webpack 版本:

$ npm install --save-dev webpack
$ node node_modules/webpack/bin/webpack ...

全局安装的 webpack 可能不是同一版本。更糟糕的是,在 Docker 部署期间,我得到了本地安装的东西,唯一的节点和 npm 在全球范围内可用。我以为我可以做一个 preinstall 脚本来做 npm install -g yarn; yarn set version berry 但后来我不确定如何做 webpackjestbabel 等,以及我应该在同一个preinstall hackaround 期间在全球范围内安装它们的想法似乎倒退了几步。

有什么方法可以 运行 从我丢失的本地安装的软件包中获取?

我看到了这个可能相关的问题 - Yarn Berry - Run a Node Script Directly

但那里的答案似乎有点离题 - 我没有 运行ning 任何 js,我正在尝试输入 package.json 脚本,即可以 运行 来自 shell.

为什么不直接使用 yarn run <bin>(或简单地使用 yarn <bin>)?如果您在设置为使用 yarn berry 的存储库中,那将 运行 任何包 bin 文件。

yarn node <file> 将 运行 任何 .js 设置为即插即用的文件。无需全局安装这些依赖项,除了 yarn classic。

我尝试做 yarn some-bin 并不断得到:

Couldn't find a script named "some-bin".

我最终发现这是因为提供 some-bin 的包安装在工作区内,而不是我项目的根目录下。所以我不得不 运行:

yarn workspace my-workspace some-bin

这奏效了。