moduleResolution设为bundler时VSCode解析broadcast-channel报错原因咨询
TS 2307错误原因解析
1. 两种模块解析模式的核心差异
把moduleResolution设为bundler时,TypeScript会严格按package.json里的exports字段解析模块,优先匹配当前环境(此处为浏览器,因继承了@vue/tsconfig/tsconfig.dom.json)对应的条件分支;切换到node模式后,TypeScript会采用传统解析逻辑,直接读取main/module/types等顶层字段,不会严格校验exports的复杂嵌套规则。
2. broadcast-channel的exports配置适配问题
broadcast-channel的exports采用了嵌套条件导出结构(. -> browser -> import/default),虽然browser分支明确指定了types路径,但TypeScript 5.1.x的bundler模式对这种嵌套条件中的types字段解析存在兼容性问题——无法正确关联声明文件与对应的浏览器入口文件。而切回node模式后,TypeScript会忽略exports的嵌套逻辑,直接读取根目录的types字段,因此类型解析恢复正常。
3. 其他包(如idb)无报错的原因
idb这类包的exports配置更贴合bundler模式的预期:要么未使用过深的嵌套条件导出,要么在exports的直接分支中清晰指定了类型声明路径,TypeScript能顺利识别并解析。
内容的提问来源于stack exchange,提问作者grimsteel
相关产品推荐
相关产品推荐

