Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

@dangerfarms/eslint-config-df

6.2.0 • Public • Published

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.

Install

npm i @dangerfarms/eslint-config-df

DownloadsWeekly Downloads

20

Version

6.2.0

License

MIT

Unpacked Size

47.7 kB

Total Files

17

Last publish

Collaborators

  • avatar
  • avatar
  • avatar
  • avatar
  • avatar