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

Node.js 18环境下遇require未定义及aws-sdk包找不到问题求助

Node.js 18环境下两类错误的原因分析

一、"Cannot find package 'aws-sdk' imported from /var/task/index.mjs" 错误原因

  • Node.js 18版本的AWS Lambda运行时默认预装的是v3版AWS SDK(包名格式为@aws-sdk/*),不再提供旧版的aws-sdk包。若代码中导入的是aws-sdk,自然会出现找不到包的问题。
  • 若必须使用旧版aws-sdk,需手动将其作为依赖项打包到部署文件中,不能依赖运行时预装。
  • 同时检查package.json是否正确声明了aws-sdk依赖,且部署时是否将node_modules目录一同上传。

二、"require is not defined in ES module scope, you can use import instead" 错误原因

  • 后缀为.mjs的文件会被Node.js自动识别为ES模块(ESM),而require()是CommonJS模块的语法,ESM环境不支持该写法。从错误栈看,你的index.mjs第一行就使用了require(),这是直接诱因。
  • 若要继续用CommonJS语法,可将文件后缀改为.cjs,或者在package.json中添加"type": "commonjs"配置(注意:若设置"type": "module",所有.js文件也会被当作ESM处理)。
  • 额外排查:确认部署包中的package.json配置与本地一致,比如"type"字段是否被正确打包;同时检查Lambda运行时是否确实设置为Node.js 18,避免版本不匹配导致的环境差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:33:16