.github/workflows | ||
fixtures/vitesse | ||
packages | ||
.eslintrc.json | ||
.gitignore | ||
.npmrc | ||
CHANGELOG.md | ||
LICENSE | ||
package.json | ||
pnpm-lock.yaml | ||
pnpm-workspace.yaml | ||
README.md | ||
tsconfig.json |
@antfu/eslint-config
- Single quotes, no semi
- Auto fix for formatting (aimed to be used standalone without Prettier)
- Designed to work with TypeScript, Vue out-of-box
- Lint also for json, yaml, markdown
- Sorted imports, dangling commas
- Reasonable defaults, best practices, only one-line of config
- Style principle: Minimal for reading, stable for diff
Usage
Install
pnpm add -D eslint @antfu/eslint-config
Config .eslintrc
{
"extends": "@antfu"
}
You don't need
.eslintignore
normally as it has been provided by the preset.
Add script for package.json
For example:
{
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint . --fix"
}
}
Config VS Code auto fix
Install VS Code ESLint extension and create .vscode/settings.json
{
"prettier.enable": false,
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
TypeScript Aware Rules
Type aware rules are enabled when a tsconfig.eslint.json
is found in the project root. If you want to enable it while have no tsconfig.eslint.json
in the project root, you can change tsconfig name by modifying ESLINT_TSCONFIG
env.
// .eslintrc.js
process.env.ESLINT_TSCONFIG = 'tsconfig.json'
module.exports = {
extends: '@antfu'
}
Extended Reading
Learn more about the context - Why I don't use Prettier.
Check Also
- antfu/dotfiles - My dotfiles
- antfu/vscode-settings - My VS Code settings
- antfu/ts-starter - My starter template for TypeScript library
- antfu/vitesse - My starter template for Vue & Vite app
License
MIT License © 2019-PRESENT Anthony Fu