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

Node.js v18识别??运算符报错,安装@aws-sdk/client-s3后应用崩溃

问题描述

安装@aws-sdk/client-s3依赖时触发语法错误,具体报错信息如下:

/home/ec2-user/test-server/node_modules/@smithy/smithy-client/dist-cjs/index.js:852
  requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"],
                                                 ^

SyntaxError: Invalid or unexpected token
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)

Node.js v18.19.0
[nodemon] app crashed - waiting for file changes before starting...

Node.js v18原生支持??空值合并运算符,移除@aws-sdk/client-s3版本号前的^以锁定版本后,错误仍在其依赖包@smithy/smithy-client中重现。

解决方案
  • 锁定@smithy/smithy-client兼容版本:执行npm list @smithy/smithy-client查看当前安装的版本,在package.json的overrides字段(npm 8+支持)中指定一个与Node.js 18兼容的旧版本,例如"@smithy/smithy-client": "^2.0.0"。
  • 彻底清理依赖缓存:删除项目根目录下的node_modules文件夹、package-lock.json文件,执行npm cache clean --force清除npm缓存,再重新执行npm install,确保依赖树完全更新为指定版本。
  • 确认Node.js运行环境:执行node -v验证当前终端使用的Node.js版本确实为18.19.0,避免因多版本Node.js环境导致实际运行版本低于18。
  • 降级@aws-sdk/client-s3版本:若锁定子依赖无效,直接在package.json中指定一个明确兼容Node.js 18的@aws-sdk/client-s3版本,例如"@aws-sdk/client-s3": "^3.400.0",该版本的依赖未引入不兼容语法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 21:20:05