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

如何配置AWS Amplify Express API并实现TypeScript转JavaScript?

解决基于TypeScript的AWS Amplify Express API配置与转译问题

1. 初始化TypeScript环境

进入你的Amplify Express函数目录:

cd amplify/backend/function/[你的函数名]

安装TypeScript及类型依赖:

npm install typescript @types/node @types/express @types/serverless-http --save-dev

生成tsconfig.json配置文件:

npx tsc --init

修改tsconfig.json关键配置项:

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "CommonJS",
    "outDir": "./dist",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}

2. 重构Express代码为TypeScript

将原src/app.js重命名为src/app.ts,调整代码适配TypeScript语法:

import express from 'express';
import serverless from 'serverless-http';

const app = express();
const router = express.Router();

router.get('/', (req, res) => {
  res.json({
    message: 'Hello from TypeScript Express API!'
  });
});

app.use('/.netlify/functions/api', router);
app.use(express.json());

export const handler = serverless(app);

3. 配置Amplify构建流程

由于Express函数与普通Lambda函数的结构差异,需自定义构建逻辑:

  • 在函数目录的package.json中添加构建脚本:
{
  "scripts": {
    "build": "tsc"
  }
}
  • 修改amplify/backend/function/[你的函数名]/function.json,更新处理器路径与构建命令:
{
  "handler": "dist/app.handler",
  "build": {
    "commands": [
      "npm install",
      "npm run build"
    ]
  }
}

4. 测试与部署

本地验证转译效果:

npm run build

确认dist目录生成了转译后的JavaScript文件,随后部署到Amplify:

amplify push

核心差异说明

普通Lambda函数仅需转译单个处理器文件,而Express函数是完整Web服务,需注意:

  • 确保所有TS源码文件都被转译到输出目录
  • 通过serverless-http将Express服务封装为Lambda兼容的处理器
  • 配置Amplify先执行TS转译,再完成部署流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 06:33:19