eslint-plugin-goodeggs
v15.0.1
Published
An eslint plugin containing linter rules specific to Good Eggs.
Downloads
1,927
Readme
eslint-plugin-goodeggs
A shared ESLint plugin and configurations used by Good Eggs projects.
Installation
Install the plugin via
yarn add --dev eslint-plugin-goodeggs
Install all of the peer dependencies listed in
package.json#peerDependencies
, making sure you satisfy the peer dependencies fully by using the specified package version ranges.Create an ESLint configuration file at
.eslintrc.js
:
module.exports = {
extends: ['plugin:goodeggs/recommended'],
};
If your project uses Jest or Mocha, or is written in TypeScript, you'll want to add additional presets to the extends
array. See src/config/index.js
for a full list of configurations.
- Install our shared Prettier configuration via
yarn add --dev @goodeggs/prettier-config
and create a Prettier configuration file at.prettierrc.js
module.exports = require('@goodeggs/prettier-config');
- Add linting scripts to your project's
package.json
:
"scripts": {
"lint": "yarn run lint:base .",
"lint:base": "eslint --ext .js,.jsx,.ts,.tsx --cache --report-unused-disable-directives",
"lint:fix": "yarn run lint:fix:base .",
"lint:fix:base": "yarn run lint:base --fix"
}
Editor Plugins
You'll likely want to enable an ESLint editor integration for your editor so your code is automatically formatted on save.
Use With lint-staged
Consider using this setup in conjunction with lint-staged and husky to ensure that linting is run on staged files prior to commit.
For example, the following configuration files will run lint and fix any fixable errors prior to commit:
// lint-staged.config.js
module.exports = {
'*.{js,jsx,ts,tsx}': 'yarn run lint:fix:base',
};
// .huskyrc.js
module.exports = {
hooks: {
'pre-commit': 'lint-staged',
},
};
Releasing
To release a new version of this module, use yarn to bump the version in package.json
and create a
git tag, then push. This will automatically get published to the NPM registry via CI.
yarn version --new-version=<major|minor|patch|premajor|preminor|prepatch>
git push --follow-tags