Vite4+TS+Rollup开发UI组件打包遇TS2307错误求助
错误原因分析
1. Vue单文件组件类型声明未被正确识别
TypeScript原生不支持解析.vue文件,必须通过类型声明文件定义其类型规则。即使项目中存在sfc.d.ts,仍可能出现以下问题:
sfc.d.ts内容不符合规范,正确的声明模板应为:declare module '*.vue' { import type { DefineComponent } from 'vue' const component: DefineComponent<{}, {}, any> export default component }- 该声明文件未被Rollup打包流程中的TypeScript配置纳入解析范围。
2. Rollup插件配置与顺序问题
- 使用的
rollup-plugin-typescript2在tsconfigOverride中仅指定了declaration: true和exclude规则,未继承原tsconfig.app.json中包含.vue文件的include配置,导致TypeScript编译时无法识别.vue模块。 - 虽然插件顺序(
nodeResolve()→vue()→typescript(...))本身合理,但rollup-plugin-typescript2可能在vue()插件完成.vue文件转换前就开始解析TS代码,导致无法找到.vue文件的类型声明。
3. TypeScript复合项目配置的影响
TS配置启用了复合项目模式(composite: true),但rollup-plugin-typescript2未能正确合并所有引用的tsconfig配置(比如tsconfig.app.json中包含.vue文件的规则),导致类型解析链断裂。
内容的提问来源于stack exchange,提问作者ljq
相关产品推荐
相关产品推荐

