node.js 必须安装,vscode 仅为编辑器;需下载 lts 版本、勾选“add to path”,终端执行 node -v 和 npm -v 成功返回版本号才算配置完成,否则后续运行、调试及插件均无法正常工作。

Node.js 是必须装的,不是可选项
VSCode 本身不运行 JavaScript,它只是编辑器。想执行 console.log 或调试函数,得靠外部运行时——node 就是那个运行时。没装 Node.js,点“运行”按钮或按 F5 都会报错:Command 'node' not found 或直接卡住。
去官网下载 LTS 版本(比如 v20.x),安装时勾选「Add to PATH」,装完在终端输 node -v 和 npm -v 能正常返回版本号才算成功。别跳过这步,否则后面所有插件和配置都白搭。
- Windows 用户注意:如果用 PowerShell 运行失败但 cmd 可以,可能是执行策略限制,临时运行
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser即可 - Mac / Linux 用户装完建议执行
npm config set prefix ~/.npm-global,避免后续全局安装插件时权限报错 - 别信“免装 Node”的方案——Live Server 只能跑浏览器环境的 JS,
fs、path这类 Node API 用不了
jsconfig.json 不是高级功能,是中大型 JS 项目的刚需
你写 import { utils } from '@/utils',结果 Ctrl+Click 点不进去?或者重命名文件后 import 路径没自动更新?大概率缺了 jsconfig.json。VSCode 对纯 JS 项目不做路径推导,全靠这个文件告诉它“@/ 指向 src/”。
根目录下新建 jsconfig.json,内容至少包含:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
},
"include": ["**/*.js"],
"exclude": ["node_modules"]
}
- 如果项目没
package.json,VSCode 会直接忽略自动类型推导,jsconfig.json是唯一启用路径映射的方式 -
tsconfig.json对纯 JS 项目无效——别复制 TypeScript 的配置糊弄自己 - 路径别写错:比如
"@/*": ["./src/*"]开头的./会导致解析失败
这三个 setting 必须手动开,否则智能提示形同虚设
默认设置对新手太保守,很多提示根本不会弹出来。打开 VSCode 设置(Ctrl+,),搜关键词并改成以下值:
-
javascript.suggest.autoImports→ 设为 true(否则输入debounce不会提示从lodash自动导入) -
javascript.preferences.includePackageJsonAutoImports→ 设为 auto(否则输axios.get不会建议自动加import axios from 'axios') -
javascript.updateImportsOnFileMove.enabled→ 设为 always(否则拖动文件到新目录,import 路径还指着老地方)
这些开关不改,装再多插件也救不了跳转失效、重命名漏改、补全不出现的问题。
插件只装三个核心,别堆砌
新手容易搜“VSCode JS 插件推荐”然后一键装十来个,结果互相冲突、CPU 占用飙升。真正影响日常编码体验的就三个:
-
ESLint:装完右键扩展 → “Extension Settings” → 勾选 Enable,再设为默认格式化工具,否则保存不校验 -
Prettier:禁用它的eslintIntegration选项,让 ESLint 统一处理格式和规则(二者共存时,Prettier 只负责美化,ESLint 负责逻辑检查) -
JavaScript and TypeScript Nightly:官方维护,比内置 JS 支持更新快,修复了大量 import 路径推导 bug;别装“Babel JavaScript”,已过时且不兼容 ES Module 语法
Live Server 和 Code Runner 属于“按需安装”:前者只在写 HTML+JS 页面时有用,后者适合快速验证小脚本,但无法调试、不支持断点,别当成主力运行方式。
复杂点往往藏在细节里:比如 jsconfig.json 里一个斜杠写错,或者 settings.json 里某个布尔值拼成字符串,都会导致整个智能提示链断裂。配完别急着写业务代码,先建个测试文件,试下跳转、自动导入、重命名,确认每一步都走通再继续。











