Load arbitrary ESLint rules from any number of directories, and use them under the
To make them available to ESLint, in the
Now the rules are available like any other as
lint/
namespace.Install
$ npm install eslint-plugin-lint --save-dev
Usage
Consider a project with an.eslintrc.js
at the root, and two directories with rules files:my-project
├── .eslintrc.js
├─┬ my-rules
│ ├── no-foo.js
│ └── no-bar.js
└─┬ their-rules
├── no-baz.js
└── no-qux.js
To make them available to ESLint, in the
.eslintrc.js
add:const path = require('path');
// (1) Require "eslint-plugin-lint", then call `load` with the
// rules directories.
require('eslint-plugin-lint').load(
path.join(__dirname, 'my-rules'), // Tip: Use an absolute path to
path.join(__dirname, 'their-rules') // avoid cwd resolution issues.
);
module.exports {
plugins: [
'lint' // (2) Add the "eslint-plugin-lint" package as a plugin.
],
rules: {
'lint/no-foo': 1, // (3) Declare the rules options with the "lint/"
'lint/no-bar': 1, // prefix, plus the rule file name without ".js".
'lint/no-baz': 1,
'lint/no-qux': 1
}
};
Now the rules are available like any other as
lint/no-foo
, lint/no-ba
, and so on.