macOS下执行yarn启动Nest.js项目无响应,请求排查建议
排查Nest.js项目在macOS Sonoma启动卡住无输出的步骤
一、基础命令调试
- 跳过yarn和cross-env直接测试原生Node命令:
NODE_ENV=development npx nest start --watch,若能正常运行,说明问题出在yarn或cross-env的兼容性上。 - 单独验证cross-env功能:执行
yarn cross-env NODE_ENV=development echo $NODE_ENV,无输出则表示cross-env在当前yarn版本下存在运行问题。
二、启用Nest.js详细日志
- 启动时添加 verbose 参数强制输出日志:
yarn cross-env NODE_ENV=development nest start --watch --verbose,通过日志定位是否卡在TypeORM数据库连接、模块初始化等环节。 - 重点检查TypeORM配置:确认本地数据库服务是否启动,连接参数(host、端口、账号密码)是否与团队配置一致,本地是否具备数据库访问权限。
三、调整包管理器版本与类型
- 升级yarn至最新稳定版:执行
npm install -g yarn@latest,重装依赖后再次启动,旧版yarn 1.x与Node.js 20可能存在兼容性冲突。 - 切换包管理器测试:删除
yarn.lock,执行npm install后用npm run dev启动,排除yarn本身的问题。
四、macOS系统相关排查
- 临时关闭系统防火墙或第三方安全软件,确认是否阻止了Node进程的网络请求或文件读取。
- 检查项目目录权限:执行
ls -la查看目录读写权限,必要时用chmod -R 755 ./修复(避免使用777权限)。 - 若为M系列芯片,关闭终端的Rosetta模式:打开终端“显示简介”,取消勾选“使用Rosetta打开”,Node.js 20原生支持ARM架构,Rosetta可能引发兼容性问题。
五、项目配置细节核查
- 检查
nest-cli.json:确认watchOptions是否配置合理,是否因忽略过多文件导致监听异常;排查compilerOptions中的路径别名等配置是否正确。 - 查看
package.json的scripts:确认dev脚本是否包含隐藏前置命令(如predev),这类脚本可能卡住启动流程。
内容的提问来源于stack exchange,提问作者Livia
相关产品推荐
相关产品推荐

