执行yarn start遇exit code 2错误,常规修复无效求助
解决yarn start报错exit code 2的排查方案
已知信息:
- Node版本:v14.17.2
- 已执行操作:删除node_modules、yarn.lock、package-lock.json;执行
yarn cache clean、yarn install - yarn install异常:网络重试、依赖警告、@newrelic/native-metrics可选依赖构建失败(已确认不影响主依赖)
以下是具体排查步骤:
1. 获取完整错误日志
yarn start仅提示exit code 2的信息不足以定位问题,需查看详细报错:
- 重新运行
yarn start,滚动查看命令行输出的完整错误(重点关注报错栈、缺失依赖、语法错误类信息) - 若日志过长,可将输出写入文件:
yarn start > start-error.log 2>&1,打开start-error.log查看详情
2. 验证Node版本兼容性
检查项目package.json的engines字段,确认当前Node版本是否符合项目要求:
- 查看配置示例:
"engines": { "node": ">=14.18.0 <15.x" } - 若版本不匹配,用版本管理工具切换(如nvm:
nvm install 14.18.0、nvm use 14.18.0),再重新执行yarn install和yarn start
3. 排查端口占用
前端项目常用端口(如3000、8080)被占用会导致启动失败:
- Windows:执行
netstat -ano | findstr :3000获取占用进程PID,在任务管理器结束对应进程 - macOS/Linux:执行
lsof -i :3000获取PID,再执行kill -9 <PID>结束进程 - 也可修改启动端口,例如create-react-app项目:
"start": "react-scripts start --port 3001"
4. 处理依赖警告
yarn install的依赖警告可能隐含版本冲突或过期问题:
- 查看警告中的具体依赖包,尝试升级:
yarn upgrade [package-name]@latest - 若存在依赖冲突,在
package.json中添加resolutions字段强制锁定版本:
执行"resolutions": { "conflicting-package": "1.2.3" }yarn install后重新启动项目
5. 检查启动脚本有效性
查看package.json的scripts字段,确认start命令是否存在语法错误:
- 示例配置:
"scripts": { "start": "webpack serve --config webpack.dev.js" } - 直接单独执行脚本中的命令(如
webpack serve --config webpack.dev.js),验证是否能触发更具体的错误
6. 清理系统残留缓存
- 执行
npm cache clean --force清理npm残留缓存 - 重启终端或IDE,避免环境变量、进程残留影响
内容的提问来源于stack exchange,提问作者doubleSlash
相关产品推荐
相关产品推荐

