必须配eslint-config-prettier,因其专门禁用ESLint中所有与Prettier冲突的格式规则(如quotes、semi、indent等),避免二者因职责重叠导致保存时反复格式化、光标跳动甚至无限循环。

ESLint + Prettier 组合为什么必须配 eslint-config-prettier
不加这个配置,eslint 和 prettier 会打架。比如 prettier 要求单引号,eslint 的 quotes 规则也设成单引号,看起来没问题——但 prettier 还管换行、空格、括号位置,而 eslint 的 indent、space-in-parens 等规则会和它冲突,导致保存时反复格式化、光标跳动、甚至无限循环触发。
正确做法是:
- 安装
eslint-config-prettier:运行npm install eslint-config-prettier --save-dev - 在
.eslintrc.js的extends数组末尾加上'prettier'(注意不是'prettier-eslint',那个已废弃) - 确保
prettier是唯一负责“格式”的插件,eslint只管“逻辑与风格检查”
JavaScript Booster 插件的重构建议为何有时不出现
它依赖 VSCode 的语言服务识别出可安全转换的上下文。常见失效场景包括:
- 代码不在有效的 JavaScript/TypeScript 文件中(比如
.html里内联的<script>,默认不激活) - 项目没启用
javascript.implicitProjectConfig.checkJs,导致.js文件被当作纯文本处理 - 变量被多次赋值或跨作用域引用,插件判断“转换为
const”有风险,主动隐藏选项 -
tsconfig.json或jsconfig.json缺失,VSCode 无法构建语义模型
验证方式:把光标停在 var a = 1 上,看左侧是否出现黄色灯泡;没有就先检查 jsconfig.json 是否存在,内容至少包含 {"compilerOptions": {"checkJs": true}}。
coze-loop 和通义灵码这类 AI 插件的实际使用边界
它们能快速生成函数骨架、补全 if 分支、翻译注释,但不能替代人工审查。真实项目中踩过的坑包括:
详细的 Three.js 3D 图形参考,涵盖场景设置、相机、几何体、材质、光照、动画、控制器、加载器、数学工具和调试。
- 生成的代码默认忽略项目已有类型定义(比如用
any替代Record<string, number>) - 对
import语句的路径补全常错选node_modules里的同名包,而非本地 utils - 批量优化时可能把带副作用的
console.log或localStorage.setItem当作无用代码删掉 - API 密钥若配置在用户级 settings.json,团队协作时容易漏传,导致部分人功能不可用
建议只在明确需要“生成新逻辑”时手动触发(如 Alt+P),禁用自动云端补全,避免编辑器后台持续请求拖慢响应。
为什么装了 5 个格式化插件后 Ctrl+S 反而变慢
每个插件都在监听 onWillSaveTextDocument 事件,依次执行自己的格式化逻辑。实测显示,Prettier、ESLint Fix、Beautify、JS-CSS-HTML Formatter、Auto Rename Tag 同时启用时,单次保存平均耗时从 80ms 升至 420ms,且顺序不可控。
解决路径很直接:
- 卸载所有非必需格式化插件,只留
esbenp.prettier-vscode和dbaeumer.vscode-eslint - 在 workspace settings.json 中显式关闭其他插件的 onSave 钩子:
"[javascript]": {"editor.formatOnSave": false} - 用
eslint --fix命令替代插件自动修复,把它集成进 pre-commit hook,比编辑器内实时修复更稳定
真正影响持续优化节奏的,从来不是功能多少,而是每次保存时你是否还能相信光标不会乱跳、代码不会被意外重排、错误提示是否来自同一套规则。插件越少,信号越干净。

















