M1 Mac(Apple Silicon)环境安装bcrypt 5.0.1失败问题求助
问题根因
- bcrypt@5.0.1未提供适配Mac M1(arm64)架构的预编译二进制包,安装时需要本地编译
- 项目路径包含空格(
Projet 6中的空格),导致node-gyp编译时路径识别截断,报找不到node-addon-api的错误 - Xcode命令行工具配置异常,缺失编译所需的基础组件
解决方案
方案1:替代方案(最简便,无需配置编译环境)
直接替换为纯JavaScript实现的bcryptjs,API与原生bcrypt完全兼容,不存在跨架构编译问题:
- 卸载原有bcrypt:
npm uninstall bcrypt - 安装bcryptjs:
npm install bcryptjs - 代码中仅需修改引入语句的包名即可,原有加密、校验逻辑无需调整
方案2:修复环境后安装原生bcrypt
- 修改项目路径:将路径中所有含空格、特殊字符的文件夹重命名,比如把
Projet 6改为Projet_6,确保完整路径无空格、中文等特殊字符 - 修复Xcode命令行工具:
执行命令安装命令行工具:xcode-select --install
安装完成后执行命令指定工具路径:sudo xcode-select -s /Library/Developer/CommandLineTools - 重新安装依赖:
删除项目下的node_modules文件夹和package-lock.json文件,再执行安装命令:npm install bcrypt@5.0.1
备选方案
如果上述操作仍失败,可右键点击终端应用,选择「显示简介」,勾选「使用Rosetta打开」,重启终端后再执行安装命令即可。
内容的提问来源于stack exchange,提问作者Kaito Flash
相关产品推荐
相关产品推荐

