javascript booster 通过 ast 分析实现安全重构,光标处显示上下文敏感的黄色灯泡选项,支持一键转换 var→const、function→arrow 等,保留格式且不依赖 eslint 或 babel。

用 JavaScript Booster 做安全重构,别手动改
JS 代码越写越多,手动调整 var→const、function→arrow function、if-else→?:,不仅慢,还容易漏掉作用域或副作用。JavaScript Booster 插件把这类重构变成“点一下就完事”的安全操作。
它不是简单字符串替换,而是基于 AST 分析:光标停在某行,左侧出现黄色灯泡(light bulb),点开后只显示当前上下文合法的重构选项。比如你写的是 let x = 1,就不会出现“Convert to const”以外的无关项;写的是带副作用的 if 块,它也不会推荐 ?: 替换。
- 安装后无需额外配置,打开 JS 文件即生效
- 不依赖项目级 ESLint 或 Babel,纯编辑器层轻量处理
- 所有转换都保留原有缩进和空行,不触发 Prettier 二次格式化冲突
- 慎用于含
arguments、this动态绑定或try/catch的函数——插件会跳过这些,但你得心里有数
用 Code Runner 快速验证片段,别切终端
写一段工具函数、数组方法练习或类型判断逻辑,反复保存 → 切终端 → node xxx.js → 查结果,节奏全断。Code Runner 把这个流程压成一次点击或一个快捷键。
它默认在 OUTPUT 面板运行,好处是干净无干扰;缺点是不支持 process.stdin 类交互式输入。对绝大多数 JS 练习、工具脚本、数据处理逻辑完全够用。
使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。
- 快捷键
Ctrl+Alt+N(Windows/Linux)或Cmd+Alt+N(Mac)直接运行当前文件 - 右上角 ▶ 按钮只对已保存文件有效,未保存时会先自动保存再运行
- 若需调试变量或断点,别硬扛——立刻切到 VSCode 内置的 Run and Debug(
F5),它走的是真正的 Node.js 调试器 - 避免在大型项目根目录下乱点运行,它可能误执行
node_modules/.bin下同名脚本
用自定义 Snippet 管理高频结构,别复制粘贴
“写个 console.log 带变量名”“声明一个带解构参数的箭头函数”“生成一个带 try/catch 的异步 wrapper”——这些结构重复率高、手敲易错、又不够通用到要写成 npm 包。VSCode 用户代码片段(User Snippets)就是干这个的。
它比插件更底层、更可控:不联网、不更新、不冲突,且能跨项目复用。关键是占位符($1、$2)支持 Tab 导航,填完第一个变量按 Tab 就跳到下一个,不用鼠标点。
- 通过
Ctrl+Shift+P→ 输入“Configure User Snippets” → 选javascript.json - 例如定义
logv片段:"body": ["console.log('$1:', $1);"],输完logv+Tab,光标自动停在$1处让你填变量名 - 不要把整个组件模板塞进去——那是 Volar 或 React 插件的事;Snippet 只管“语言级原子结构”
- 团队共用时,把
snippets/javascript.json提交到仓库,而非靠每个人手动配
ESLint + Prettier 配合要分清谁管什么
很多人把 ESLint 当格式化工具用,结果 quotes、semi 规则和 Prettier 冲突,保存时来回打架。核心原则就一条:ESLint 只管“对错”,Prettier 只管“怎么排版”。
比如 no-unused-vars 是 ESLint 的事,singleQuote: true 是 Prettier 的事。一旦混用,.eslintrc.js 里就得加 prettier 插件来关掉重复规则,徒增维护成本。
- VSCode 设置里明确指定默认格式化工具:
"editor.defaultFormatter": "esbenp.prettier-vscode" -
"editor.formatOnSave": true开启,但"editor.formatOnType": false关闭——边写边格式化反而打断思路 - 项目根目录必须有
.prettierrc,哪怕只有{},否则 Prettier 会 fallback 到内置默认值,和团队不一致 - ESLint 的
eslint.validate字段别漏掉javascriptreact,否则 JSX 里的错误不标红










