Skip to content

Load arbitrary ESLint rules into a single namespace

License

Notifications You must be signed in to change notification settings

zertosh/eslint-plugin-lint

Repository files navigation

eslint-plugin-lint Build Status

Load arbitrary ESLint rules from any number of directories, and use them under the 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.

Prior Art

About

Load arbitrary ESLint rules into a single namespace

Resources

License

Stars

Watchers

Forks

Packages

No packages published