返回
创建于
状态公开
在 Vue 项目中使用 vue-tsc -b / --build 的最佳实践
在 Vue 3 + TypeScript 的项目中,我们通常会用到 vue-tsc 来进行类型检查。它是由 Volar 提供的命令行工具,类似于 TypeScript 官方的 tsc,但额外支持 .vue 文件。
而当你在命令里加上 -b 或 --build 时,就进入了 Project References 构建模式,这是在多包/大型项目里非常有用的功能。
-b 和 --build 的关系
先说结论:-b 与 --build 完全等价。
--build是完整写法-b是简写(alias)- 功能完全一致,你写哪个都可以
vue-tsc -b 能做什么?
1. 支持 Project References
如果你有一个 monorepo 或者多包项目,例如:
1packages/
2 ├─ core/
3 ├─ ui/
4 └─ app/每个子包都有自己的 tsconfig.json,顶层则有一个 tsconfig.build.json 统一管理依赖关系。
这时 vue-tsc -b 可以按照依赖顺序逐个编译子项目。
2. 增量构建
-b 会生成 .tsbuildinfo 文件,缓存构建信息。
后续编译时只会检查改动过的部分,速度更快。
3. 严格的类型检查
在 CI/CD 中,你可能不需要产物,只要检查类型是否通过。 这时可以用:
1vue-tsc -b --noEmit这样不会输出 .js 或 .d.ts 文件,但能保证类型安全。
常见用法
1# 使用根目录的 tsconfig.json
2vue-tsc -b
3
4# 指定构建配置文件(常见于 tsconfig.build.json)
5vue-tsc -b tsconfig.build.json
6
7# 只做类型检查(CI 常用)
8vue-tsc -b --noEmit
9
10# 清理增量缓存
11vue-tsc -b --clean注意事项
-
-b/--build模式需要在tsconfig.json里加上:1{ 2 "compilerOptions": { 3 "composite": true 4 } 5}否则无法使用。
-
如果你的项目是单包应用(没有多子项目),其实不必用
-b,直接执行:1vue-tsc --noEmit就能完成类型检查。
小结
vue-tsc -b和vue-tsc --build是一回事,前者只是后者的缩写。- 它们主要用在 monorepo / 多包项目,能够带来 依赖顺序编译 + 增量缓存 的好处。
- 如果只是想在 CI 中做类型检查,推荐使用
vue-tsc -b --noEmit。 - 对于单体应用,直接用
vue-tsc --noEmit就够了。
📌 一句话总结:
如果你的 Vue 项目是多包/大型工程,强烈建议用
vue-tsc -b; 如果只是单项目,直接vue-tsc --noEmit就行。