使用 TypeScript 入门
编辑使用 TypeScript 入门编辑
Elastic APM Node.js 代理是用原生 JavaScript 实现的,但包含 TypeScript 类型。本文档介绍如何将 APM 代理与您的 TypeScript 项目集成。
可以在 此处找到一个小型完整的示例项目。
安装编辑
将 elastic-apm-node
作为依赖项添加到您的应用程序中,并且可能将 @types/node
作为开发依赖项用于类型检查
如果您在 "tsconfig.json" 中使用 |
tsconfig 编译器选项编辑
TypeScript 作者强烈建议您在 "tsconfig.json" 中使用 "esModuleInterop": true
选项。如果您没有使用,则代理的 "default" 导入将无法正常工作,因此您需要使用 import apm from 'elastic-apm-node/start'
或类似方法,而不是使用
import * as apm from 'elastic-apm-node/start' // if using esModuleInterop:false
目前,Elastic APM Node.js 代理 不支持检测 ECMA Script 模块 (ESM),因此为了获得完整的 APM 支持,您需要告诉 TypeScript 使用 CommonJS 模块通过 "module": "commonjs"
编译器选项生成 JavaScript。
// tsconfig.json { "compilerOptions": { "module": "commonjs", "esModuleInterop": true, "moduleResolution": "node" // ... } }
当前的 TypeScript 针对 node 的推荐 tsconfigs 使用与 APM 代理一起使用的选项。
启动代理编辑
为了使 APM 代理能够自动检测模块,它 必须在您导入其他模块之前启动。这意味着您可能应该在应用程序的主文件中导入并启动代理(通常是 index.js
、server.js
或 app.js
)。以下是一种方法。
此启动方法要求您使用环境变量来配置代理。有关启动代理的所有方法,请参阅 启动代理。 |
请特别注意 可能出现的意外陷阱,其中 TypeScript 编译器可能会丢弃生成的 JavaScript 中的导入。
下一步编辑
APM 代理现在将跟踪您的应用程序,监控性能并记录任何未捕获的异常。请参阅以下文档以配置和使用 APM 代理。
如果您无法使 Node.js 代理按预期工作,请遵循 故障排除指南。