quokka是专用于js单文件逻辑验证的实时内联调试工具,启动需手动触发、仅支持.js/.mjs或esm配置,依赖node环境与正确babel/esm设置,且作用域不跨===分隔符。

直接用 Quokka,不是 Live Server,也不是浏览器预览插件。 Live Server 适合 HTML 页面整体刷新,Browser Preview 适合调试完整页面行为,而 JS 单文件逻辑验证、快速试值、函数调试——Quokka 是唯一能实时内联显示表达式结果的工具。
Quokka 启动失败的三个高频原因
装完插件没反应,大概率卡在这三步:
- 没手动启动:Quokka 不自动运行,必须右键编辑器空白处 →
Quokka: Start on Current File,或按Ctrl+K Q(Windows/Linux)/Cmd+K Q(macOS) - 文件类型不匹配:只支持
.js、.mjs,或package.json中声明"type": "module"的项目;.ts、.jsx、未保存的 Untitled-1 文件默认不生效 - 状态栏无标识:右下角没出现带绿色圆点的
Quokka.js,说明根本没跑起来——重启 VS Code 并确认插件已启用(设置里搜quokka看开关是否为 on)
console.log 不显示?你得用对求值方式
Quokka 默认不捕获 console.log() 输出到行尾,它只对“可求值表达式”做内联标注:
使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。
- 想看变量值:单独一行写
user.name或arr.length,结果直接浮在行尾 - 想强制输出对象/结构:用
return { a: 1, b: 2 };,整个返回值会内联显示 - 想局部求值任意位置:加
/**?*/,比如getData() /**?*/,Quokka 会在该处执行并标出结果 -
console.log()实际仍会输出,但去 VS Code 底部面板的QUOKKA OUTPUT标签页看,不是终端
Node 版本、ESM、Babel 配置错一个就报错
遇到 SyntaxError: Unexpected token 'const' 或 ReferenceError: require is not defined,本质是运行时环境不匹配:
- 默认用 VS Code 绑定的 Node(查
node -v确认),但项目可能需要 ESM 或特定版本 - 在项目根目录加
quokka.config.json显式指定:{ "node": "/usr/local/bin/node", "babel": true } -
"babel": true表示启用 Babel 转译(需项目已装@babel/core和对应 preset),否则 ES6+ 语法或 JSX 直接崩 - 若用
import但没配 ESM,加"runner": "node"并确保package.json有"type": "module"
真正容易被忽略的是:Quokka 的“内联结果”只对当前光标所在代码块生效,跨 === 分隔符的变量不共享作用域。写多段测试时,别指望上面定义的 let x = 5 在下一段还能用——要么合并,要么显式重复声明。










