Yarn运行带参数脚本问题:mkdir -p test执行时目录生成异常求助
解决Yarn运行脚本时参数解析异常的问题
嘿,我之前也碰到过一模一样的情况!当你用yarn generate执行mkdir -p test时,Yarn把-p当成了要创建的目录名,而不是mkdir的选项,这才会生成-p和test两个目录。问题出在Yarn默认调用的shell上——在某些环境下(比如Windows默认用cmd,或者系统默认shell不是bash),它没办法正确识别命令里的短选项参数。
给你几个靠谱的解决办法:
强制用bash执行命令:修改package.json里的scripts配置,把命令用bash包裹起来,让bash来解析参数:
"scripts": { "generate": "bash -c 'mkdir -p test'" }这样Yarn会调用bash去执行后面的命令,
-p就能被正确识别为mkdir的选项,只会生成test目录(如果父目录不存在的话会自动创建)。用长选项替代短选项:如果你的环境对短选项支持不好,试试用
mkdir的长选项--parents,它和-p功能完全等价:"scripts": { "generate": "mkdir --parents test" }调整Yarn的默认shell:如果你是Windows用户且安装了Git Bash/WSL,可以设置Yarn默认用bash执行脚本。在终端运行以下命令(路径根据你Git Bash的实际安装位置调整):
yarn config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe"设置完成后再运行
yarn generate,应该就能正常工作了。
内容的提问来源于stack exchange,提问作者thatsIT
相关产品推荐
相关产品推荐

