VSCode 默认不自动编译 .ts 文件,必须安装本地 TypeScript、配置有效的 tsconfig.json(含 outDir 和 rootDir)、并通过 tasks.json 设置 isBackground:true 的 tsc --watch 任务才能实现保存自动编译。

VSCode 默认不自动编译 .ts 文件,必须显式配置 tsc 监听任务 + 正确的 tsconfig.json,否则你看到的“没报错”只是编辑器在做类型检查,.js 文件根本不会生成。
确认 tsc 命令可用是前提
VSCode 自带 TypeScript 语言服务,但 tsc 编译器是独立工具,不装就无法生成 .js。本地项目安装比全局更稳妥:
-
npm install --save-dev typescript(推荐) - 终端执行
npx tsc -v,能看到版本号(如5.4.5)才算成功 - 如果只装了全局
tsc,但项目里有typescript@5.0而全局是4.9,可能因版本差异导致tsconfig.json中新字段(如moduleResolution: "bundler")被忽略
tsconfig.json 必须存在且关键字段不可省略
没有 tsconfig.json,tsc 只会单文件转换,不读任何配置;有但字段缺失或注释没删,会导致监听失败或输出错乱。
详细的 Three.js 3D 图形参考,涵盖场景设置、相机、几何体、材质、光照、动画、控制器、加载器、数学工具和调试。
- 运行
npx tsc --init生成基础配置 - 必须手动修改这两项(其他可后续调整):
–"outDir": "./dist":指定 JS 输出目录,路径不存在会自动创建
–"rootDir": "./src":明确源码起始位置,避免tsc扫描node_modules或误编译配置文件 - 删掉所有以
//开头的行——JSON 不支持注释,tsc会直接报错退出 - 如果项目含
.tsx,加"jsx": "react-jsx";后端用 Node.js 就设"module": "commonjs"
用 tasks.json 绑定 Ctrl+Shift+B 启动监听
每次开终端敲 npx tsc --watch 太重复,VSCode 的任务系统能一键触发并保持后台运行。
- 按
Ctrl+Shift+P→ 输入 “Tasks: Configure Task” → 选 “Create tasks.json from template” → “Others” - 替换内容为以下结构,重点核对
command和args:
{
"version": "2.0.0",
"tasks": [
{
"label": "tsc: watch",
"type": "shell",
"command": "npx tsc",
"args": ["--watch"],
"group": "build",
"isBackground": true,
"problemMatcher": ["$tsc-watch"]
}
]
}
-
isBackground: true是关键,缺了它任务执行完就退出,无法持续监听 -
problemMatcher让 VSCode 正确捕获错误信息,否则报错只显示在终端里,不标红 - 配置完后按
Ctrl+Shift+B→ 选 “tsc: watch”,终端应输出Found 0 errors. Watching for file changes.
常见失败现象和绕过技巧
保存 .ts 文件后没生成 .js?大概率卡在这几个点:
-
error TS18003: No inputs were found...:说明include或exclude配置让tsc没扫到你的.ts文件。最简解法是加一行"include": ["**/*.ts"],或确保文件在rootDir下 - 改了
.ts文件但.js没更新:检查outDir是否和rootDir重叠(比如都设成"."),这会导致tsc拒绝写入以防覆盖源码 - 想快速验证逻辑又不想配构建流程:直接装
ts-node,npx ts-node src/index.ts即可运行,它不生成.js文件,但能跳过编译环节
真正麻烦的不是步骤多,而是 tsconfig.json 里一个字段写错、一行注释没删,整个监听就静默失效——它不报错,也不生成文件,你得盯着终端第一行输出确认是否真在 watching。

















