Generated by GPT-5-mini| eslint | |
|---|---|
![]() Nicholas C. Zakas.
The original uploader was Golopotw at English Wikipedia..
La · Public domain · source | |
| Name | eslint |
| Developer | Nicholas C. Zakas et al. |
| Released | 2013 |
| Programming language | JavaScript |
| Operating system | Cross-platform |
| License | MIT License |
eslint
ESLint is a pluggable linting utility for JavaScript and related languages designed to analyze code quality and enforce style conventions. It was created to provide configurable static analysis, support for modern syntax extensions, and an extensible plugin architecture used across libraries, frameworks, and tooling ecosystems. Major contributors and adopters span individual maintainers, corporate engineering teams, open-source foundations, and academic tooling projects.
ESLint was initiated by Nicholas C. Zakas in response to limitations in earlier linters and the rise of new JavaScript syntaxes. Early development interacted with projects and standards such as the ECMAScript specification, efforts in the Node.js community, and tooling initiatives from organizations including Mozilla, Yahoo, and Microsoft. Over time maintainers collaborated with contributors from prominent projects and foundations to support evolving language features introduced by TC39, integrate parsers used by projects like Babel and TypeScript, and align with module systems used by projects such as webpack and Rollup. Governance shifts and corporate sponsorships influenced roadmap decisions similarly to patterns seen in other major infrastructure tools maintained by entities like the Linux Foundation and the Apache Software Foundation.
ESLint provides pluggable architecture, rule-based analysis, and support for AST-driven checks through parsers such as Espree and plug-ins that adapt to transpilation toolchains like Babel and TypeScript. It supports autofix capabilities that surgically rewrite source via token-aware transforms, integrates source mapping to maintain accuracy when used with transpilers, and exposes a Node.js API for programmatic usage inside build tools and editor extensions. The core offers configurable environments, global variables lists informed by runtime contexts like Node.js and browsers, and performance optimizations used by large monorepos and continuous integration systems. The project’s extensibility model parallels plugin ecosystems found in package managers and CI/CD platforms maintained by organizations including GitHub, GitLab, and Bitbucket.
Configuration in ESLint is file-based and supports formats like JSON, YAML, and JavaScript, enabling hierarchical overrides and shareable configurations published by teams and vendors. Rules are categorized by problem type and severity; popular shareable configs and style guides were authored by projects and organizations such as Airbnb, Google, and StandardJS, while individual rule sets have been developed by companies including Facebook and Microsoft. Rules can be customized, disabled, or extended; custom rule authors often reference AST shapes defined by ESTree and transform code using tools created by maintainers of Babel and TypeScript. Integration with formatter tooling from projects like Prettier is common to separate style concerns from code-quality checks. Configuration also interoperates with package managers and monorepo tools like npm, Yarn, and Lerna to determine project boundaries and ignore patterns.
The ecosystem includes editor integrations for environments such as Visual Studio Code, JetBrains IDEs, Sublime Text, and Atom, plus build and automation adapters for tools like Gulp, Grunt, webpack, and Rollup. Continuous integration providers and platforms including Travis CI, CircleCI, Azure Pipelines, and GitHub Actions routinely run linting tasks as part of quality gates. Popular frameworks and libraries—React, Angular, Vue.js, and Svelte—provide dedicated plugin packages to enforce framework-specific practices, and language superset tooling like TypeScript supplies parsers and type-aware rules. Third-party services for code review, code scanning, and dependency management—such as Dependabot, SonarQube, and Snyk—often incorporate lint results into dashboards maintained by engineering teams at companies like Google and Amazon.
Typical usage involves installation via package managers like npm and Yarn, configuration via project files, and invocation through command-line interfaces or editor integrations. Common example workflows include pre-commit hooks configured with tools such as Husky and lint-staged, automation inside CI orchestrated by Jenkins or GitHub Actions, and integration with code-formatting tools like Prettier to run in tandem. Example rule sets and plugin chains demonstrate enforcement of patterns promoted by community style guides from Airbnb and Google, and example integrations show how to combine TypeScript parsing with framework plugins for React or Vue.js. Large-scale codebases adopt incremental application strategies—run linting on changed files using tooling from Nx or Rush—to reduce developer friction while enforcing consistency.
Adoption spans open-source projects, enterprise codebases, and educational materials; notable adopters include major web platform projects, front-end frameworks, and corporate SDKs maintained by firms like Netflix, LinkedIn, and Microsoft. Its influence is visible in curriculum and tutorials produced by community educators and conferences focused on web development, where linting practices are taught alongside build tooling and testing frameworks such as Jest and Mocha. The tool’s plugin model has fostered third-party ecosystems for accessibility, security, and performance linting, contributing to automated quality checks in platforms run by cloud providers and continuous delivery services. Over time, ESLint contributed to standardizing JavaScript code quality practices similarly to how linters shaped workflows in languages supported by projects like the Python Software Foundation and the Ruby community.
Category:JavaScript tools