@novemberborn/eslint-plugin-as-i-preach
ESLint to @novemberborn’s taste.
Installation
npm install -D @novemberborn/eslint-plugin-as-i-preach eslint eslint-plugin-{ava,import,node,promise,security,standard,unicorn}For TypeScript projects, also install:
npm install -D @typescript-eslint/eslint-pluginYou can ignore peer dependency warnings about this plugin (and the typescript dependency) if you don't use TypeScript.
Usage
Use the as-i-preach binary in package.json scripts:
{
"scripts": {
"test": "as-i-preach"
}
}Or run it with npx:
npx as-i-preachRun with --fix to automatically fix violations:
npx as-i-preach --fixNode.js / JavaScript
Create .eslintrc.js:
'use strict'
module.exports = {
plugins: ['@novemberborn/as-i-preach'],
extends: ['plugin:@novemberborn/as-i-preach/nodejs'],
}Node.js / TypeScript
Create .eslintrc.js:
'use strict'
require('@novemberborn/eslint-plugin-as-i-preach').mergeTypeScriptParserOptions({ tsconfigRootDir: __dirname })
module.exports = {
plugins: ['@novemberborn/as-i-preach'],
extends: ['plugin:@novemberborn/as-i-preach/nodejs', 'plugin:@novemberborn/as-i-preach/typescript'],
}All *.ts and *.d.ts files must be included by your TypeScript config. If you want to exclude certain files from compilation you can create a tsconfig.eslint.json file instead. It'll be picked up automatically.
For instance, given a tsconfig.json:
{
"include": ["src/**/*"],
"exclude": ["src/test/typescript/*"]
}You could write a tsconfig.eslint.json:
{
"extends": "./tsconfig.json",
"exclude": []
}