Vite+React项目执行npm run dev时报esbuild _clock_gettime符号缺失错误求助
_clock_gettime符号缺失错误的解决方法 错误信息
dyld: Symbol not found: _clock_gettime
Referenced from: /Users/KELVIN/Desktop/ZZZ/react/mobile_banking/node_modules/@esbuild/darwin-x64/bin/esbuild
Expected in: flat namespacefailed to load config from /Users/KELVIN/Desktop/ZZZ/react/mobile_banking/vite.config.js
error when starting dev server:
Error: The service was stopped
at /Users/KELVIN/Desktop/ZZZ/react/mobile_banking/node_modules/esbuild/lib/main.js:1145:25
at Object.responseCallbacks.<computed> (/Users/KELVIN/Desktop/ZZZ/react/mobile_banking/node_modules/esbuild/lib/main.js:701:9)
at Socket.afterClose (/Users/KELVIN/Desktop/ZZZ/react/mobile_banking/node_modules/esbuild/lib/main.js:691:28)
at Socket.emit (events.js:412:35)
at endReadableNT (internal/streams/readable.js:1333:12)
at processTicksAndRejections (internal/process/task_queues.js:82:21)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! mobile_banking@0.0.0 dev:vite
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the mobile_banking@0.0.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
解决方法
这个错误核心是esbuild预编译二进制包与当前系统环境不兼容(多发生在旧版本macOS,_clock_gettime是macOS 10.13及以上才支持的系统符号),可尝试以下方案:
强制使用esbuild纯JavaScript版本
- 在项目根目录创建
.npmrc文件,添加一行:esbuild_use_javascript=true - 执行命令清理并重装依赖:
rm -rf node_modules npm install
或直接执行:
npm install esbuild --force --no-bin-links- 在项目根目录创建
升级macOS系统
若你的macOS版本低于10.13,升级到10.13或更高版本可解决底层系统库缺失问题。检查并升级Node.js版本
Vite要求Node.js版本为v14.18+、v16+或更高,旧版本Node可能与esbuild二进制包存在兼容问题,建议升级到LTS版本。彻底清理缓存后重装
执行以下命令完成彻底清理:rm -rf node_modules package-lock.json npm cache clean --force npm install
内容的提问来源于stack exchange,提问作者Damilola John

