VSCode Windows环境下TypeScript模块查找异常问题咨询:无法找到模块及需添加扩展名才能识别
解决Windows下VSCode找不到无扩展名TypeScript模块的问题
嘿,这个问题我太熟了!之前跨Windows和WSL开发TS项目时一模一样的遭遇,折腾了半天才搞明白根源——其实是Windows和Linux环境下TypeScript模块解析的规则差异,再加上VSCode的TS版本配置搞的鬼。下面给你一步步解决:
1. 先统一TypeScript版本(最关键的一步!)
Windows下的VSCode大概率默认用了全局安装的TypeScript,而WSL里你用的是项目本地node_modules里的版本,版本不一致直接导致解析行为天差地别。
- 打开VSCode命令面板(Ctrl+Shift+P),输入
TypeScript: Select TypeScript Version - 选
Use Workspace Version,强制VSCode用项目本地的TS版本,和WSL环境保持一致
2. 调整tsconfig.json的模块解析配置
项目根目录的tsconfig.json是核心,把这些配置改对,就能让Windows和WSL的解析逻辑对齐:
{ "compilerOptions": { "module": "NodeNext", // 或者Node16,推荐用这个模式完全对齐Node.js的解析规则 "moduleResolution": "NodeNext", "allowSyntheticDefaultImports": true, "esModuleInterop": true, "target": "ES2020" // 至少选ES2020以上的版本 } }
如果你的项目是基于CommonJS的,那把module改成CommonJS,moduleResolution改成Node,同样能解决无扩展名导入的问题。
3. 检查VSCode的本地设置
有时候VSCode的全局设置会覆盖项目配置,打开Windows下VSCode的settings.json(按Ctrl+, 然后点右上角的打开JSON按钮),添加这两行:
{ "typescript.tsdk": "./node_modules/typescript/lib", // 强制用项目本地的TS SDK "typescript.preferences.importModuleSpecifier": "non-relative" }
4. 重启TS服务器清缓存
最后一步,按Ctrl+Shift+P输入TypeScript: Restart TS Server,重启后重新打开项目,应该就能和WSL里一样,不用加扩展名也能正常导入模块了!
内容的提问来源于stack exchange,提问作者jiayu lou
相关产品推荐
相关产品推荐

