code runner 运行 js 卡顿或输出异常需改用真实终端并修正 executormap:默认在 output 面板执行,不支持 process.stdin 等交互操作;应启用 code-runner.runinterminal,清空 code-runner.terminalroot,并配置 javascript 执行命令为 node -r esbuild-register $fullfilename。

Code Runner 运行 JS 卡顿或输出异常怎么办
Code Runner 默认在 Output 面板执行 node 命令,不启动完整终端环境,导致 process.stdin、readline 等依赖交互式终端的代码直接报错或挂起。
- 临时解决:右键编辑器 → “Run Code in Terminal”,它会调用真实终端,支持用户输入
- 永久修复:在
settings.json中改写code-runner.executorMap,例如:{ "code-runner.executorMap": { "javascript": "node -r esbuild-register $fullFileName" } } - 注意:
code-runner.terminalRoot若指向错误路径(如已卸载的 WSL 发行版),会导致启动超时;建议留空或设为"." - 禁用
code-runner.clearPreviousOutput可减少高频运行时的渲染抖动
ESLint + Prettier 自动保存时拖慢 JS 编辑响应
两者在 onSave 钩子中串行执行:先 ESLint 校验、再 Prettier 格式化、最后可能触发 GitLens 刷新状态 —— 小文件也容易卡顿 300ms+。
- 优先关闭其中一项自动保存:比如只保留
editor.formatOnSave,关掉eslint.autoFixOnSave - 把
eslint.packageManager显式设为"npm"或"pnpm",避免每次自动探测耗时 - 在项目根目录加
.eslintignore,排除node_modules、dist、coverage,否则 ESLint 会扫描整个工作区 - 不要同时启用
Prettier和Beautify—— 它们监听同一事件,冲突后常导致格式错乱或保存失败
JavaScript 语言服务器(JS/TS)初始化慢影响代码补全
VSCode 内置的 typescript-language-features 服务会加载整个 node_modules 下的类型声明,尤其遇到 @types/node + @types/react + webpack 组合时,首次补全延迟可达 2–5 秒。
- 在
settings.json中关闭非必要功能:{ "javascript.suggest.autoImports": false, "javascript.preferences.includePackageJsonAutoImports": "off", "typescript.suggest.autoImports": false } - 确保项目有
jsconfig.json(JS)或tsconfig.json(TS),并用"include"明确限定作用范围,例如:["src/**/*", "test/**/*"] - 删掉
node_modules/@types中不用的包(如你不用 Vue,就rm -rf node_modules/@types/vue),类型数量每减半,TSServer 启动快约 40% - 禁用
typescript.preferences.importModuleSpecifierEnding的自动修正,它会在补全时同步解析路径,加重主线程负担
Quokka.js 实时运行 JS 时 CPU 持续飙高
Quokka 默认对每个 JS 文件开启沙箱实时求值,一旦文件含循环、定时器或大量数组操作,就会持续占用一个 CPU 核心,且不释放内存。
- 只在需要时手动启用:右键 → “Start on Current File”,而非全局开启
quokka.enableOnStartup - 在
quokka.javascript配置里加"maxNumberOfExecutions": 1,防止无限重跑 - 避开含
setInterval、while(true)、JSON.stringify(bigObj)的片段 —— Quokka 不做执行超时控制 - 若用 ESM 语法(
import),确认已配quokka.babel或quokka.esbuild,否则解析失败会反复重试
onSave 或 onType 的插件在后台悄悄叠加延迟。最有效的办法不是找“最快插件”,而是砍掉所有非当前任务必需的监听行为 —— 比如调试时关掉 ESLint,写 demo 时禁用 GitLens,跑基准测试前停用所有格式化插件。











