eslint-plugin-dependencies
Usage
npm install eslint-plugin-dependencies
In your .eslintrc
:
{
"plugins": [
"dependencies"
],
"rules": {
"dependencies/case-sensitive": 1,
"dependencies/no-cycles": 1,
"dependencies/no-unresolved": 1,
"dependencies/require-json-ext": 1
}
}
Rules
An eslint plugin that ...
dependencies/case-sensitive
Verifies that require("…")
, require.resolve(…)
, import "…"
and export … from "…"
ids match the case that is reported by a directory listing.
{
"plugins": [
"dependencies"
],
"rules": {
"dependencies/case-sensitive": [1, {"paths": ["custom-path-to-search-for-modules"]}]
}
}
dependencies/no-cycles
Prevents cyclic references between modules. It resolves require("…")
, import "…"
and export … from "…"
references to internal modules (i.e. not node_modules
), to determine whether there is a cycle. If you're using a custom parser, the rule will use that to parse the dependencies. The rule takes a skip
array of strings, that will be treated as regexps to skip checking files.
Additionally, with the types
option enabled, you can detect and prevent import type
cycles as well. This can be helpful, since the Flow checker can exhibit unexpected behavior with such cycles.
{
"plugins": [
"dependencies"
],
"rules": {
"dependencies/no-cycles": [1, {"skip": ["/spec/", "/vendor/"], "types": true}]
}
}
dependencies/no-unresolved
Checks that require("…")
, require.resolve(…)
, import "…"
and export … from "…"
reference modules that exist. Takes an ignore
array of modules to ignore.
{
"plugins": [
"dependencies"
],
"rules": {
"dependencies/no-unresolved": [1, {"ignore": ["atom"], "paths": ["custom-path-to-search-for-modules"]}]
}
}
dependencies/require-json-ext
Ensures that modules are that are .json
include their extension in the module id. Supports auto fix.