Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/drl990114/eslint-config
https://github.com/drl990114/eslint-config
Last synced: 11 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/drl990114/eslint-config
- Owner: drl990114
- License: mit
- Created: 2023-04-03T13:44:43.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-06-18T04:51:55.000Z (over 1 year ago)
- Last Synced: 2024-10-24T07:39:00.097Z (20 days ago)
- Language: JavaScript
- Size: 184 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# @halodong/eslint-config
[![npm](https://img.shields.io/npm/v/@halodong/eslint-config?color=a1b858&label=)](https://npmjs.com/package/@halodong/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
### Installasdsd
```bash
pnpm add -D eslint @halodong/eslint-config```
### Config .eslintrqwec
```json
{
"extends": "@halodong"
}```
You don't need .eslintignore normally as it has been provided by the preset.
### Add script for package.json
For example:
```json
{
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint . --fix"
}
}```
### Config VS Code auto fix
Install [VS Code ESLint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) and create .vscode/settings.json
```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, 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.
```js
// .eslintrc.js
process.env.ESLINT_TSCONFIG = 'tsconfig.json'module.exports = {
extends: '@halodong'
}```
### Lint Staged
If you want to apply lint and auto-fix before every commit, you can add the following to your package.json:
```json
{
"simple-git-hooks": {
"pre-commit": "pnpm lint-staged"
},
"lint-staged": {
"*": "eslint --fix"
}
}```
and then
```bash
npm i -D lint-staged simple-git-hooks```
## FAQ
### Prettier?
[Why I don't use Prettier](https://halodong.me/posts/why-not-prettier)
### How to lint CSS?
This config does NOT lint CSS. I personally use [UnoCSS](https://github.com/unocss/unocss) so I don't write CSS. If you still prefer CSS, you can use [stylelint](https://stylelint.io/) for CSS linting.
### I prefer XXX...
Sure, you can override the rules in your .eslintrc file.
```jsonc
{
"extends": "@halodong",
"rules": {
// your rules...
}
}```
Or you can always fork this repo and make your own.
## Check Also
* [halodong/dotfiles](https://github.com/halodong/dotfiles) - My dotfiles
* [halodong/vscode-settings](https://github.com/halodong/vscode-settings) - My VS Code settings
* [halodong/ts-starter](https://github.com/halodong/ts-starter) - My starter template for TypeScript library
* [halodong/vitesse](https://github.com/halodong/vitesse) - My starter template for Vue & Vite app