# ts-node --transpile-only 不尊重 ignoreDeprecations

> **日期**: 2026-04-13
> **场景**: worktree 环境 pre-push hook 使用 npx ts-node 执行契约校验
> **错误码**: [ERR-20260413-001]

## 问题

npx 缓存的 ts-node 绑定了 TypeScript 6.x，`moduleResolution=node10` 被标记为弃用。
在 tsconfig.json 中设置 `"ignoreDeprecations": "6.0"` 后，`ts-node --show-config` 显示配置正确，
但 `ts-node --transpile-only` 仍然报 TS5107 错误。

## 原因

`--transpile-only` 模式跳过类型检查，使用简化的编译路径，该路径不完整处理 `ignoreDeprecations` 选项。

## 解法

移除 `--transpile-only` 参数，使用完整编译模式。对于契约校验脚本（文件少、不频繁执行），性能差异可忽略。

## 环境要素

- 只在 worktree 中复现（worktree 无 node_modules，npx 用全局缓存的高版本 TS）
- 主仓库如果有 node_modules/typescript 锁定低版本则不会复现
