M2 MacBook运行项目遭遇No native build was found错误求助
问题:M2 MacBook 运行项目时出现
No native build was found 错误 - 原项目在Intel MacBook可正常运行,切换到M2 MacBook后,使用bun或
npm run dev(node 18)均触发该错误,且其他项目也存在相同问题。
项目package.json依赖
"devDependencies": { "@types/three": "^0.143.1", "parcel": "^2.7.0" }, "dependencies": { "three": "^0.143.0" }
bun run dev 控制台错误输出
$ parcel src/index.html --open Error: No native build was found for platform=darwin arch=x64 runtime=node abi=108 uv=1 libc=glibc node=18.7.0 loaded from: /Users/frankmayer/Documents/Git/WorldArchitect/WebGLPreview/node_modules/lmdb and package: @lmdb/lmdb-darwin-x64 at load.path (/Users/frankmayer/Documents/Git/WorldArchitect/WebGLPreview/node_modules/node-gyp-build-optional-packages/index.js:64:9) at Object.load [as default] (/Users/frankmayer/Documents/Git/WorldArchitect/WebGLPreview/node_modules/node-gyp-build-optional-packages/index.js:20:30) at Object.<anonymous> (/Users/frankmayer/Documents/Git/WorldArchitect/WebGLPreview/node_modules/lmdb/dist/index.cjs:47:47) at Module._compile (/Users/frankmayer/Documents/Git/WorldArchitect/WebGLPreview/node_modules/v8-compile-cache/v8-compile-cache.js:192:30) at Module._extensions..js (node:internal/modules/cjs/loader:1174:10) at Module.load (node:internal/modules/cjs/loader:998:32) at Module._load (node:internal/modules/cjs/loader:839:12) at Module.require (node:internal/modules/cjs/loader:1022:19) at require (/Users/frankmayer/Documents/Git/WorldArchitect/WebGLPreview/node_modules/v8-compile-cache/v8-compile-cache.js:159:20) at _lmdb (/Users/frankmayer/Documents/Git/WorldArchitect/WebGLPreview/node_modules/@parcel/cache/lib/LMDBCache.js:61:39) Script error "dev" exited with 1 status
解决方案
1. 清理依赖缓存并重新安装
- 删除
node_modules目录:rm -rf node_modules - 删除对应包管理器的锁文件:
rm package-lock.json bun.lockb - 重新安装依赖:
bun install或npm install
2. 强制指定arm64架构安装依赖
M2为arm64架构,错误显示尝试加载x64版本的lmdb,可指定架构重新安装:
- npm:
npm install --target_arch=arm64 - bun:
bun install --arch=arm64
3. 更新Parcel版本
当前使用的Parcel 2.7.0对M2架构支持可能不足,更新到最新稳定版:
npm install parcel@latest --save-dev或bun add parcel@latest --dev
4. 单独重建lmdb依赖
- 进入
node_modules/lmdb目录,执行:node-gyp rebuild --arch=arm64 - 或直接重新安装lmdb:
npm install lmdb --force
5. 关闭终端的Rosetta转译
确保终端以M2原生arm64模式运行:
- 右键终端应用→「显示简介」,取消勾选「使用Rosetta打开」,重启终端后再执行命令。
内容的提问来源于stack exchange,提问作者Frank
相关产品推荐
相关产品推荐

