macOS 10.13 High Sierra通过brew安装node@14编译报错如何解决
问题原因
本次报错本质和你之前遇到的OpenSSL安装报错完全一致:node@14内置编译的OpenSSL版本与macOS 10.13自带的CommonCrypto头文件存在兼容性问题,编译时无法识别CCCryptorStatus、kCCSuccess等通用加密相关的类型与常量。
解决步骤
你可以复用之前解决OpenSSL的思路,修改node@14的编译配置,强制禁用CommonCrypto适配即可,具体操作如下:
- 第一步:下载node@14的Homebrew配方文件到本地并打开编辑
brew edit node@14
执行命令后会自动调用默认编辑器打开配方的Ruby配置文件。
- 第二步:在
def install代码块的起始位置,添加编译宏定义,禁用OpenSSL的CommonCrypto适配逻辑
找到args = %W[所在的参数定义行,在该行上方新增一行环境变量配置:
ENV["CPPFLAGS"] = "-DOPENSSL_NO_APPLE_CRYPTO_RANDOM=1"
- 第三步:保存并退出编辑器,重新执行安装命令即可
brew install node@14
可选备用方案
如果上述修改Homebrew配方的操作依旧失败,可以直接使用Node.js官方提供的预编译二进制包,无需本地编译,原生适配低版本macOS:
搜索Node.js官方下载通道,找到v14.x版本的macOS x64安装包,直接运行安装即可,安装完成后执行node -v验证版本正常即为安装成功。
内容的提问来源于stack exchange,提问作者ultra909
相关产品推荐
相关产品推荐

