code runner 一键运行 js 文件适合无输入的纯计算脚本,但因输出走 output 面板而非终端,故不支持 process.stdin 等交互操作;需交互时应配置 "code-runner.runinterminal": true。

Code Runner 一键运行 JS 文件,但别指望它处理 process.stdin
它确实能让你省掉每次敲 node filename.js 的麻烦,点击右上角 ▶ 或按 Ctrl+Alt+N 就行。但它的输出走的是“OUTPUT”面板,不是真正的终端——这意味着任何依赖 readline、prompt-sync 或 process.stdin.on('data', ...) 的交互式代码会直接卡住或报错 TypeError: process.stdin.setEncoding is not a function。
- 适合场景:纯计算、数组方法练习、函数返回值验证等无输入需求的脚本
- 不适合场景:需要用户输入、读取命令行参数(
process.argv可用,但stdin不可用)、调用子进程 - 想改用终端运行?打开
settings.json,加这一行:"code-runner.runInTerminal": true
ESLint + Prettier 组合必须开「保存即格式化」
光装插件没用,不配自动触发,你还是会手写分号混乱、引号不统一、缩进错位。关键配置只有两处:
-
Editor: Format On Save→ 必须勾选(对应 JSON 字段"editor.formatOnSave": true) -
ESLint: Enable→ 必须开启(对应"eslint.enable": true),否则红波浪线不会出现 - 如果项目根目录有
.eslintrc.js和.prettierrc,插件会自动识别;没有就先用npx eslint --init初始化一个基础配置
调试 JS 用内置 Run and Debug,别再手动切终端
按 F5 启动调试比反复切换终端快得多,而且能设断点、看变量、单步执行。第一次运行时 VS Code 会自动生成 .vscode/launch.json,里面默认是:
{
"configurations": [
{
"type": "pwa-node",
"request": "launch",
"name": "Launch Program",
"skipFiles": ["<node_internals>/**"],
"program": "${file}",
"console": "integratedTerminal"
}
]
}</node_internals>
注意 "console": "integratedTerminal" 这一项——它确保输出和输入都在集成终端里,readline 类代码能正常工作。如果删了这行或改成 "internalConsole",又会回到无法输入的老问题。
插件冲突时优先关掉「JavaScript and TypeScript Nightly」
这个插件本意是增强类型提示,但它和 ESLint、Prettier 在某些语法(比如可选链 a?.b、空值合并 a ?? b)上容易抢解析权,导致格式化失效或错误标记乱跳。遇到以下现象可直接禁用:
- 保存后代码没自动格式化,但手动按
Shift+Alt+F又可以 - 明明写了
const x = 1;,ESLint 却报'x' is assigned a value but never used(实际用了) - VS Code 右下角语言模式显示为
TypeScript React而非JavaScript,哪怕文件后缀是.js
真正需要高级类型提示时,用 .d.ts 声明文件或直接上 TypeScript,而不是靠 Nightly 插件硬凑。











