CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
前端工具链入门/课时/ESLint
RawBlame
课时目录12 节

前端工具链入门

  1. 01前端工具链概览
  2. 02npm 与 package.json
  3. 03Yarn 与 pnpm
  4. 04模块打包器
  5. 05Vite / esbuild / SWC
  6. 06Rollup 与 Parcel
  7. 07ESLint
  8. 08Prettier 与 Biome
  9. 09类型检查
  10. 10部署平台
  11. 11Bun 与 Rolldown
  12. 12综合练习

ESLint

eslint 节点;规则与 flat config。

25 分钟

ESLint

ESLint 是 JavaScript/TypeScript 生态最主流的 静态分析(Lint) 工具——在运行前发现 bug 模式、统一风格、 enforce 最佳实践。团队越大,CI 里 eslint 越不可或缺。

学习目标

  • 理解 Lint 与格式化(Prettier)的分工
  • 会跑 eslint . 并读懂常见报错
  • 了解 flat config(eslint.config.js)新格式

ESLint 做什么

源码 .ts / .tsx
    → AST 解析
    → 规则 plugins(react、typescript、import 等)
    → 报告 error / warning
    → 可选 --fix 自动修复
类型示例
错误模式no-unused-vars、hooks 依赖数组
风格引号、分号(可与 Prettier 分工)
框架规则react-hooks/exhaustive-deps

与 Prettier 分工

  • ESLint:逻辑与可维护性(见 ft-prettier)
  • Prettier:纯排版(缩进、换行)
  • 可用 eslint-config-prettier 关掉冲突规则

flat config 示例

ESLint 9+ 推荐 flat config:

// eslint.config.js
import js from "@eslint/js";
import tseslint from "typescript-eslint";
import reactHooks from "eslint-plugin-react-hooks";

export default [
  js.configs.recommended,
  ...tseslint.configs.recommended,
  {
    plugins: { "react-hooks": reactHooks },
    rules: { ...reactHooks.configs.recommended.rules },
  },
];

老项目可能仍是 .eslintrc.cjs——迁移时对照官方指南,不要两套并存。

在 React / Next 项目中

  • react-essentials:eslint-plugin-react-hooks 防止 Hooks 误用
  • nextjs-essentials:eslint-config-next 含 Next 特有规则(如 <Image> 用法)
  • typescript-essentials:typescript-eslint 把类型感知规则接进 ESLint

CI 集成

npm run lint   # package.json scripts
# CI: lint 失败则 block merge

与 html-css-essentials 单文件相比,工程化项目 是常态。

PR 必过 lint

练习

  • 故意写 useEffect 缺依赖数组,看 ESLint 是否报警
  • 跑 eslint --fix 观察哪些规则可自动修
  • 读 platform 或模板仓库的 ESLint 配置文件结构

小结

ESLint 在提交前抓 bug 与坏模式;flat config 是新标准。 下一课看 Prettier 与 Biome 如何负责格式化与一体化工具链。

加载本节练习…
← 上一课Rollup 与 Parcel下一课 →Prettier 与 Biome