jsconfig.json更适合纯js项目,因其专为vscode js语言服务设计,启用模块解析、路径别名和esm支持;而tsconfig.json会触发ts类型检查逻辑,导致intellisense错误跳转、require路径标红及node_modules识别失败。

为什么 jsconfig.json 比 tsconfig.json 更适合纯 JS 项目
纯 JavaScript 项目用 tsconfig.json 会触发 TypeScript 类型检查和路径解析逻辑,反而导致 IntelliSense 错误跳转、require 路径标红、node_modules 中的包无法正确识别。VSCode 的 JS 语言服务默认只读取 jsconfig.json 来做模块解析和路径映射。
-
jsconfig.json是 VSCode 官方为 JS 项目定义的配置文件,启用后自动激活 JS 语言特性(如路径别名、ESM 支持、全局类型声明) - 若项目没
jsconfig.json但有tsconfig.json,VSCode 可能降级为“无配置 JS 模式”,丢失路径智能提示 - 必须包含
"compilerOptions": { "moduleResolution": "node" },否则import无法解析node_modules中的包
如何让 @/ 别名在 JS 文件中真正生效
光在 webpack.config.js 或 vite.config.js 里配了 resolve.alias 不够——VSCode 不读这些构建配置,它只认 jsconfig.json 的 compilerOptions.baseUrl 和 paths。
- 确保
jsconfig.json中"baseUrl": ".",否则paths相对路径会失效 -
"paths": { "@/*": ["src/*"] }这种写法必须和实际目录结构严格一致;若src在packages/my-lib/src下,baseUrl应设为"packages/my-lib" - 改完
jsconfig.json后需重启 VSCode 窗口(仅重载窗口不够),否则缓存的模块图不会更新
eslint-plugin-import 报 Unable to resolve path to module 怎么办
这个错误不是 ESLint 本身的问题,而是它依赖的 import/resolver 没对齐项目 JS 配置。默认 resolver 只认 node_modules,不认 jsconfig.json 的 paths。
- 在
.eslintrc.cjs中显式配置 resolver:settings: { "import/resolver": { "node": { "paths": ["."], "extensions": [".js", ".jsx"] } } } - 如果用了
paths别名,推荐换用eslint-import-resolver-typescript(它也支持 JS 项目),并确保project指向jsconfig.json - 避免同时启用
import/no-unresolved和import/named,后者在 JS 环境下对 CJS 模块常误报
哪些插件真有用,哪些只是占内存
VSCode 插件市场里大量“JS 工具包”其实和内置 JS 语言服务冲突,尤其当它们试图自己实现模块解析或类型推导时。
- 必装:
ESLint(官方)、Prettier(注意关掉其格式化 JS 的选项,交给 ESLint 的eslint-config-prettier统一处理) - 慎用:
Auto Import(和 VSCode 原生自动导入重复,且常把require错转成import)、JavaScript (ES6) code snippets(内置 JS 支持已覆盖 90% 场景) - 禁用:
TypeScript Hero、TS Snippets—— 纯 JS 项目完全不需要 TS 特性注入,反而拖慢启动
路径别名和模块解析这类问题,根源不在插件多寡,而在 jsconfig.json 是否存在、是否被正确读取、是否与构建配置对齐。很多“修复无效”的情况,其实是 jsconfig.json 放错了位置,或者 baseUrl 指向了上层目录却忘了同步调整 paths 的相对路径。











