vscode 中大型开发依赖插件协同而非数量,remote-ssh需校验ssh配置权限与格式,debugger断点失效主因是sourcemap路径映射错误,eslint与prettier冲突须用eslint-config-prettier消音并统一规则,启动慢应禁用非工作区级插件。

VSCode 本身轻量,但真正让它撑起中大型项目开发的,是插件工具集的组合能力——不是装得越多越好,而是选对、配准、协同工作。
Remote-SSH 连不上远程服务器?先检查 ~/.ssh/config 格式和权限
Remote-SSH 不是点一下就通的“魔法”,它严格依赖本地 SSH 配置。常见失败现象:点击连接后卡在“Connecting…”、报错 Could not establish connection to "xxx" 或直接提示 No SSH hosts found。
-
~/.ssh/config必须存在且权限为600(chmod 600 ~/.ssh/config),否则 OpenSSH 会拒绝读取 - 每段 Host 配置必须以
Host开头,且不能有空行或注释混在中间;别名(如Host myserver)要和 Remote Explorer 里显示的名字完全一致 - 如果目标服务器禁用了密码登录,确保已用
ssh-copy-id推送公钥,并在 config 中明确写IdentityFile ~/.ssh/id_rsa - Windows 用户注意:WSL2 下的 VS Code Remote-SSH 默认走 WSL 的 SSH 客户端,不是 Windows 原生的,配置文件路径是
/home/username/.ssh/config,不是C:\Users\...\
debugger for chrome 断点不触发?重点看 sourcemaps 和路径映射
断点“设上了却没停”,大概率是 sourcemaps 没对上。尤其在 webpack/vite 构建后的项目里,浏览器加载的是 dist 目录下的 bundle.js,而你在 src 里打的断点需要靠 sourcemap 回溯。
- 确认构建时已开启 sourcemaps:webpack 中
devtool: 'source-map',vite 中build.sourcemap: true -
launch.json里必须设"sourcemaps": true,且"webroot"要指向实际服务的根目录(通常是"${workspaceFolder}",但如果是npm run serve启的服务,可能需设为"${workspaceFolder}/dist") - 若项目用了自定义输出路径(如
outDir: "./public/js"),需加"sourceMapPathOverrides"显式映射,例如:{"../src/*": "${webRoot}/src/*"} - Chrome 启动参数
--remote-debugging-port=9222必须唯一;如果端口被占,断点同步会静默失败
ESLint + Prettier 冲突报红?关掉 eslint-config-prettier 就白装了
装了 ESLint 和 Prettier 却依然满屏红色波浪线,甚至保存后格式越改越乱,问题几乎都出在规则打架上。
- 必须安装
eslint-config-prettier并在 ESLint 配置的extends末尾显式加入,它不是可选项,是“消音器”——专门关闭所有和 Prettier 冲突的规则 - VS Code 设置里,
"editor.defaultFormatter"要设为"esbenp.prettier-vscode",同时关掉"editor.formatOnSave"和"editor.codeActionsOnSave"的冲突项(比如不要同时开"source.fixAll.eslint"和"source.formatDocument") - Prettier 的
printWidth和 ESLint 的max-len规则必须统一,否则保存时会反复拉锯;建议直接删掉 ESLint 里的max-len,全交给 Prettier 管 - TypeScript 项目额外注意:
@typescript-eslint/eslint-plugin的规则(如no-unused-vars)和 Prettier 无直接冲突,但需确保parserOptions.project指向正确的tsconfig.json,否则类型相关规则会失效
插件太多导致启动慢?优先禁用非工作区级插件
VSCode 启动时间超过 3 秒,八成是因为插件在后台全局激活。Remote-SSH、ESLint、Prettier 这类插件按需加载没问题,但像 change-case、regex-previewer、markdown-all-in-one 这些语言无关型插件,一旦启用就会常驻内存。
- 打开命令面板(
Ctrl+Shift+P),执行Developer: Show Running Extensions,看哪些插件 “Activation Time” 超过 500ms —— 重点关它们 - 右键插件 → “Disable (Workspace)” 而非 “Disable (Global)”,这样只在当前项目禁用,不影响其他工作区
- 像
bracket-pair-colorizer这类纯 UI 插件,如果项目不用 JSX 或深度嵌套 CSS,完全可以关;它的高亮逻辑在大文件里反而拖慢编辑器响应 - AI 类插件(如 Copilot、Tabnine)默认全局启用,但实际只在 JS/TS 文件里有用,可在设置里配
"copilot.enable": {"javascript": true, "typescript": true, "plaintext": false}精简激活范围
插件工具集真正的复杂点不在安装,而在“谁该什么时候醒、醒多久、跟谁说话”。一个没配对的 sourcemap 路径,或一条漏掉的 eslint-config-prettier,就能让整套流程卡在离成功最近的地方。











