eslint与prettier需分工协作:eslint检查逻辑错误和规范,prettier专责格式排版;通过安装官方插件、配置eslint-config-prettier、关闭eslint.format.enable并设prettier为默认格式化器,可避免冲突。

VSCode真正值得装的插件,5~8个就足够覆盖日常开发闭环;装得太多反而拖慢启动速度、引发插件冲突,尤其是 ESLint 和 Prettier 同时启用格式化权限时,editor.formatOnSave 会反复拉扯导致光标乱跳、红波浪线闪烁。
ESLint + Prettier 怎么配才不打架
两者分工必须明确:ESLint 负责检查逻辑错误和代码规范,Prettier 只管格式排版。默认规则重叠(比如分号、引号、空行)会导致保存时互相覆盖。
- 安装官方插件:
dbaeumer.vscode-eslint和esbenp.prettier-vscode,别用非官方同名包 - 项目根目录运行
npx eslint --init生成.eslintrc.cjs,在extends数组末尾加上'prettier',并确保已安装eslint-config-prettier - VSCode 设置中:
editor.formatOnSave开启,editor.defaultFormatter设为esbenp.prettier-vscode,同时关闭eslint.format.enable - 如果项目有
jsconfig.json或tsconfig.json,确认其中"checkJs": true或"allowJs": true已启用,否则 ESLint 可能跳过 .js 文件
GitLens 为什么比原生 Git 面板好用
原生 Git 功能只够“提交”,GitLens 才让你“读懂代码演化”。它不是锦上添花,而是排查协作问题的刚需工具。
- 鼠标悬停某行,立刻显示
author、date、commit message,点一下直接跳转到该次提交 diff - 右键文件 →
Open File Timeline,时间轴式查看所有修改版本,比翻git log -p直观十倍 - 按
Alt+Click快速查看任意行的 blame 信息,无需选中或打开侧边栏 - 注意:它依赖 VSCode 的工作区识别。如果项目是多根工作区(multi-root workspace),需在每个子文件夹下单独启用 GitLens,否则部分文件可能无响应
Path Intellisense 提示路径总“看不见”src/utils
不是插件失效,而是它默认只扫描当前工作区根目录下的**直系子目录**,对软链接、jsconfig.json 别名、未纳入工作区的子模块统统“视而不见”。
- 确认左侧资源管理器里,所有要用的源码目录都已通过
Add Folder to Workspace显式加入——哪怕只是packages/utils这种子包 - 若项目配置了
jsconfig.json的compilerOptions.baseUrl和paths,Path Intellisense 默认不读这些。需手动在.vscode/settings.json中加映射:"path-intellisense.mappings": { "@": "${workspaceFolder}/src", "@utils": "${workspaceFolder}/src/utils" } - 遇到符号链接(如
ln -s ../shared utils),VSCode 默认不跟随。可在设置中开启files.followSymlinks,但注意这可能暴露不该访问的系统路径
Auto Import 在 TS 项目里不自动补全类型
它默认只处理值导入(import { foo } from 'bar'),对类型导入(import type { Foo } from 'bar')需要额外配置,否则光标停在 Foo 上按 Ctrl+. 会提示“no import available”。
- 安装插件后,在设置中搜索
auto-import,启用Auto Import: Autoimport On Value Or Type(该选项在 2025 年后版本中默认关闭) - 确保当前文件语言模式正确:右下角应显示
TypeScript或TypeScript React,而不是JavaScript—— 否则类型推导会降级 - 如果使用
declare module自定义类型声明,且声明文件不在typeRoots路径下,需在tsconfig.json中显式添加"include": ["types/**/*.d.ts"]
最常被忽略的一点:所有插件行为都受 .vscode/settings.json 和项目级 package.json / tsconfig.json 共同影响,单看插件文档容易漏掉底层约束。比如 Path Intellisense 的别名映射、Auto Import 的类型开关、ESLint 的 env 配置,全都在这些文件里埋着开关。











