javascript booster能直接替换var/let,但需光标停在声明语句上且变量未被后续重赋值;若存在赋值操作,“convert to const”选项将消失,确保光标落在整行任意位置(含注释前)方可触发重构。

JavaScript Booster 能不能直接替换 var/let?
能,但必须光标停在声明语句上,且变量未被后续重赋值。它不会盲目转换 var 为 const——如果同一作用域内该变量后续有 a = 10 这类赋值,选项里“Convert to const”会直接消失。
常见错误现象:光标放在 var 行末尾或空格处,灯泡不出现;或者变量在 if 分支中被多次赋值,转换选项灰掉。
- 确保光标落在整行声明语句任意位置(包括注释前)
- 函数表达式转箭头函数时,
function关键字必须完整可见,不能被折叠 - 若项目启用了 ESLint 的
no-var规则,Booster 会优先响应 ESLint 提示而非自身重构项
Quokka.js 实时执行要不要开 Node.js 环境?
要,但不是全局安装 Node.js 就行——Quokka 默认使用 VSCode 绑定的 Node 版本,而这个版本可能和你终端里 node -v 输出的不一致。尤其当你用 nvm 或 fnm 切换 Node 版本时,Quokka 往往卡在旧版本上,导致 import 语法报错或 fetch 不可用。
使用场景:调试一个纯计算逻辑(如数组去重函数),或快速验证 Promise 链行为。
使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。
- 在 Quokka 文件顶部加注释
// node:18可强制指定 Node 版本 - 避免在 Quokka 中执行副作用操作(如修改 DOM、发请求),它不模拟浏览器环境
- 按
Ctrl+K J新建文件后,第一行写console.log(1 + 1),立刻看到右侧行尾显示2——这是最简验证方式
ESLint + Prettier 冲突时谁该让步?
Prettier 让步。它的设计哲学就是“不争论格式”,所有风格规则都应由 Prettier 接管,ESLint 只负责逻辑和潜在错误检查。一旦配置里漏了 eslint-config-prettier,就会出现保存时格式反复横跳:Prettier 把双引号变单引号,ESLint 又把它打回双引号。
参数差异:Prettier 的 printWidth 控制换行阈值,ESLint 的 max-len 是警告线——二者数值不一致会导致编辑器频繁提示。
- 必须在
extends数组里把prettier放在最后,否则前面规则会覆盖它 -
"editor.formatOnSave": true和"eslint.autoFixOnSave": true不能同时开启,后者已废弃,只留前者 - 项目根目录下
.prettierrc里写"semi": false,就别在 ESLint 里再配semi规则,否则冲突
代码片段(Snippets)为什么有时候 Tab 不触发?
因为语言模式没匹配上。VSCode 的 snippets 是按 languageId 绑定的,比如 imr 展开 import 只在 javascript 模式生效,但在 typescript 或 javascriptreact 模式下默认不工作——除非你在 snippet 配置里显式声明 "scope": "javascript,typescript,javascriptreact"。
容易踩的坑:复制了一段 JSX 到 .js 文件里,想用 rfc(React Function Component)生成组件,结果 Tab 没反应——那是因为当前文件 languageId 是 javascript,而 rfc 片段通常只注册在 javascriptreact 下。
- 按
Ctrl+Shift+P输入 “Change Language Mode”,确认右下角显示的是JavaScript React而非JavaScript - 自定义 snippet 时,在
package.json的contributes.snippets里务必填全所需 languageId - 插件如
JavaScript (ES6) code snippets不支持 Vue 单文件组件的<script></script>块,需额外装Vue VS Code Snippets










