【问题标题】:yarn berry run how to run installed packagesyarn berry run 如何运行已安装的包
【发布时间】:2020-12-03 17:17:22
【问题描述】:

我看到使用 yarn berry 我得到了即插即用功能,而不是 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 但我不知道该怎么做 webpackjestbabel 等,并且认为我应该必须全部安装它们在同一preinstall hackaround 期间在全球范围内似乎倒退了几步。

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

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

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

【问题讨论】:

  • 好的,谢谢@josh-wilson

标签: yarnpkg yarnpkg-v2


【解决方案1】:

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

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

【讨论】:

  • 谢谢你是对的,我依赖的 cli 帮助并没有很好地帮助我
【解决方案2】:

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

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

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

yarn workspace my-workspace some-bin

这奏效了。

【讨论】:

    猜你喜欢
    • 2022-08-20
    • 2020-08-12
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 2017-02-21
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多