Skip to content

JavaScript analysis rules

Static analysis of JavaScript and TypeScript sources: unused, unlisted and unresolved dependencies, unused files and exports. These rules need the JS analysis, which --no-js or [js] enabled = false turns off. Configured with [js].

Rule Default severity Fixable
circular-imports off none
duplicate-exports warning none
unlisted-binaries warning none
unlisted-dependencies error none
unparseable-files warning none
unresolved-imports error none
unused-dependencies error unsafe
unused-dev-dependencies warning unsafe
unused-enum-members warning none
unused-exports warning unsafe
unused-files warning unsafe
unused-namespace-members warning none
unused-optional-peer-dependencies warning none
unused-types warning unsafe

Fixable is safe (applied by --fix), unsafe (applied only by --fix-unsafe), sometimes (fixable for some findings) or none. See the CLI reference.

Modules import each other in a cycle.

  • Default severity: off
  • Fixable: none
[rules]
circular-imports = "off"

One binding is exported under several names.

  • Default severity: warning
  • Fixable: none
[rules]
duplicate-exports = "warn"

A script runs a binary that no listed dependency provides.

  • Default severity: warning
  • Fixable: none
[rules]
unlisted-binaries = "warn"

A file imports a package that neither its package.json nor the root package.json lists.

  • Default severity: error
  • Fixable: none
[rules]
unlisted-dependencies = "error"

A file reachable from an entry file has a syntax error the parser could not recover from.

  • Default severity: warning
  • Fixable: none
[rules]
unparseable-files = "warn"

An import specifier does not resolve to a file or a package.

  • Default severity: error
  • Fixable: none
[rules]
unresolved-imports = "error"

A package in dependencies is never imported, required or run by a script.

  • Default severity: error
  • Fixable: unsafe
[rules]
unused-dependencies = "error"

A package in devDependencies is never imported, required or run by a script.

  • Default severity: warning
  • Fixable: unsafe
[rules]
unused-dev-dependencies = "warn"

A member of an exported enum is never read.

  • Default severity: warning
  • Fixable: none
[rules]
unused-enum-members = "warn"

An exported value is not imported by any other module.

  • Default severity: warning
  • Fixable: unsafe
[rules]
unused-exports = "warn"

A project file is not reachable from any entry file.

  • Default severity: warning
  • Fixable: unsafe
[rules]
unused-files = "warn"

An exported member of a TypeScript namespace is never read.

  • Default severity: warning
  • Fixable: none
[rules]
unused-namespace-members = "warn"

An optional peer dependency is imported but not installed as a dependency or dev dependency.

  • Default severity: warning
  • Fixable: none
[rules]
unused-optional-peer-dependencies = "warn"

An exported type or interface is not imported by any other module.

  • Default severity: warning
  • Fixable: unsafe
[rules]
unused-types = "warn"