VSCode不运行JavaScript项目,依赖Node.js环境;需确保Node.js路径正确、配置launch.json、初始化package.json并规范ESM导入。

VSCode 本身不“运行” JavaScript 项目,它靠外部环境(如 Node.js)执行代码;配置的关键是让编辑器正确识别环境、调试入口和依赖关系,而不是装一堆插件凑热闹。
确认 Node.js 已安装且被 VSCode 识别
很多报错(比如 ReferenceError: require is not defined 或 command 'node' not found)其实只是 VSCode 找不到 node 命令。不是插件问题,是路径没对齐。
- 终端里运行
which node(macOS/Linux)或where node(Windows),确认输出有效路径 - VSCode 终端(
Ctrl+`)里也执行一遍,如果报错,说明 VSCode 启动时没加载 shell 的 PATH —— 关闭 VSCode,从终端用code .启动,而非桌面图标 - 检查
node -v和npm -v能正常输出,版本建议 ≥18.0(避免旧版fetch/glob兼容问题)
不用插件也能直接运行单个 JS 文件
VSCode 内置的 Run Code 功能(来自 Code Runner 扩展)常被误认为必需,其实原生终端一行命令更可控,也避开了插件对 import / ESM 的各种魔改逻辑。
- 打开一个
index.js,右键 → “在终端中运行”,或按Ctrl+Shift+P输入Terminal: Run Selected Text in Active Terminal - 更推荐:终端里手动执行
node index.js—— 这样你能立刻看到错误堆栈是否来自代码本身,还是插件注入的 wrapper - 如果遇到
Cannot use import statement outside a module,说明文件被当成了 CommonJS,加"type": "module"到package.json,或改用node --input-type=module -e "import('./index.js')"
调试时必须配 .vscode/launch.json
点绿色三角形启动调试前,VSCode 需要知道从哪开始、带什么参数、要不要监听源码映射——这些全靠 launch.json 定义,不是靠“自动检测”。
立即学习“Java免费学习笔记(深入)”;
- 项目根目录建
.vscode/launch.json,内容至少包含:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch index.js",
"skipFiles": ["/**"],
"program": "${workspaceFolder}/index.js",
"console": "integratedTerminal"
}
]
}
program 必须写相对路径(${workspaceFolder}/xxx),不能写绝对路径或 ./xxx,否则调试器找不到文件program 指向编译后文件(如 dist/main.js),并确保 sourceMaps 开启且路径正确依赖管理别绕过 package.json
有人把 JS 文件丢进文件夹就点运行,结果 require('lodash') 报错 —— 不是因为 VSCode 配置漏了,是因为根本没装包,也没声明依赖。
- 哪怕只跑一个脚本,也要初始化:
npm init -y→npm install lodash→ 在代码里用const _ = require('lodash') - 避免全局安装(
npm install -g xxx)再 require,VSCode 调试时默认不读全局node_modules - 如果项目用 ESM,
import语句中的路径必须带扩展名(import { foo } from './utils.js'),Node.js 不再自动补.js
最常被跳过的其实是 package.json 的 type 字段和 launch.json 的 program 路径写法——这两个地方一错,其他所有配置都白搭。










