【发布时间】:2021-12-03 17:50:54
【问题描述】:
如何使用 Yarn 2 从 node_modules/.bin 目录运行脚本?
示例
假设我需要运行位于该目录中的“eslint”脚本
node_modules
├── .bin
│ ├── eslint
使用 NPM,我可以运行 npx eslint 来运行可执行文件。如何使用 Yarn 2 实现这一目标?
【问题讨论】:
标签: yarnpkg
如何使用 Yarn 2 从 node_modules/.bin 目录运行脚本?
示例
假设我需要运行位于该目录中的“eslint”脚本
node_modules
├── .bin
│ ├── eslint
使用 NPM,我可以运行 npx eslint 来运行可执行文件。如何使用 Yarn 2 实现这一目标?
【问题讨论】:
标签: yarnpkg
和以前的经典 Yarn 一样,运行这个:
yarn eslint
参考:https://yarnpkg.com/cli/run#details
此命令将运行一个工具。将执行的确切工具将取决于您工作区的当前状态:
如果本地 package.json 中的 scripts 字段包含匹配的脚本名称,则会执行其定义。
否则,如果本地工作区的依赖项之一公开了具有匹配名称的二进制文件,则该二进制文件将被执行。
否则,如果指定的名称包含冒号字符,并且项目中的工作区之一恰好包含一个具有匹配名称的脚本,则该脚本将被执行。
如果您想忽略任何用户定义的脚本而只检查二进制文件,您可以传递-B option。
还有yarn exec:
yarn exec eslint
【讨论】:
node_modules/.bin 中的二进制文件
yarn exec eslint 呢?顺便说一句,在yarn run 中,您可以通过-B 来忽略任何用户定义的脚本并只检查二进制文件。
yarn exec 成功了!我希望文档更清楚地说明可以使用此命令全局访问 node_modules 二进制文件。