VSCode对sinuous/map类型识别异常与Vite导入冲突求助
解决方案
方案1:配置jsconfig.json让VSCode识别JS文件中的类型
在项目根目录创建jsconfig.json,配置如下:
{ "compilerOptions": { "module": "NodeNext", "moduleResolution": "NodeNext", "checkJs": true, "paths": { "sinuous/map": ["./node_modules/sinuous/src/map.js"] } }, "include": ["**/*.js"] }
checkJs:开启JS文件的类型检查,让VSCode对JS文件进行类型推断和校验paths:将sinuous/map映射到包内实际的类型文件路径,解决VSCode无法通过exports字段找到类型的问题- 保持
import { map } from "sinuous/map"的导入方式,Vite会正常读取package.json的exports配置,不会报错
方案2:完善sinuous包的exports类型导出(若有权限修改包)
如果可以修改sinuous包的package.json,在exports的.map条目里显式指定类型文件路径:
"exports": { "./map": { "types": "./src/map.d.ts", "default": "./src/map.js" } }
这样NodeNext模块解析规则会自动识别子模块的类型定义,无需额外配置,JS和TS文件都能直接识别sinuous/map的类型。
方案3:临时添加类型引用注释(应急方案)
在需要使用map的JS文件顶部添加类型引用注释,强制VSCode加载对应类型:
/// <reference types="sinuous/src/map" /> import { map } from "sinuous/map";
该方案无需修改配置,适合临时场景,但需要在每个用到的JS文件中添加注释。
内容的提问来源于stack exchange,提问作者4n0n4me
相关产品推荐
相关产品推荐

