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

Arm64架构Graviton机器上Node18+NPM9安装Aerospike依赖失败

问题分析与解决方案

核心问题

错误并非来自Aerospike,而是**sleep模块**的C++扩展代码与Node.js 18的V8 API不兼容:

  • Node.js 10+的V8已移除v8::Handle类型,旧版sleep模块仍在使用该类型
  • FunctionTemplate::GetFunction()在新版V8中要求传入v8::Local<v8::Context>参数,旧版代码未提供该参数

另外存在newrelic@4.12.0的引擎警告,该版本仅支持Node.js <11,与当前使用的Node.js 18不兼容。

解决步骤

1. 升级sleep模块

旧版sleep未适配Node.js 18的V8 API,直接升级到最新兼容版本即可:

  • 修改package.json中sleep的版本为^6.3.0(或当前最新稳定版)
  • 执行命令:
npm install sleep@latest

重新执行npm install即可完成编译。

2. 处理newrelic引擎警告(可选但建议)

newrelic@4.12.0不支持Node.js 18,可能引发潜在兼容性问题:

  • 升级newrelic到支持Node.js 18的版本(推荐v10及以上):
npm install newrelic@latest
  • 若暂时无法升级,可临时跳过引擎检查(不推荐长期使用):
npm install --force

3. 备选方案:替换sleep模块

如果升级sleep模块遇到依赖冲突,可使用Node.js内置API或纯JS包替代:

  • 用内置setTimeout封装同步睡眠逻辑:
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
// 使用示例:await sleep(1000);
  • 安装纯JS的delay包替代:
npm install delay

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:47:08