2

我看到使用纱线浆果我得到了即插即用功能而不是 node_modules/

我找不到任何建议它支持从已安装的软件包运行。

例如,使用 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但是我不知道该怎么做webpack,,,等等jestbabel并且认为我应该在同一个preinstallhackaround期间将它们全部安装在全球范围内似乎倒退了几步。

有什么方法可以从我缺少的本地安装的包中运行吗?

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

但那里的答案似乎有点离题——我没有运行任何 js,我正在尝试输入 package.json 脚本,即可以从 shell 运行的东西。

4

2 回答 2

2

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

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

于 2020-08-13T20:11:03.653 回答
0

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

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

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

yarn workspace my-workspace some-bin

这奏效了。

于 2021-05-23T00:24:23.863 回答