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

brain.js启动报错及npm rebuild失败的解决求助

解决brain.js依赖gl模块编译失败的问题

问题核心

启动时出现的Module did not self-register错误,以及npm rebuild时的编译报错,根源是gl模块的源码文件HandleAllocator.cpp缺少<limits>头文件,导致std::numeric_limits未被识别,进而编译失败。

解决方法

方法1:临时修复gl模块源码(最快见效)

  1. 编辑gl模块的源码文件:
    nano /var/www/server-nodejs/node_modules/gl/angle/src/libANGLE/HandleAllocator.cpp
    
  2. 在文件开头的include区域,添加一行:
    #include <limits>
    
  3. 保存退出后,重新编译gl模块:
    npm rebuild gl
    

方法2:降级Node.js版本

Node.js 16与当前gl模块的编译逻辑存在兼容问题,降级到Node.js 14可规避该问题:

  1. 安装nvm(Node版本管理器):
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
    
  2. 重启终端后,安装并切换到Node.js 14:
    nvm install 14
    nvm use 14
    
  3. 删除现有依赖文件,重新安装:
    rm -rf node_modules package-lock.json
    npm install
    

方法3:禁用brain.js的GPU加速(彻底绕过gl模块)

如果不需要GPU加速,直接让brain.js使用CPU运算,完全避免加载gl模块:

  1. 在启动你的Node.js服务前,设置环境变量:
    export BRAINJS_CPU_ONLY=true
    node your-server-file.js
    
  2. 或者在代码开头直接设置:
    process.env.BRAINJS_CPU_ONLY = 'true';
    const brain = require('brain.js');
    

内容的提问来源于stack exchange,提问作者Deekep

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:26:25