yarn berry run 如何运行已安装的包
Posted
技术标签:
【中文标题】yarn berry run 如何运行已安装的包【英文标题】:yarn berry run how to run installed packages 【发布时间】: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
但我不知道该怎么做 webpack
、jest
、babel
等,并且认为我应该必须全部安装它们在同一preinstall
hackaround 期间在全球范围内似乎倒退了几步。
有什么方法可以从我缺少的本地安装的包中运行吗?
我看到了这个可能相关的问题 - Yarn Berry - Run a Node Script Directly
但那里的答案似乎有点离题 - 我没有运行任何 js,我正在尝试输入 package.json 脚本,即可以从 shell 运行的东西。
【问题讨论】:
好的,谢谢@josh-wilson 【参考方案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
这奏效了。
【讨论】:
以上是关于yarn berry run 如何运行已安装的包的主要内容,如果未能解决你的问题,请参考以下文章
我如何直接将“node_modules”与“yarn berry”一起使用
在 Yarn 2 (berry) 中审计依赖项的最佳方法是啥?
$ yarn install 导致找不到模块 yarn-berry.js