Skip to content

import/no-self-import Suspicious

What it does

Forbids a module from importing itself. This can sometimes happen accidentally, especially during refactoring.

Why is this bad?

Importing a module into itself creates a circular dependency, which can cause runtime issues, including infinite loops, unresolved imports, or undefined values.

Examples

Examples of incorrect code for this rule:

javascript
// foo.js
import foo from "./foo.js"; // Incorrect: module imports itself
const foo = require("./foo"); // Incorrect: module imports itself

Examples of correct code for this rule:

javascript
// foo.js
import bar from "./bar.js"; // Correct: module imports another module

How to use

To enable this rule in the CLI or using the config file, you can use:

bash
oxlint --deny import/no-self-import --import-plugin
json
{
  "plugins": ["import"],
  "rules": {
    "import/no-self-import": "error"
  }
}

References

Released under the MIT License.