The files in this directory represent the eslint
configuration settings
for Varnish. They also have the eslint
rules for MUI folded in.
They will be published as a separate NPM module,
@allenai/eslint-config-varnish
. This allows them to be shared easily
across multiple AI2 projects.
For more information about publishing and using shared eslint
configuration
definitions, see this documentation.
-
Install it and it's peer dependencies:
~ yarn add @allenai/eslint-config-varnish \ @typescript-eslint/eslint-plugin \ @typescript-eslint/parser \ eslint \ eslint-config-prettier \ eslint-config-standard \ eslint-plugin-import \ eslint-plugin-jsx-a11y \ eslint-plugin-mdx \ eslint-plugin-node \ eslint-plugin-prettier \ eslint-plugin-promise \ eslint-plugin-react \ eslint-plugin-standard \ prettier
-
Create a file with patterns specifying stuff you'd like to ignore:
~ cat <<EOF > .eslintignore .next/ node_modules/ package.json tsconfig.json EOF
-
Create a config file, and configure
eslint
to use this package as a base:cat <<EOF > .eslintrc.js module.exports = { extends: [ "@allenai/eslint-config-varnish" ] }; EOF
-
Add targets for linting and reformatting code to your
package.json
file:"scripts": { "lint": "eslint '**/*.{js,ts,tsx,json}' && echo '💫 Lint complete.'", "lint:fix": "eslint '**/*.{js,ts,tsx,json}' --fix && echo '🛠 Lint --fix complete.'", }
-
Try it out:
# See what's wrong ~ yarn lint # Reformat and fix things ~ yarn lint:fix
See instructions at the monorepo root CONTRIBUTING