VSCode 默认仅支持基础 JavaScript 功能,需配置 jsconfig.json/tsconfig.json 启用 IntelliSense 等核心能力;Vue/React/Svelte 项目须安装对应语言服务插件;调试需配置 launch.json;ESLint+Prettier 自动修复需正确设置格式化优先级。

VSCode 默认就支持 JavaScript,但需手动启用关键功能
VSCode 开箱即用的 JavaScript 支持仅限基础语法高亮和简单补全,IntelliSense、Go to Definition、Find All References 等核心能力默认不激活——除非项目里有 jsconfig.json 或 tsconfig.json。没有配置文件时,VSCode 会把每个 .js 文件当作独立脚本处理,跨文件跳转和类型推导基本失效。
解决方法很简单:
- 在项目根目录新建
jsconfig.json(纯 JS 项目)或tsconfig.json(TS 或含 JSDoc 的 JS 项目) - 至少包含
"compilerOptions": { "allowJs": true, "checkJs": false }和"include": ["**/*.js"] - 保存后重启 VSCode 窗口(仅重载窗口不够,必须重启)
{
"compilerOptions": {
"allowJs": true,
"checkJs": false,
"target": "ES2020",
"module": "commonjs",
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
Vue / React / Svelte 项目必须装对应语言服务插件
VSCode 原生不识别 .vue、.jsx、.svelte 文件中的模板/样式/逻辑混合结构。只装官方 JavaScript and TypeScript Nightly 插件仍无法正确解析 标签或 defineProps 宏。
按框架选装(非可选):
立即学习“Java免费学习笔记(深入)”;
- Vue:必装
Volar(不是 Vue Language Features),禁用旧的Vetur - React:确保
JavaScript and TypeScript Nightly已启用,并在settings.json中设"javascript.preferences.jsxAttributeCompletionStyle": "braces" - Svelte:必装
Svelte for VS Code,且项目需含svelte.config.js(哪怕只导出空对象)
常见症状:点击 defineProps 无跳转、ref() 类型提示显示为 any、 内部变量不被识别——八成是插件没装对或冲突。
调试前端应用不能只靠 debugger;要配 launch.json
在代码里写 debugger 只能在浏览器 DevTools 里断点,VSCode 无法接管控制流。真正在 VSCode 里单步执行、查看闭包变量、修改运行时值,必须用 launch.json 启动调试会话。
典型配置要点:
- Chrome 调试:用
pwa-chrome类型,url指向本地服务地址(如"http://localhost:5173"),不是 HTML 文件路径 - Vite 项目需加
"runtimeArgs": ["--remote-debugging-port=9222"]并确保 Vite 启动时未占用该端口 - React/Vue CLI 项目建议用
web-browser类型而非pwa-chrome,避免因 Chrome 实例复用导致断点失效
{
"version": "0.2.0",
"configurations": [
{
"type": "pwa-chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:5173",
"webRoot": "${workspaceFolder}/src",
"sourceMapPathOverrides": {
"webpack:///src/*": "${webRoot}/*"
}
}
]
}
ESLint + Prettier 自动修复常因配置顺序翻车
很多人装了 ESLint 和 Prettier 插件,却始终无法保存时自动修复,根本原因是 VSCode 的格式化优先级没调对:它默认用 Prettier 格式化所有文件,而 ESLint 的 --fix 被跳过。
必须显式指定:
- 在
settings.json中设"editor.defaultFormatter": "dbaeumer.vscode-eslint" - 关掉
"editor.formatOnSave",改用"editor.codeActionsOnSave": { "source.fixAll.eslint": true } - 确保项目根目录有
.eslintrc.cjs且已安装eslint-plugin-prettier和prettier作为依赖
否则你会看到:保存后缩进变两格(Prettier 生效),但分号又没了(ESLint 没跑),或者 console.log 报错却不自动删——全是格式化链路断裂的表现。
jsconfig.json 和调试器的 webRoot 路径——前者决定能不能“看懂”项目结构,后者决定断点打在哪儿。










