升级Node.js 18.x后AWS SDK v3语法报错:模块未找到
解决AWS Lambda Node.js 18.x下AWS SDK v3「模块未找到」问题
排查与修复步骤
确认依赖安装路径
确保@aws-sdk/client-s3等SDK v3包安装在项目根目录(而非全局),执行命令:npm install @aws-sdk/client-s3 --save检查项目根目录下的
node_modules文件夹,确认存在@aws-sdk子目录。配置Serverless打包规则
Serverless 2.x默认可能不会自动打包所有依赖,需在serverless.yml中明确配置:package: individually: false # 按需设为true,但需确保依赖被包含 include: - node_modules/** # 显式指定包含依赖目录若启用
individually: true,需为每个函数单独配置依赖包含规则。验证package.json依赖声明
确认package.json的dependencies中存在正确的SDK v3包,示例:{ "dependencies": { "@aws-sdk/client-s3": "^3.400.0" } }不要将依赖放在
devDependencies中,Serverless打包生产环境时会忽略该目录下的包。清理缓存重新打包
删除旧依赖文件与锁文件,重新安装并部署:rm -rf node_modules package-lock.json npm install serverless deploy此操作可避免依赖缓存或版本冲突引发的问题。
检查Lambda层配置(若使用)
若SDK v3部署在Lambda层中,确认层已正确发布,且目标函数已关联该层。同时检查层内nodejs/node_modules目录是否包含所需SDK包。
内容的提问来源于stack exchange,提问作者Sabarivasan
相关产品推荐
相关产品推荐

