You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装brain.js触发node-gyp编译错误,寻求解决方案

安装brain.js时headless-gl编译失败(clang找不到文件)的解决方案

问题背景

已满足Python 3.7+、Xcode安装要求,执行npm i brain.js时失败:预编译二进制文件无法从GitHub下载,手动编译阶段clang报错找不到文件,已尝试npm rebuild无效。

错误信息

npm ERR! code 1
npm ERR! path /Users/abedin/Desktop/Node JS/Projects/Brain.js/node_modules/gl
npm ERR! command failed
npm ERR! command sh -c -- prebuild-install || node-gyp rebuild
npm ERR! CXX(target) Release/obj.target/angle_common/angle/src/common/Float16ToFloat32.o
npm ERR!   CXX(target) Release/obj.target/angle_common/angle/src/common/MemoryBuffer.o
npm ERR!   CXX(target) Release/obj.target/angle_common/angle/src/common/angleutils.o
npm ERR!   CXX(target) Release/obj.target/angle_common/angle/src/common/debug.o
npm ERR!   CXX(target) Release/obj.target/angle_common/angle/src/common/mathutil.o
npm ERR!   CXX(target) Release/obj.target/angle_common/angle/src/common/string_utils.o
npm ERR!   CXX(target) Release/obj.target/angle_common/angle/src/common/tls.o
npm ERR!   CXX(target) Release/obj.target/angle_common/angle/src/common/utilities.o
npm ERR!   LIBTOOL-STATIC Release/angle_common.a
npm ERR!   COPY Release/obj/gen/angle/id/commit.h
npm ERR!   TOUCH Release/obj.target/angle/src/commit_id.stamp
npm ERR!   CXX(target) Release/obj.target/libANGLE/angle/src/common/event_tracer.o
npm ERR!   CXX(target) Release/obj.target/libANGLE/angle/src/libANGLE/AttributeMap.o
npm ERR!   CXX(target) Release/obj.target/libANGLE/angle/src/libANGLE/renderer/gl/RendererGL.o
npm ERR!   CXX(target) Release/obj.target/libANGLE/angle/src/libANGLE/renderer/gl/SamplerGL.o
npm ERR!   CXX(target) Release/obj.target/libANGLE/angle/src/libANGLE/renderer/gl/ShaderGL.o
JS/Projects/Brain.js/node_modules/gl/build/config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/Users/abedin/Desktop/Node JS/Projects/Brain.js/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/Users/abedin/Library/Caches/node-gyp/16.18.0/include/node/common.gypi',
npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
npm ERR! gyp info spawn args   '-Dvisibility=default',
npm ERR! gyp info spawn args   '-Dnode_root_dir=/Users/abedin/Library/Caches/node-gyp/16.18.0',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/Users/abedin/Desktop/Node JS/Projects/Brain.js/node_modules/node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=/Users/abedin/Library/Caches/node-gyp/16.18.0/<(target_arch)/node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=/Users/abedin/Desktop/Node JS/Projects/Brain.js/node_modules/gl',
npm ERR! gyp info spawn args   '-Dnode_engine=v8',
npm ERR! gyp info spawn args   '--depth=.',
npm ERR! gyp info spawn args   '--no-parallel',
npm ERR! gyp info spawn args   '--generator-output',
npm ERR! gyp info spawn args   'build',
npm ERR! gyp info spawn args   '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! ../angle/src/libANGLE/Program.cpp:2505:49: warning: instantiation of variable 'gl::GLTypeToGLenum<float>::value' required here, but no definition is available [-Wundefined-
npm ERR!     int yynerrs;
npm ERR!         ^
npm ERR! 1 warning generated.
npm ERR! clang: error: no such file or directory: 'JS/Projects/Brain.js/node_modules/gl/deps/include'
npm ERR! make: *** [Release/obj.target/webgl/src/native/bindings.o] Error 1
npm ERR! gyp ERR! build error 
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack     at ChildProcess.onExit (/Users/abedin/Desktop/Node JS/Projects/Brain.js/node_modules/node-gyp/lib/build.js:203:23)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:293:12)
npm ERR! gyp ERR! System Darwin 22.5.0
npm ERR! gyp ERR! command "/usr/local/bin/node" "/Users/abedin/Desktop/Node JS/Projects/Brain.js/node_modules/.bin/node-gyp" "rebuild"
npm ERR! gyp ERR! cwd /Users/abedin/Desktop/Node JS/Projects/Brain.js/node_modules/gl
npm ERR! gyp ERR! node -v v16.18.0
npm ERR! gyp ERR! node-gyp -v v9.4.0
npm ERR! gyp ERR! not ok

解决步骤

  • 修复路径空格问题
    项目路径包含空格(Node JS)会导致node-gyp编译时路径解析错误,将项目移动到无空格的目录:

    mv /Users/abedin/Desktop/Node\ JS/Projects/Brain.js /Users/abedin/Desktop/NodeJS/Projects/Brain.js
    

    之后重新执行安装命令。

  • 清理缓存并重新安装

    1. 清理npm缓存:
      npm cache clean --force
      
    2. 删除本地依赖文件:
      rm -rf node_modules package-lock.json
      
    3. 重新安装:
      npm install brain.js
      
  • 确保Xcode命令行工具完全配置

    1. 安装或更新Xcode命令行工具:
      xcode-select --install
      
    2. 指定Xcode开发路径:
      xcode-select -s /Applications/Xcode.app/Contents/Developer
      
    3. 同意Xcode许可协议:
      sudo xcodebuild -license accept
      
  • 跳过GPU支持,安装纯CPU版本
    如果不需要GPU加速,直接安装时跳过可选依赖(headless-gl):

    npm install brain.js --no-optional
    
  • 更新node-gyp工具
    全局更新node-gyp到最新版本,避免版本兼容问题:

    npm install -g node-gyp@latest
    

内容的提问来源于stack exchange,提问作者M. Fahim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 03:45:56