使用 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 代理 不支持检测 ECMAScript 模块 (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 代理按预期工作,请遵循 故障排除指南。