@hivemap/eslint-config-df-base

1.0.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=@hivemap/eslint-config-df-base;
      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 @hivemap/eslint-config-df-base eslint@^#.#.# eslint-plugin-jsx-a11y@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-react@^#.#.#, pinning the versions to the supported ones.

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

    {
      "extends": "@hivemap/eslint-config-df-base"
    }
  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/hivemap/javascript/packages/eslint-config-df
yarn link
cd ~/Code/hivemap/javascript/packages/eslint-config-df-base
yarn link
cd ~/Code/hivemap/project
yarn link "@hivemap/eslint-config-df"
yarn link "@hivemap/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.

Package Sidebar

Install

npm i @hivemap/eslint-config-df-base

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

85.2 kB

Total Files

23

Last publish

Collaborators

  • hivemapmatt
  • davidbetteridge