eslint-plugin-import

ESLint rules that validate ES module import/export syntax and catch broken paths before they hit your build.

Tool
npm
v2.32.0
5,956 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
62 /100 Good
Development Activity 32
Maintenance 40
Community 76
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
82 /100 Excellent
Architecture 82
Code Quality 88
Innovation 68
Learning Curve 90

eslint-plugin-import extends ESLint with a comprehensive rule set purpose-built for ES2015+ module syntax. Instead of waiting for a bundler or runtime error, it statically resolves every import and export in a codebase to catch unresolved file paths, misspelled or missing named exports, circular dependency chains, and inconsistent module-system usage (mixing CommonJS require with ES import) directly in the editor or CI.

The plugin ships 46 rules organized into helpful-warnings, module-systems, static-analysis, and style-guide categories, plus ready-made configs (recommended, errors, warnings, react, react-native, electron, typescript) for both legacy .eslintrc and modern flat-config setups. It underpins the import/order, no-unresolved, and no-cycle rules relied on by the vast majority of JavaScript and TypeScript projects that enforce import hygiene.

What You Get

  • 46 rules spanning helpful warnings, module-system enforcement, static analysis, and style-guide conventions
  • Both legacy .eslintrc configs and modern ESLint 9 flat configs, including recommended/errors/warnings presets
  • Framework-specific configs for React, React Native, Electron, and TypeScript projects
  • A pluggable module-resolver system (Node, Webpack, TypeScript) so import resolution matches your actual build setup
  • Static export-map analysis that understands re-exports, namespace imports, and cross-file export tracking

Common Use Cases

  • Catching typo’d or renamed import paths and missing named exports at lint time instead of at runtime
  • Enforcing a consistent, alphabetized or grouped import order across a large team codebase via import/order
  • Detecting circular dependency chains between modules with import/no-cycle before they cause subtle bugs
  • Preventing accidental mixing of CommonJS require() and ES import syntax in the same codebase
  • Flagging unused exports across a project with no-unused-modules during dead-code cleanup

Under The Hood

Architecture

The plugin’s core is an export-resolution engine, not the rules themselves: src/exportMap/builder.js and src/exportMap/index.js construct an ExportMap per source file, walking export/import declarations, re-exports (export * from), and namespace exports into a cached graph of namespace, reexports, dependencies, and imports maps. Rules like no-cycle and named consume this graph rather than re-parsing files themselves, and a strongly-connected-components pass (src/scc.js) reduces cycle-detection from exponential re-traversal to near-linear graph analysis. Each of the 46 rules under src/rules/ is a self-contained ESLint rule module registered centrally in src/index.js, which also assembles the legacy and flat-config bundles (configs/flatConfigs) so the same rule implementations back both config formats.

Tech Stack

Written in ES2015+ JavaScript and compiled with Babel (babel-cli, babel-preset-airbnb) to a lib/ output consumed via the main/types fields in package.json. Module resolution is delegated to separate eslint-import-resolver-node/-webpack/-typescript packages and shared through eslint-module-utils, keeping the resolver strategy swappable per project. Peer-dependency support spans ESLint 2 through 10, and dependencies like is-core-module, tsconfig-paths, and semver handle Node builtin detection, TS path-mapping, and version-range peer checks respectively.

Code Quality

Testing is extensive: 343 test files under tests/src mirror the src/ rule and core-module structure one-to-one, run via Mocha with nyc coverage instrumentation and Babel-registered ES module support. posttest chains ESLint self-linting, an eslint-doc-generator consistency check, and markdownlint across all docs, and CI runs a matrix across multiple ESLint major versions (eslint-8+.yml, eslint-old.yml) plus a native-WSL workflow — unusually thorough version-compatibility coverage for an ESLint plugin.

API Design Each of the 46 rules is documented individually under docs/rules/, auto-generated into the README’s category tables (Helpful warnings, Module systems, Static analysis, Style guide) with emoji badges showing which preset config enables, warns, or disables it, and whether it’s auto-fixable. Rules are consumed the standard ESLint way (add to plugins/extends, no custom API surface to learn), and three maintained example projects (examples/legacy, examples/flat, examples/v9) demonstrate working configurations for each ESLint config generation, lowering the setup barrier for the plugin’s actual audience: package.json editors, not application code callers.

Used by 116 apps in this directory

Rust
76%
GPL 3.0

Pipedash

Developer Tools · Devops · Monitoring

1,103

One dashboard to monitor, trigger, and cancel CI/CD pipelines across GitHub, GitLab, Jenkins, Tekton, Buildkite, ArgoCD, and Bitbucket — desktop, Docker, or iOS.

View details
80
Repo Health
64
Technical
73
Dependency
Built with
Rust 76%
TypeScript 24%
Updated 6 days ago
TypeScript
90%
MIT

Plasmic

CMS · Design Tools · Low Code Platforms

7,125

The open-source visual builder that lets teams design React apps and websites with drag-and-drop while integrating seamlessly with your codebase.

View details
81
Repo Health
78
Technical
64
Dependency
Built with
TypeScript 90%
Updated 1 weeks ago
Elixir
80%
AGPL 3.0

Plausible Analytics

Analytics

29,631

Open-source, cookie-free web analytics that respects visitor privacy and replaces Google Analytics.

View details
88
Repo Health
84
Technical
71
Dependency
Built with
Elixir 80%
TypeScript 15%
Updated 1 weeks ago
TypeScript
51%
ZLIB

Portainer

Devops

38,707

A lightweight, open-source web UI that puts Docker, Kubernetes, and Podman management within reach of any team—no CLI expertise required.

View details
93
Repo Health
79
Technical
65
Dependency
Built with
TypeScript 51%
Go 38%
Updated 1 weeks ago
TypeScript
81%
AGPL 3.0

Postiz

Automation · Social Media

37,683

The agentic social media scheduler — AI-powered content creation, 33-platform posting, and team workflows, all self-hosted.

View details
92
Repo Health
70
Technical
63
Dependency
Built with
TypeScript 81%
JavaScript 11%
Updated 1 weeks ago
JavaScript
50%
AGPL 3.0

QRev

AI Agents · CRM

364

Open source AI-first sales platform that replaces Salesforce with autonomous agents handling prospecting, outreach, and lead management at scale.

View details
39
Repo Health
68
Technical
64
Dependency
Built with
JavaScript 50%
Python 28%
TypeScript 14%
Updated 8 months ago
Python
45%
Other

Redash

Analytics · Data Engineering

28,849

Redash lets anyone connect to 35+ SQL and NoSQL data sources, write a query in the browser, and turn the result into a shared dashboard — no separate BI suite required.

View details
91
Repo Health
74
Technical
61
Dependency
Built with
Python 45%
JavaScript 29%
TypeScript 19%
Updated 1 weeks ago
TypeScript
97%
AGPL 3.0

Responsively App

Design Tools · Developer Tools

25,464

Preview and interact with your responsive web design across every device size simultaneously — no more manual resizing.

View details
79
Repo Health
71
Technical
66
Dependency
Built with
TypeScript 97%
Updated 3 weeks ago
Python
76%
Apache 2.0

Second Me

AI Assistants · Productivity

15,687

Train a locally hosted AI twin on your own memories—then connect it to the world through a decentralized identity network.

View details
41
Repo Health
75
Technical
68
Dependency
Built with
Python 76%
TypeScript 19%
Updated 1 years ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers