Skip to content
ESList configuration I use in personal and work projects. Airbnb w/ prettier, supports react & non-react, docker & dApps.
JavaScript
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github chore: add github actions and remove travis Sep 18, 2019
.commitlintrc.js
.editorconfig feat: initial commit Dec 16, 2018
.gitignore feat: initial commit Dec 16, 2018
.lintstagedrc.js feat: leverage prettier config and plugin Jan 23, 2019
.npmignore feat: initial commit Dec 16, 2018
.npmrc feat: initial commit Dec 16, 2018
.prettierrc.js chore: cleanup linting configuration Sep 18, 2019
LICENSE docs: add license documentation Sep 16, 2019
README.md feat: include no-unresolved rule for docker purposes Sep 18, 2019
dapp.js fix(dapp): update override to use correct file globs Jan 19, 2019
index.js feat: include no-unresolved rule for docker purposes Sep 18, 2019
package.json feat: include no-unresolved rule for docker purposes Sep 18, 2019
react.js feat: create react module to allow for extending explicitly Jan 30, 2019
utils.js feat: include no-unresolved rule for docker purposes Sep 18, 2019

README.md

eslint-config-codfish

Opinionated ESLint configuration that extends airbnb to not conflict with prettier.

version downloads MIT License semantic-release Commitizen friendly

Features

  • Uses Airbnb's config as the foundation.
  • Leverages prettier's eslint plugin, which run's prettier within ESLint, and overrides ESLint/Airbnb rules that may conflict with Prettier.
  • Supports both React & non-React applications dynamically based on your project's dependencies.
  • Extends Kent C Dodd's Jest config dynamically based on your project's dependencies.
  • Enforces js instead of jsx files.
  • Turns off import/no-unresolved errors for node modules in projects using Docker, to avoid false positives.
  • Helpful opt-in config for dApp's.

Usage

Install by running:

npm install --save-dev prettier eslint eslint-config-kentcdodds

My recommended setup includes tools like husky, lint-staged & commitlint in addition to prettier & eslint. However that's optional.

Then add the extends to your .eslintrc:

module.exports = {
  extends: ['codfish'],
  rules: {
    // your overrides here
  },
};

Optionally add a .prettierrc.js configuration file:

module.exports = {
  printWidth: 100,
  tabWidth: 2,
  useTabs: false,
  semi: true,
  singleQuote: true,
  trailingComma: 'all',
  bracketSpacing: true,
  jsxBracketSameLine: false,
  proseWrap: 'always',
};

With dApps

Similar to the issues with docker, there may be rules you want to adjust for dApp's. This config will set some globals as well as ignore missing build artifact imports. While you obviously need those to run your app, sometimes you might want to run the linter in a ci/cd environment and build artifacts might not be present.

Note: The dApp config also includes the import/no-unresolved rule found in the docker config.

module.exports = {
  extends: ['codfish', 'codfish/dapp'],
  rules: {
    // your overrides here
  },
};
You can’t perform that action at this time.