TypeScript 支持文件
weapp-vite 会在项目根目录生成一组 .weapp-vite/* 托管文件,用来解决两类问题:
- 给自动路由、自动导入组件、layout 等增强能力提供稳定的类型输出位置
- 让旧项目也能逐步接入更规范的 TS 引用结构,而不是一次性强制重构
会生成哪些文件
常见输出包括:
.weapp-vite/tsconfig.app.json.weapp-vite/tsconfig.server.json.weapp-vite/tsconfig.node.json.weapp-vite/tsconfig.shared.json.weapp-vite/typed-router.d.ts.weapp-vite/typed-components.d.ts.weapp-vite/components.d.ts.weapp-vite/wevu-layouts.d.ts
它们分别服务于:
- 业务源码与页面/组件类型检查
- Node / 配置文件类型检查
- 自动路由类型输出
- 自动导入组件与 Vue 模板补全
- layout 名称和 props 类型增强
什么时候生成
这些文件会在以下命令中自动生成或刷新:
wv devwv buildwv openwv analyzewv prepare
如果你希望在编辑器、CI、AI 工具接入前先预热类型产物,推荐显式执行:
wv prepareweapp.typescript
- 类型:ts
{ shared?: { compilerOptions?: CompilerOptions } app?: { compilerOptions?: CompilerOptions vueCompilerOptions?: Record<string, any> include?: string[] exclude?: string[] files?: string[] } node?: { compilerOptions?: CompilerOptions include?: string[] exclude?: string[] files?: string[] } server?: { compilerOptions?: CompilerOptions include?: string[] exclude?: string[] files?: string[] } }
用于定制托管 tsconfig 的各分组内容。
import { defineConfig } from 'weapp-vite/config'
export default defineConfig({
weapp: {
typescript: {
shared: {
compilerOptions: {
strict: true,
},
},
app: {
include: ['src/**/*', '.weapp-vite/**/*.d.ts'],
},
node: {
compilerOptions: {
types: ['node'],
},
},
server: {
include: ['server/**/*.ts'],
},
},
},
})四个分组分别管什么
shared:多端共享、公共基础配置app:页面、组件、SFC、布局相关源码node:vite.config.*、weapp-vite.config.*、脚本、生成器、Node 工具server:服务端辅助代码或本地 server 代码
每个分组都支持什么
shared 只支持 compilerOptions,用于给其他托管 tsconfig 通过 extends 继承公共编译器选项。
app / node / server 支持:
compilerOptionsincludeexcludefiles
其中 app 额外支持:
vueCompilerOptions
推荐接入方式
新项目
优先采用托管 references 结构:
{
"references": [
{ "path": "./.weapp-vite/tsconfig.app.json" },
{ "path": "./.weapp-vite/tsconfig.server.json" },
{ "path": "./.weapp-vite/tsconfig.node.json" },
{ "path": "./.weapp-vite/tsconfig.shared.json" }
],
"files": []
}根 tsconfig.json 是 TypeScript solution config,只负责把编辑器和 tsc -b 引到 .weapp-vite/* 子项目。业务 .vue、页面、组件和自动导入组件的类型检查入口是 .weapp-vite/tsconfig.app.json,它会包含:
../src/**/*./**/*.d.tstypes: ["miniprogram-api-typings", "weapp-vite/client"]vueCompilerOptions.plugins: ["weapp-vite/volar"]- 使用
wevu时的vueCompilerOptions.lib: "wevu"
.weapp-vite/tsconfig.shared.json 只用于被 app / node / server 通过 extends 继承。即使根 solution config 保留对它的 references,它也必须保持为显式空 project。由于 tsc -b 不接受完全空的 files: [] project,托管配置会只引用一个空占位声明文件:
{
"compilerOptions": {
// ...
},
"files": ["./tsconfig.shared.empty.d.ts"]
}这样可以避免 TypeScript 在单独加载 shared project 时按默认 **/* 隐式包含全仓库文件,重复解析 .weapp-vite/*.d.ts、小程序 typings、wevu 等声明,同时仍能通过 solution build,从而改善 Vue Official / Volar 对 .vue 文件的归属判断和跳转稳定性。
旧项目
建议按这个顺序迁移:
- 先执行一次
wv prepare - 确认
.weapp-vite/*已生成 - 再逐步把根
tsconfig.json收敛到托管references - 最后在
weapp.typescript里补团队自己的覆盖项
与顶层 resolve.alias / compilerOptions.paths 的关系
weapp.typescript 只负责托管 TS 文件本身的结构和编译器选项。
如果你在处理路径别名:
- TS 层别名:
compilerOptions.paths - Vite 解析层:顶层
resolve.alias或weapp.tsconfigPaths
更多 Vite 原生配置说明:
常见问题
为什么改了配置后编辑器还没提示
优先检查:
- 是否已执行
wv prepare - 根
tsconfig.json是否包含.weapp-vite产物 - 是否使用了
weapp-vite/config的defineConfig
typed-router.d.ts / typed-components.d.ts 没生成
分别检查:
- 是否启用了
weapp.autoRoutes - 是否启用了
weapp.autoImportComponents
可以手动改 .weapp-vite/*.json 吗
不建议。它们属于托管产物,应通过 weapp.typescript 和相关功能配置来改。
接下来如果你要处理自动路由、日志桥接、MCP 或运行时注入,请继续看 共享配置。