如何在Yarn 2(Berry)中向脚本传递参数?
Yarn 2(Berry)给npm脚本传参的解决方法
问题核心原因
Yarn 2(Berry)调整了参数解析逻辑,不再像Yarn 1那样自动将后续参数传递给脚本,需要显式区分Yarn自身参数与脚本参数。
具体解决步骤
1. 修改调用命令
执行脚本时,必须用--作为分隔符,把要传递的参数放在--之后:
yarn output-it -- 'hello world'
--的作用是告诉Yarn:将其后的所有内容直接传递给目标脚本,不被Yarn自身解析处理。
2. 优化脚本配置(可选,提升健壮性)
如果需要支持多参数传递,可以把package.json里的脚本改为用$@(接收所有传入的参数)替代原来的$1:
"scripts": { "output-it": "bash my-script.sh $@" }
这样无论传递多少个参数,都能完整传递给你的shell脚本。
验证效果
执行修改后的命令,shell脚本就能正常接收并输出参数:
yarn output-it -- 'hello world' # 输出结果:output: hello world
内容的提问来源于stack exchange,提问作者ztefanie
相关产品推荐
相关产品推荐

