用途
本技能用于配置 Trigger.dev 项目,核心是编写 trigger.config.ts 文件并配置构建扩展(build extensions)。当需要新建 Trigger.dev 项目、为任务添加数据库支持、配置浏览器自动化、添加媒体处理能力、从任务中运行 Python 脚本、同步环境变量或安装系统包时,可使用本技能。
主要能力
基础配置
通过 defineConfig 定义项目配置,可设置 project、dirs(任务目录)、runtime("node"、"node-22" 或 "bun")、logLevel,以及 retries 重试策略(enabledInDev、default 下的 maxAttempts、minTimeoutInMs、maxTimeoutInMs、factor)。build.extensions 数组用于添加构建扩展。
常用构建扩展
- Prisma:使用 prismaExtension,可指定 schema、migrate、directUrlEnvVarName。
- Playwright:使用 playwright,可指定 browsers(如 ["chromium"] 或 ["chromium", "firefox", "webkit"])。
- Puppeteer:使用 puppeteer(),需设置环境变量 PUPPETEER_EXECUTABLE_PATH。
- FFmpeg:使用 ffmpeg({ version: "7" }),会自动设置 FFMPEG_PATH 和 FFPROBE_PATH。
- Python:使用 pythonExtension,可指定 scripts、requirementsFile、devPythonBinaryPath;在任务中通过 python.runScript 调用脚本。
- 系统包:使用 aptGet 安装 apt 包,如 imagemagick、curl。
- 附加文件:使用 additionalFiles 引入额外文件,如 ./assets/、./templates/。
- 环境变量同步:使用 syncEnvVars,可基于 ctx.environment 动态返回环境变量。
常见扩展组合
- 全栈 Web 应用:prismaExtension + additionalFiles + syncEnvVars。
- AI/ML 处理:pythonExtension + ffmpeg。
- 网页抓取:playwright + additionalFiles。
其他配置
- 全局生命周期钩子:onStartAttempt、onSuccess、onFailure。
- 机器默认值:defaultMachine(如 "medium-1x")、maxDuration(秒)。
- 遥测集成:telemetry.instrumentations,例如 PrismaInstrumentation。
使用方式
在项目根目录创建 trigger.config.ts,从 @trigger.dev/sdk 导入 defineConfig 并导出配置对象;按需从 @trigger.dev/build/extensions/... 导入对应扩展并加入 build.extensions 数组。
适用场景
新建 Trigger.dev 项目、添加数据库支持(Prisma、TypeORM)、配置浏览器自动化(Playwright、Puppeteer)、添加媒体处理(FFmpeg)、运行 Python 脚本、同步环境变量、安装系统包。
限制
扩展仅影响部署,不影响本地开发。最佳实践包括:固定版本以保证可复现构建、使用 syncEnvVars 处理动态密钥、将原生模块加入 build.external 数组、使用 --log-level debug --dry-run 调试。完整文档见 references/config.md。