Skip to content

coderwyd/eslint-config

Repository files navigation

@coderwyd/eslint-config

Feature

  • 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

Usage

Install

pnpm add -D eslint @coderwyd/eslint-config

Config .eslintrc

{ "extends": "@coderwyd" }

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" } }

VS Code support (auto fix)

Add the following settings to your settings.json:

{ "prettier.enable": false, "editor.formatOnSave": false, "editor.codeActionsOnSave": { "source.fixAll.eslint": true, "source.organizeImports": false }, // The following is optional. // It's better to put under project setting `.vscode/settings.json` // to avoid conflicts with working with different eslint configs // that does not support all formats. "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact", "vue", "html", "markdown", "json", "jsonc", "yaml"] }

TypeScript Aware Rules

Type aware rules are enabled when a tsconfig.eslint.json is found in the project root, which will introduce some stricter rules into your project. 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 const process = require('node:process') process.env.ESLINT_TSCONFIG = 'tsconfig.json' module.exports = { extends: '@coderwyd', }

Lint Staged

If you want to apply lint and auto-fix before every commit, you can add the following to your package.json:

{ "simple-git-hooks": { "pre-commit": "pnpm lint-staged" }, "lint-staged": { "*": "eslint --fix" } }

and then

npm i -D lint-staged simple-git-hooks

FAQ

Customization rules

add you like rules to your .eslintrc file.

{ "extends": "@coderwyd", "rules": { // your rules... } }

Thanks

This project is based on @antfu/eslint-config

License

MIT License © 2019-PRESENT Donny Wang