eslint与prettier必须组合使用,eslint负责逻辑错误检查,prettier专注格式化,需配置eslint-config-prettier并禁用vscode自动格式化以避免冲突。

ESLint + Prettier 组合必须装,否则 JS 项目很快会失控。 单独用任何一个都解决不了实际问题:ESLint 报错但不格式化,Prettier 格式化但不管逻辑错误。两者配合才是 JS 开发的底线配置。
ESLint 配置必须匹配项目真实规则
很多人装了 ESLint 插件却没效果,根本原因是没配 .eslintrc.js 或配置文件没被识别。VSCode 的 ESLint 插件不会自动读取全局规则,只认当前工作区根目录下的配置文件。
- 新建项目时,优先用
npx eslint --init生成配置,选「React」或「TypeScript」对应选项,别手写 - 若项目已存在
.eslintrc.cjs,确保 VSCode 设置里启用了"eslint.enable": true - 常见失效场景:项目用了
eslint-config-airbnb,但没安装对应依赖包 —— 插件会静默失败,不报错也不标红 - 遇到
Definition for rule 'xxx' was not found错误,说明规则名拼错或插件未安装(比如用了react-hooks/exhaustive-deps却没装eslint-plugin-react-hooks)
Prettier 和 ESLint 冲突时怎么破
保存后代码来回跳、引号忽单忽双、分号忽有忽无 —— 这是 Prettier 和 ESLint 规则打架的典型症状。不是谁该让步,而是得明确分工。
基于三引擎设计,从微信文章、新闻和博客网页提取干净内容,支持标题作者日期元数据,多格式和批量处理。
- 让
Prettier负责所有格式细节(缩进、换行、空格),ESLint只管逻辑和规范(未使用变量、prop 类型、函数复杂度) - 必须安装
eslint-config-prettier,并在.eslintrc.js的extends数组末尾加上'prettier' - VSCode 设置中禁用
"editor.formatOnSave": false,改用"editor.codeActionsOnSave": {"source.fixAll.eslint": true}—— 这样只走 ESLint 修复,避免双引擎并发执行 - 如果团队用
prettier-eslint-cli命令行格式化,注意它已废弃,应统一迁移到prettier+eslint --fix分步执行
JS 实时运行别只靠 console.log
写个 console.log 然后切浏览器刷新,效率低还容易漏状态。Quokka.js 是更直接的替代方案,但它对大型模块或副作用敏感,不是万能胶。
- 新建临时文件用
Cmd+K J(macOS)或Ctrl+K J(Win/Linux),粘贴片段即执行,支持const、async/await、import(需配置quokka.nodeArgs) - 避免在 Quokka 文件里写
document.getElementById—— 浏览器 DOM 不存在,会报ReferenceError - 想测 React 组件?别硬塞进 Quokka,用
Code Runner执行npx @babel/node编译后的 JS 更稳 - 调试异步链时,Quokka 默认不等
Promise,需手动加// ?注释标记等待点,否则看到的是Promise {<pending>}</pending>
代码片段别只靠默认那几个
JavaScript (ES6) code snippets 插件装了,但 clg 补全 console.log 这种基础功能早该淘汰了。真正提效的是能减少样板代码的片段。
- 高频场景优先补全:
imr→import React from 'react';,imrd→import ReactDOM from 'react-dom/client';,usf→const [state, setState] = useState(); - 避免片段冲突:多个 snippet 插件同时启用时,VSCode 会按字母顺序加载,
JavaScript Snippet Pack和ES7+ React/Redux/React-Native snippets功能重叠,留一个即可 - 自定义片段最实用:在
User Snippets里加一条logv→console.log('%o', $1);,比clg多一层对象展开能力 - 片段不生效?检查
files.associations设置 —— 如果.jsx文件没关联到javascriptreact语言模式,ES6 片段就压根不触发
插件再多,核心还是 ESLint 规则是否落地、Prettier 是否真被信任、实时反馈是否够快。很多团队卡在「装了等于没装」,问题不在插件本身,而在配置没穿透到每个开发者本地的 .vscode/settings.json 里 —— 这个文件不该被 .gitignore 掉。










