The eslint config that we use at Etch
npm i -D eslint prettier @etchteam/eslint-config
echo "module.exports = { extends: ['@etchteam'] };" > .eslintrc.js
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"
Add the following to your lint-staged config:
'*.{ts,tsx,js,jsx,yml,yaml,json}': 'eslint --fix'
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
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