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

AWS Lambda TypeScript HelloWorld模板执行sam local invoke报错:找不到模块'app'

解决AWS SAM TypeScript Hello World模板本地调用报错"Cannot find module 'app'"的问题

问题原因

TypeScript模板生成的代码需要先编译为JavaScript才能被Lambda运行环境识别,而默认生成的template.yaml配置指向的是TypeScript源码目录,且sam local invoke不会自动执行编译流程,导致运行时找不到对应的JS模块。JavaScript版本无需编译,因此可以直接运行。

解决步骤

  1. 安装依赖并编译TypeScript代码
    进入hello-world目录,安装项目依赖并执行编译:

    cd hello-world
    npm install
    npm run build
    

    执行完成后,会在hello-world/dist目录下生成编译后的JavaScript文件。

  2. 修改SAM模板配置
    返回sam-app根目录,编辑template.yaml文件:

    • 将HelloWorldFunction下的CodeUri从hello-world/修改为hello-world/dist/
    • 确认Handler配置为app.lambdaHandler(编译后的JS文件名为app.js,对应导出的lambdaHandler函数)
  3. 重新执行本地调用
    回到根目录运行命令:

    sam local invoke --event events/event.json
    

额外提示

如果后续需要频繁调试,可以在hello-world目录下执行npm run watch,实现代码修改后的自动编译,避免每次手动执行编译命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:14:54