vite默认每次构建自动清空输出目录,类型安全检查则依赖tsc校验与tsconfig.json严格配置协同实现。

在 TypeScript 项目中使用 Vite,输出目录清空和类型安全检查不是靠单一配置开关实现的,而是分别由构建行为和 TypeScript 编译阶段协同完成。Vite 本身默认每次构建都会自动清空输出目录(如 dist),无需额外配置;而“安全检查”实际指 TypeScript 的类型校验,它独立运行于构建前,需通过 tsconfig.json 和开发/构建流程共同保障。
输出目录自动清空机制
Vite 的 build 过程默认启用 clean up 行为。只要没显式禁用,每次执行 vite build 都会先删除 build.outDir(默认 dist)下所有内容,再写入新产物。
- 无需手动加
emptyOutDir: true—— 这是 Vite 2.9+ 的默认行为,即使不写也生效 - 若想改输出路径,只需配置
build.outDir,清空逻辑仍自动跟随:export default defineConfig({<br> build: {<br> outDir: 'output' // 构建时自动清空 output 目录<br> }<br>}) - 极少数场景需强制保留某些文件(如 CNAME、.nojekyll),可配合
build.rollupOptions.plugins自定义插件跳过删除,但一般不建议
类型安全检查依赖 tsc 或 vite-plugin-checker
Vite 本身不执行 TypeScript 类型检查,它只做转译(esbuild + swc)。真正的类型校验由 TypeScript 编译器(tsc)负责,需主动触发或集成进工作流。
-
开发阶段:VS Code 等编辑器基于
tsconfig.json实时提示类型错误,这是最直接的安全检查 -
构建前校验:推荐在
package.json中添加脚本:"scripts": {<br> "build": "tsc --noEmit && vite build"<br>}tsc --noEmit仅检查类型、不生成 JS,失败则中断构建 -
增强检查体验:安装
vite-plugin-checker,在 dev server 启动时实时报告 TS 错误(含 Vue/SFC 支持):npm install -D vite-plugin-checker<br>// vite.config.ts<br>import checker from 'vite-plugin-checker'<br>export default defineConfig({<br> plugins: [checker({ typescript: true })]<br>})
关键 tsconfig.json 安全配置项
类型检查效果高度依赖 tsconfig.json 的严格性设置,以下几项是保障基础安全的底线:
-
"strict": true—— 启用全部严格模式(包括noImplicitAny、strictNullChecks等) -
"isolatedModules": true—— Vite 必须项,确保每个文件可单独编译,避免类型跨文件丢失 -
"skipLibCheck": false(开发期建议设为false)—— 不跳过声明文件检查,及时发现第三方类型问题 -
"include": ["src"]—— 明确限定检查范围,避免意外包含 node_modules 或配置文件
生产构建时的类型与代码双重防护
上线前建议组合执行两步验证,形成闭环:
- 运行
tsc --noEmit --project tsconfig.json确保无类型错误 - 再运行
vite build生成产物(此时 Vite 已自动清空旧 dist 并写入新文件) - CI 流程中可合并为一条命令:
npm run type-check && npm run build











