You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yarn执行嵌套脚本任务失败但NPM运行正常问题咨询

问题原因

该错误是Yarn 1.x版本的配置冲突导致的:你的Yarn环境开启了ignore-scripts配置项,或是配置了不符合要求的script-shell参数,导致Yarn执行内联脚本命令时,没有把命令传给系统shell解析,而是将完整命令字符串(比如echo one)当成了单个二进制文件去查找,因此抛出「找不到二进制echo one」的报错。
NPM执行正常是因为NPM默认会将脚本命令传给系统shell解析,不会触发该逻辑问题。

你可以先运行以下命令验证配置:

# 检查是否开启了忽略脚本配置
yarn config get ignore-scripts
# 检查脚本执行的shell配置
yarn config get script-shell

如果ignore-scripts返回true,或是script-shell返回了非bash/zsh/cmd等系统shell的路径,就可以确认是该原因导致的问题。

解决办法

方案1:关闭全局ignore-scripts配置(最通用)

运行以下命令修改全局配置即可:

yarn config set ignore-scripts false

配置修改完成后重新执行yarn run-all即可正常运行。

方案2:项目单独指定执行shell

如果不想修改全局配置,可以在项目根目录新建.yarnrc文件,添加以下内容指定脚本执行的shell:

script-shell "/bin/bash"

Windows环境可以替换为对应的powershell或cmd路径。

方案3:使用Yarn专用的任务运行工具

你可以改用专门适配Yarn的yarn-run-all工具替代npm-run-all,完全兼容原有用法:

  1. 安装依赖:
yarn add -D yarn-run-all
  1. 修改package.json脚本配置:
"run-all": "run-s task:one task:two"

其中run-s对应串行执行,run-p对应并行执行,和npm-run-all的用法完全一致。

内容的提问来源于stack exchange,提问作者Bas Dalenoord

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:27:01