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

Node.js 18.13.0引入@aws-sdk/client-dynamodb触发UUID相关语法错误

Node.js升级到v18.13.0后@aws-sdk/client-dynamodb触发语法错误

问题场景

  • Node.js v14.15.0环境下,这行代码运行完全正常:
    const ddbClient = require("@aws-sdk/client-dynamodb");
    
  • 用nvm切换到v18.13.0后,启动项目就报语法错误,反复添加/移除该行代码确认,问题确实由引入这个包导致。

具体错误信息

/mnt/e/CODING/nzgk_series/2/node_modules/@aws-sdk/client-dynamodb/dist-cjs/protocols/Aws_json1_0.js:3541
    ClientRequestToken: input.ClientRequestToken ?? (0, uuid_1.v4)(),
                                                  ^

SyntaxError: Unexpected token ?
    at Module._compile (internal/modules/cjs/loader.js:723:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/mnt/e/CODING/nzgk_series/2/node_modules/@aws-sdk/client-dynamodb/dist-cjs/commands/BatchExecuteStatementCommand.js:8:23)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)

项目package.json内容

{
  "name": "2",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "start": "nodemon app.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@aws-sdk/client-dynamodb": "^3.245.0",
    "@aws-sdk/util-dynamodb": "^3.245.0",
    "body-parser": "^1.20.1",
    "dotenv": "^16.0.3",
    "ejs": "^3.1.8",
    "express": "^4.18.2",
    "express-ejs-layouts": "^2.5.1",
    "socket.io": "^4.5.4",
    "uuid": "^9.0.0"
  }
}

解决方法

核心原因

你安装的@aws-sdk/client-dynamodb@3.245.0编译代码里用到了空值合并运算符??,但切换到Node.js v18后没有重新安装依赖,导致依赖包还是基于v14环境生成的,或者nodemon缓存了旧模块内容,才出现v18识别不了该语法的矛盾(实际上v18本身是支持??的)。

操作步骤

  1. 切换到v18.13.0环境后,先删除旧依赖和锁文件:
    rm -rf node_modules package-lock.json
    
  2. 重新安装所有依赖:
    npm install
    
  3. 重启nodemon加载新依赖:
    npm start
    

如果上述步骤无效,直接升级AWS SDK到最新兼容版本:

npm install @aws-sdk/client-dynamodb@latest @aws-sdk/util-dynamodb@latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 03:35:27