ESLint
Awesome ESLint
¶
> 很棒的 ESLint 配置、插件等列表.
如果您想贡献,请阅读 contribution guidelines.
Configs¶
Configs by Well-Known Companies/Organizations¶
- Airbnb - 可共享配置 Airbnb's style guide.
- Airbnb-babel - Airbnb 的 ESLint 配置与 Babel 支持.
- Airbnb-typescript - Airbnb 的 ESLint 配置,支持 TypeScript.
- Alloy - 适用于 React/Vue/TypeScript 项目的渐进式 ESLint 配置.
- ESLint - 包含用于 ESLint 团队维护的项目的 ESLint 配置.
- Facebook - Facebook 风格指南的可共享配置.
- Feedzai - Feedzai 针对 JavaScript/React 项目的可共享配置.
- React App - 可共享配置 React 项目.
- Shopify - 可共享配置 Shopify's style guide.
- Wikimedia - 可共享配置 Wikimedia's style guide,使用者 MediaWiki.
Other Prominent Configs (100 stars or so)¶
- Auto - 根据项目的依赖关系自动配置 ESLint.
- Canonical - 可共享配置 Canonical style guide.
- Standard - JavaScript 的可共享配置 Standard Style.
- XO - 可共享配置 XO.
Other Configs¶
- Adjunct - 与主要 ESLint 配置一起使用的合理插件集合.
- Ash-Nazg - 一种配置即可统治一切!
- Cecilia - 很棒的项目的 ESLint 配置.
- ES - 非常严格的代码的可共享配置.
- Hardcore - 最严格(但实用)的 ESLint 配置.
- Problems - 可共享的配置,仅捕获实际问题,并且不强制执行风格偏好.
- Supermind - Supermind 风格的可共享配置.
- Sheriff - 全面且高度固执的 Eslint 配置. 面向打字稿.
Preconfigured Configs with ESLint Set up¶
- Node.js Standard Style - Node.js 核心配置.
- prettier-standard - 更漂亮的格式化程序,允许自定义 eslint 规则.
- Standard - JavaScript 标准样式.
- Superlint - JavaScript Supermind 风格.
- XO - JavaScript 幸福风格 linter ❤️.
- Healthier - Standard 的代码风格不可知版本,Prettier 的完美伴侣.
Plugins¶
Code Quality¶
- GitHub - 其他. 来自 GitHub 的规则.
- SonarJS - 检测错误和可疑模式的规则.
- Unicorn - 各种很棒的 ESLint 规则.
- @mysticatea/eslint-plugin - 其他. 规则.
- @brettz9/eslint-plugin - 其他. 规则. 没有个人配置的“@mysticatea”.
Compatibility¶
- Compat - Lint 所用 API 的浏览器兼容性(caniuse 作为 ESLint 插件).
- ecmascript-compat - 禁用您的浏览器列表目标不支持的 ECMAScript 语言功能.
- es - 禁用特定 ECMAScript 语言版本或个别功能.
- es5 - ES5 用户的 ESLint 插件(禁止 ES2015+ 使用).
- ie11 - 检测 IE11 中不支持的 ES6 功能.
CSS in JS¶
- CSS-modules - Lint css 模块的未定义或未使用的规则.
- Emotion - ESLint 情感规则.
- 样式组件
- Better Styled Components - 自动修复 ESlint 样式组件的规则.
- styled-components-a11y - A11y 用于样式组件.
Deprecation¶
- deprecate - 将函数或模块标记为已弃用,并在使用它们时获取 lint 消息.
- deprecation - 识别使用
jsdoc
@deprecated
函数. - disable - 使用文件路径模式和内联注释禁用指定插件.
Embedded¶
Frameworks¶
- Angular - Angular (v2+) 的 Linting 规则.
- AngularJS - 遵守的 Linting 规则 John Papa's AngularJS Styleguide.
- Astro - 插件 Astro components.
- Backbone - Backbone 的 Linting 规则.
- Custom Elements - GitHub 针对自定义元素的规则.
- Ember - Ember 的 Linting 规则.
- Hapi - hapi 的 Linting 规则.
- Meteor - ESLint 的 Meteor 特定 linting 规则.
- 反应
- JSX a11y - JSX 元素的可访问性规则.
- React - React 和 JSX 的 Linting 规则.
- React Hooks - React Hooks 的 Linting 规则.
- React Native - React Native 特定的 linting 规则.
- React-Redux - React-Redux 特定的 linting 规则.
- Solid - Solid 和 JSX 的 Linting 规则.
- Svelte - Svelte v3 组件的 Linting 规则.
- 见过
- VueJS -VueJS 插件.
- VueJS Scoped CSS - VueJS 中作用域 CSS 的插件.
Languages and Environments¶
- AssemblyScript - 对 TypeScript 实施限制以实现 AssemblyScript 合规性的规则.
- Babel - 添加内置规则的替换以包含 Babel 功能.
- Coffee - 使用 Coffeelint 库中的可选 linting 规则启用对 CoffeeScript 文件的 linting.
- eslint-plugin-eslint-plugin - 用于检查 ESLint 插件的 ESLint 插件.
- 流动
- Flow - 流类型的 linting 规则.
- Flow Errors - 作为 ESLint 插件运行 Flow.
- HTML - HTML 的 ESLint 插件.
- JSON
- JSON - 检查您的 JSON 文件.
- JSON, package.json - Lint、格式化和自动修复您的 JSON 文件. 对你的“package.json”进行排序.
- JSON with Comments - 用于 JSON、JSONC 和 JSON5 的 ESLint 插件.
- JSON Schema - 使用 JSON 模式验证器验证 JavaScript、JSON、YAML 和 TOML 中定义的数据.
- MDX - MDX 的 ESLint 解析器/插件.
- Node - Node.js 的附加 ESLint 规则.
- SQL - ESLint 的 SQL linting 规则.
- TOML - TOML 的 ESLint 插件.
- TypeScript - TypeScript 的 Linting 规则.
- YAML - YAML 的 ESLint 插件.
Libraries¶
- GraphQL
- dotansimha/graphql-eslint - 验证、美化和检查您的 GraphQL 操作和 GraphQL 架构以获得最佳实践.
- apollostack/eslint-plugin-graphql - 根据架构检查 GraphQL 查询字符串.
- TypeGraphQL - TypeGraphQL 的 Linting 规则,旨在发现常见错误.
- jQuery - jQuery 的 Linting 规则,包括已弃用功能的版本化配置.
- JSDoc - JSDoc 注释的 Linting 规则(包括
@example
中的 JavaScript). 洛达什 - Lodash - Lodash 特定的 linting 规则.
- Lodash/fp - Lodash/fp 特定的 linting 规则.
- Lodash template - Lodash 模板/下划线模板插件.
- Microtemplates (用于 Lodash 和 Underscore.js)
- Mongodb - Mongodb 原生 Node.js 驱动程序 linting 规则.
- Ramda - Ramda 特定的 linting 规则.
- RequireJS - RequireJS 的 Linting 规则.
- Tailwind CSS - Tailwind CSS 类名的 Linting 规则.
Misc¶
- Diff - 仅在更改的行上运行 ESLint. 还支持CI!
- Misc - 各种规则,包括创建自定义检查和包装(修改)第三方规则的规则.
- Notice - eslint 规则可以检查文件顶部并修复它们!
- Only-Error - 将所有规则转换为错误.
- Only-Warn - 将所有规则转换为警告.
- PutOut - an ESLint plugin integrates putout linter 到 ESLint 中.
- TypeLint - 引入基于现有架构(Swagger、Redux)的类型和对对象属性的 linting 访问,防止“未定义”错误.
- Woke - 帮助捕获不敏感的单词,促进包容性代码库.
Practices and Specific ES Features¶
- array-func - 使用 es2015 数组方法和函数时避免冗余.
- arrow functions - ESLint 规则确保正确的箭头函数定义.
- boundaries - 确保项目中检查文件结构和依赖性的元素尊重您的架构边界.
- ESLint Comments - 有关 ESLint 指令注释的最佳实践(
/*eslint-disable*/
等). - eslint-plugin-hexagonal-architecture - 一个可以帮助您实施六边形架构最佳实践的插件.
- eslint-plugin-write-good-comments - 在评论中强化良好的写作风格.
- fp - 函数式编程的 ESLint 规则.
- functional - ESLint 规则在 JavaScript 和 TypeScript 中禁用突变并提升 fp.
- Immutable - 禁用 JavaScript 中的所有突变.
- import - ES2015+ 导入/导出语法的 Linting,并防止文件路径和导入名称拼写错误的问题.
- new-with-error - 要求使用“new”抛出错误.
- no-argument-spread - 针对“Math.max(...args)”等可能导致大型数组堆栈溢出的表达式进行 lints.
- no-comments - 如果不使用捆绑器,则可以防止将注释泄漏到生产中,并阻止开发人员注释旧代码行.
- no-constructor-bind - 通过报告“this”与“bind”的使用或在构造函数中设置状态来鼓励使用类属性.
- no-inferred-method-name - ESLint 的自定义规则,用于检查对象文字中推断的方法名称.
- no-loops - 都2019年了,你还在用循环吗?
- no-restricted-syntax - 在消息中显示查询语法的内容.
- no-use-extend-native - 防止使用扩展的本机对象.
- Promise - 使用承诺时的最佳实践.
- pure - 强制执行纯函数(无副作用).
- RegExp - ESLint 插件,用于查找正则表达式错误和样式指南违规.
- sort-keys-fix - 添加 ESLint
sort-keys
规则的修复程序. - this - 编写纯函数,不允许使用“this”.
- toplevel - An eslint plugin for disallow side effect at module toplevel.
Performance¶
- DOM
- Optimize Regex - 优化正则表达式文字.
- 性能标准 plugin 和 Config
Security¶
- no-secrets - 一个 eslint 插件,用于检测潜在的秘密/凭证.
- no-unsanitized - 检查“innerHTML”、“outerHTML”等.
- pii - 检查并强制执行代码的 PII 合规性. 即注释或字符串中没有电子邮件地址、出生日期、IP 地址或电话号码.
- 扫描JS config 和 plugin - 安全相关规则.
- Security - 节点安全的 ESLint 规则.
- xss - 尝试在代码库最终投入生产之前检测代码库中的 XSS 问题.
Style¶
- const case - 强制常量原始文字大写.
- editorconfig - 从中得出规则
.editorconfig
. - filenames - 确保 JavaScript 文件的文件名一致.
- Simple import sort - 轻松自动修复导入排序.
- perfectionist sorting - 对对象、导入、TypeScript 类型、枚举、JSX 属性等进行排序.
- Switch case - ESLint 的特定于 switch-case 的 linting 规则.
- padding - 允许/禁止语句之间的填充.
Testing Tools¶
- AVA - AVA 的 Linting 规则.
- 柴
- expect practices
- with unused expressions
- permitted keywords
- Cucumber - Cucumber 的 Linting 规则.
- Cypress - Cypress 的 Linting 规则.
- Jasmine - Jasmine 的 Linting 规则.
- 是
- Enforcing practices - Jest 的 Linting 规则.
- Enforcing consistent formatting - Jest 的格式规则.
- Jest-async - Jest 的异步 linting 规则.
- Jest-DOM - Is-HOME 的 Linting 规则.
- 摩卡
- Enforcing practices - Mocha 的 Linting 规则.
- Enforcing manageability
- Playwright - Playwright 的 Linting 规则.
- QUnit - QUnit 的 Linting 规则.
- TestCafe-Community - TestCafe linting 规则与 env 全局变量(fork from TestCafe globals).
- Testing Library - 测试库的 Linting 规则.
Parsers¶
- babel-eslint-parser - @babel/eslint-parser 允许您使用出色的 ESLint 来检查所有有效的 Babel 代码.
- TypeScript - 生成与 ESLint 兼容的输出的 TypeScript 解析器.
- BrightScript - 用于 Roku 开发的 BrightScript 插件. 包括解析器和规则.
- GraphQL - GraphQL AST 的解析器. 包括解析器、插件、处理器(对于非 graphql 文件)和规则.
Formatters¶
- html - 增强的 ESLint 格式化程序
- badger - 制作基于 SVG 的徽章来总结 ESLint 结果(例如,用于自述文件).
- git-log - ESLint 格式化程序,具有 Git 作者、日期和哈希.
- github - 直接在拉取请求中查看 ESLint 错误和警告.
- gitlab - 在 GitLab 代码质量结果中输出 ESLint 结果.
- mo - 好看的 ESLint 格式化程序,也带来愉快的阅读体验.
- SARIF - 生成 SARIF 格式的结果,以便可以将其导入到 GitHub Advanced Security 等工具中.
- summary-chart - 将 ESLint 输出格式化为条形图.
Globals¶
- confusing-browser-globals - 浏览器全局变量的精选列表,这些全局变量通常会引起混乱,并且不建议在没有显式窗口的情况下使用. 预选赛.
- ES and browser globals (最初来自 ESLint)
- chai globals
- TestCafe globals - TestCafe 的“fixture”和“test”全局变量.
Tools¶
- eslint-define-config - 为
.eslintrc.js
文件提供defineConfig
函数. - es-file-traverse - 根据输入文件或多个文件中的导入和/或需求,仅获取正在使用的文件的列表; 可传递给 ESLint 的列表. 预期的特别是. 用于检查 3rd 方依赖项.
- eslint-find-rules - 查找自定义配置中没有的内置 ESLint 规则.
- eslint-index - 用于查找和管理 ESLint 配置文件中的规则的 CLI.
- eslint-interactive - 用于修复大量 ESLint 错误的 CLI 工具.
- eslint-multiplexer - 复用 eslint 结果并合并常见文件的结果.
- eslint-nibble - 通过一次修复一个规则来轻松进入 ESLint.
- eslint-rule-documentation - 查找 ESLint 规则文档的 URL.
- eslint-watch - 使用监视模式运行 ESLint.
- codacy-eslint - Docker 用于 Codacy 运行 ESLint.
- esprint - 跨多个线程运行 ESLint.
- generator-eslint - 生成 ESLint 插件和规则 Yeoman.
- editor-info - 检测是否在编辑器/IDE 中以及哪种类型,从而允许相应地调整 ESLint 配置.
- eslint-dashboard - 位于您终端中的交互式 ESLint 工作流程.
- eslint-remote-tester - CLI 工具,用于同时针对多个存储库测试给定的 ESlint 规则.
Developing for ESLint¶
- eslint-doc-generator - 为您的 ESLint 插件生成文档,包括自述文件的规则表和规则文档的标头.
- eslint-docgen - 从规则元数据和测试用例自动生成 ESLint 插件文档.
Tutorials¶
- Creating an ESLint Plugin - 文章介绍了 ESLint 规则和插件的创建.
- Lint Like It's 2015 - 文章介绍了使用 ESLint 的好处.
- Linting JavaScript with ESLint - 显示 ESLint 设置和基础知识的视频.
- Linting React JSX with ESLint (in ES6) - 视频展示如何将 React 和 JSX 与 ESLint 结合使用.
- Plugin Module with Mixins - 关于如何将插件编写为包含模块化 mixin 配置的节点模块的文章.
- Writing a rule to spot undeclared props hiding in plain sight - 关于创建需要范围分析的规则的文章.
Installation and Setup¶
- Lintier - CLI 可在 TypeScript 项目中快速构建 ESLint 和 Prettier 设置.