cPanel下Node.js 16.20.1运行脚本报错:缺失CXXABI_1.3.8版本
解决cPanel Node.js 16.20.1中bcrypt依赖CXXABI_1.3.8缺失问题
试试下面这些解决办法:
方法一:强制从源码编译bcrypt
预编译的bcrypt二进制包可能和cPanel主机的系统库不兼容,重新从源码编译能适配当前环境:
- 删除现有依赖文件:
rm -rf node_modules package-lock.json - 重新安装bcrypt并指定源码编译:
npm install bcrypt --build-from-source
如果用yarn的话,换成:
yarn add bcrypt --build-from-source
方法二:指定自定义libstdc++库路径
如果主机系统的libstdc++版本太低,又没法升级系统库,可以自己在用户目录下安装兼容版本,然后指定库路径:
- 下载或编译兼容的libstdc++库文件,放到用户目录的
~/lib文件夹下(没有就新建) - 运行脚本前设置环境变量,让Node优先加载你的自定义库:
export LD_LIBRARY_PATH=~/lib:$LD_LIBRARY_PATH node your-script.js
或者直接在package.json的启动脚本里加上前缀:
"scripts": { "start": "LD_LIBRARY_PATH=~/lib:$LD_LIBRARY_PATH node your-script.js" }
方法三:替换为纯JS版bcryptjs
bcryptjs是纯JavaScript实现的加密库,不需要原生编译,完全避开系统库依赖问题:
- 卸载原bcrypt:
npm uninstall bcrypt - 安装bcryptjs:
npm install bcryptjs - 把代码里的
require('bcrypt')替换成require('bcryptjs'),两者API几乎一致,不需要修改业务逻辑。
内容的提问来源于stack exchange,提问作者omo git
相关产品推荐
相关产品推荐

