Skip to content

import/no-cycle Restriction

What it does

Ensures that there is no resolvable path back to this module via its dependencies.

This includes cycles of depth 1 (imported module imports me) to "∞" (or Infinity), if the maxDepth option is not set.

Why is this bad?

Dependency cycles lead to confusing architectures where bugs become hard to find.

It is common to import an undefined value that is caused by a cyclic dependency.

Example

javascript
// dep-b.js
import "./dep-a.js";
export function b() {
  /* ... */
}
javascript
// dep-a.js
import { b } from "./dep-b.js"; // reported: Dependency cycle detected.

References

Released under the MIT License.