Windows下package.json串行执行yarn脚本报找不到yarn.js如何解决
问题原因
- 命令分隔符不兼容:你在
deploy-windows中使用的;是Unix系(Mac/Linux)Shell的顺序命令分隔符,Windows默认的命令执行环境(cmd、PowerShell)不支持该语法,会将整段yarn build; gh-pages -d build识别为单个命令执行,因此抛出模块找不到的错误。 - 冗余自定义脚本:你已经配置了
predeploy生命周期钩子,只要执行yarn deploy,yarn会自动先执行predeploy对应的yarn build命令,执行成功后才会运行deploy对应的部署命令,该逻辑本身就是跨平台生效的,不需要额外定义deploy-windows脚本。
修复方案
你可以任选一种即可:
直接使用原有跨平台脚本
不需要做任何配置修改,Windows环境下直接执行yarn deploy即可,会和Mac环境一样自动按顺序执行构建、部署流程。修复
deploy-windows脚本的分隔符
如果要保留自定义的Windows专属脚本,将命令分隔符从;替换为跨平台兼容的&&即可。&&的逻辑是只有前面的命令执行成功,才会运行后面的命令,更符合构建成功再部署的诉求。修改后的scripts配置如下:
"scripts": { "predeploy": "yarn build", "deploy": "gh-pages -d build", "deploy-windows": "yarn build && gh-pages -d build" }
内容的提问来源于stack exchange,提问作者Sowam
相关产品推荐
相关产品推荐

