如何在package.json的prestart脚本中运行多命令并忽略错误?
解决方案
要让tsc和lint命令在启动前全部执行,且忽略各自的错误(不中断后续命令,也不影响start正常启动),你需要用分号分隔命令,并给每个命令加上|| true来确保单个命令失败时不返回错误码。
具体配置步骤:
- 添加
tsc的专用脚本(推荐加上--noEmit参数,只做类型检查不生成编译文件,更贴合启动前代码校验的场景) - 修改
prestart脚本,让两个命令独立执行,各自失败不影响整体流程
完整的package.json脚本配置:
"scripts": { "start": "expo start", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web", "test": "jest --watchAll", "clean": "expo start -c", "tsc": "tsc --noEmit", "lint": "eslint . --ext .ts,.tsx,.json", "prestart": "yarn tsc || true; yarn lint || true" }
配置说明:
|| true:当tsc或lint命令报错时,强制返回成功的退出码(0),避免中断后续命令执行- 分号
;:分隔两个独立的命令,不管前一个命令执行成功还是失败,后一个命令都会被触发
如果你的开发环境是Windows,分号可能无法正常分隔命令,可以改用&:
"prestart": "yarn tsc || true & yarn lint || true"
内容的提问来源于stack exchange,提问作者Zcehtro
相关产品推荐
相关产品推荐

