taiyのためのESLint共有設定です。
※ pnpmではない場合は各自で読み替えてください。
次のパッケージをインストールします。
eslint
jiti
globals
@typescript-eslint/parser
eslint-config-flat-gitignore
@taiyme/eslint-config
pnpm add -D eslint jiti globals @typescript-eslint/parser eslint-config-flat-gitignore @taiyme/eslint-config
eslint.config.ts
を作成し、以下のように構成します。
※ @taiyme/eslint-config
は files
を指定していないため、mapメソッドなどを利用して自分で指定してください。
import taiymeConfig from '@taiyme/eslint-config';
import tsEslintParser from '@typescript-eslint/parser';
import type { Linter } from 'eslint';
import gitignore from 'eslint-config-flat-gitignore';
import globals from 'globals';
const files = ['**/*.{js,jsx,ts,tsx}'];
export default [
gitignore(),
{
languageOptions: {
globals: {
...globals.node,
},
parser: tsEslintParser,
parserOptions: {
project: './tsconfig.json',
tsconfigRootDir: import.meta.dirname,
},
},
files,
},
...[
...taiymeConfig.configs.typescript,
...taiymeConfig.configs.react,
].map((config) => ({
...config,
files,
})),
// ...
] as const satisfies Linter.Config[];
package.json
に、ESLintを実行するスクリプトを追加します。
{
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint --fix ."
}
}
ESLintの拡張機能 をインストールし、 .vscode/settings.json
を作成して以下のように構成します。
{
"prettier.enable": false,
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.organizeImports": "never",
"source.removeUnusedImports": "never",
"source.sortImports": "never",
},
"eslint.useFlatConfig": true,
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
],
"typescript.tsdk": "./node_modules/typescript/lib",
}
ESLint Config Inspectorを参照してください: https://eslint-config.taiy.me/
@taiyme/eslint-config
は、次の思想を強く支持しているため、抗おうとしないでください。
- Prettierを使わない
- インデントは半角スペース2個
- セミコロンは必須
- 末尾カンマは必須