Node.js不同版本安装指定bcrypt版本失败求助:附报错信息
解决bcrypt安装失败的两种场景方案
针对你遇到的两个bcrypt安装问题,我整理了对应的实用解决思路:
场景1:Node.js 6.12.1环境下执行npm install bcrypt@3.0.6失败
Node.js 6.x属于非常老旧的版本,而bcrypt@3.0.6已经不再对Node 6提供支持——它的最低兼容Node版本是8.x。你有两个可行选择:
- 若必须保留Node 6.12.1,安装和它兼容的bcrypt版本即可,比如执行
npm install bcrypt@1.0.3(这个版本明确支持Node 6); - 若可以升级Node版本,建议升级到Node 8.x及以上的LTS版本,再重新安装bcrypt@3.0.6,兼容性会大幅提升。
场景2:执行npm install时遇到404错误,回退到源码编译
你看到的node-pre-gyp WARN 尝试下载(404)错误,是因为npm找不到匹配你当前Node版本(12.13.1,ABI v72)和系统的预编译bcrypt二进制包。可以试试这些方法:
- 强制从源码编译:执行命令
npm install bcrypt --build-from-source,但前提是你的系统已经装好编译依赖:- Windows:需要安装Python 2.7、Visual Studio Build Tools,也可以用
npm install -g windows-build-tools一键安装; - macOS:执行
xcode-select --install安装Xcode Command Line Tools; - Linux:以Ubuntu为例,执行
sudo apt-get install build-essential python2.7安装必要编译包;
- Windows:需要安装Python 2.7、Visual Studio Build Tools,也可以用
- 换用bcryptjs替代:bcryptjs是纯JavaScript实现的bcrypt,无需编译、兼容性拉满,安装命令是
npm install bcryptjs,代码里的API和bcrypt基本一致,直接替换引用即可; - 清理缓存重试:可能是npm缓存导致的异常,先执行
npm cache clean --force清理缓存,再重新运行npm install。
内容的提问来源于stack exchange,提问作者user11640989
相关产品推荐
相关产品推荐

