eslint-plugin-eggache
custom eslint rule for egg RTFM questions
Usage
npm i eslint-plugin-eggache --save
Add eggache
to the plugins section of your .eslintrc
configuration file.
// ${app_root}/.eslintrc "extends": "plugin:eggache/recommended"
By default it enable all the recommended rules, if you want to custom, just configure the rules section.
// ${app_root}/.eslintrc "extends": "plugin:eggache/recommended" "rules": 'eggache/no-override-exports': 'error' 'eggache/no-unexpected-plugin-keys': 'error'
Rules
no-override-exports
A common mistake that newbie will make - override module.exports
and exports
.
/* eslint eggache/no-override-exports: [ 'error' ] */ // config/config.default.jsexportsview = {}; module { const config = exports = {}; configkeys = '123456'; return config;}
Options:
The first options is a boolean, default to false, means only check:
config/config.*.js
config/plugin.*.js
set it to true
means to check all files.
/* eslint eggache/no-override-exports: [ 'error', true ] */ // due to options `true`, this will pass the lint// ${app_root}/app.jsmoduleexports = exports = {};exportskeys = '123456';
no-unexpected-plugin-keys
Sometimes, developer will confuse plugin.js
and config.default.js
.
plugin.js
only allow [ 'enable', 'package', 'path', 'env' ]
and it control whether to load a plugin.
The plugin's config
should write to config/config.{env}.js
.
/* eslint eggache/no-unexpected-plugin-keys: [ 'error' ] */ // config/plugin.jsmoduleexports = test: enable: true package: 'egg-test' someConfig: 'should not place here'