/eslint

Our shared eslint config

Primary LanguageJavaScriptISC LicenseISC

@etchteam/eslint

The eslint config that we use at Etch

Install

npm i -D eslint prettier @etchteam/eslint-config

Usage

echo "module.exports = { extends: ['@etchteam'] };" > .eslintrc.js

With lint-staged

New project

Run the following:

npm i -D husky lint-staged

echo "module.exports = { '*.{ts,tsx,js,jsx,yml,yaml,json}': 'eslint --fix' };" > lint-staged.config.js

npx husky install

npx husky set .husky/pre-commit "npx --no-install -- lint-staged"

Existing project with husky and lint staged

Add the following to your lint-staged config:

'*.{ts,tsx,js,jsx,yml,yaml,json}': 'eslint --fix'

Usage with VSCode

New project with no VSCode config

Run the following:

mkdir .vscode

echo "{ \"editor.formatOnSave\": false, \"editor.codeActionsOnSave\": { \"source.fixAll.eslint\": \"explicit\" } }" > .vscode/settings.json

# The VSCode prettier extension doesn't read the eslint config, so specific
# prettier overrides need to go in a prettier config for format on save
echo "module.exports = { singleQuote: true };" > prettier.config.js

Exisiting project with VSCode config

Add the following to .vscode/settings.json:

"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
  "source.fixAll.eslint": "explicit"
}

Run the following:

# The VSCode prettier extension doesn't read the eslint config, so specific
# prettier overrides need to go in a prettier config for format on save
echo "module.exports = { singleQuote: true };" > prettier.config.js