Danger Farms ESLint config


6.2.02 years ago3 years agoMinified + gzip package size for @dangerfarms/eslint-config-df in KB


ESLint rules adapted from https://github.com/airbnb/javascript

The main adaptation we've made is to downgrade non-critical rules to 'warn' level, to prevent linting recommendations from blocking app development (eg. in Create React App projects, where any error results in a red screen).

Pre-commit hooks and CI processes should use ESLint's --max-warnings=0 flag to ensure that lint warnings don't make it into production code.

Using the lint rules in a new package

  1. Run the following:

      export PKG=@dangerfarms/eslint-config-df;
      npm info "$PKG@latest" peerDependencies --json | command sed 's/[\{\},]//g ; s/: /@/g' | xargs yarn add "$PKG@latest"

    Note: this produces and runs a command like the following: yarn add @dangerfarms/eslint-config-df eslint@^#.#.# eslint-plugin-jsx-a11y@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-react@^#.#.#, pinning the versions to the supported ones.

  2. Add "@dangerfarms/eslint-config-df" to your project's ESLint config .eslintrc, under the extends property.

      "extends": "@dangerfarms/eslint-config-df"
  3. Add the eslint script to your package.json.

      "scripts": {
        "eslint": "eslint src"

Usage with git hooks

  1. yarn add husky lint-staged

  2. Update package.json with the following root keys.

      "husky": {
        "hooks": {
          "pre-commit": "lint-staged"
      "lint-staged": {
        "*.js": [
          "eslint --max-warnings=0 --fix",
          "git add"

TODO: maybe we can automate this, and have a single bootstrapping command to install default ESLint config, git hooks, etc on a new project.

Modifying the rules

You can clone this project if you'd like to update the rules.

For local development with yarn the following might be helpful.

cd ~/Code/dangerfarms/javascript/packages/eslint-config-df
yarn link
cd ~/Code/dangerfarms/javascript/packages/eslint-config-df-base
yarn link
cd ~/Code/dangerfarms/project
yarn link "@dangerfarms/eslint-config-df"
yarn link "@dangerfarms/eslint-config-df-base"

Now you can modify eslint-config-df and eslint-config-df-base in place, and run ESLint against project to see the effects. This allows manual testing of the ESLint rules against a particular project without having to publish a new version.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.