Skip to content

Instantly share code, notes, and snippets.

@jsun969
Last active February 2, 2024 11:07
Show Gist options
  • Save jsun969/a12ac050e66bb2a4eb8d63adabe2dc76 to your computer and use it in GitHub Desktop.
Save jsun969/a12ac050e66bb2a4eb8d63adabe2dc76 to your computer and use it in GitHub Desktop.
Typescript Project Formatter & Linter & Git Hooks
module.exports = {
parser: '@typescript-eslint/parser',
parserOptions: {
project: ['./tsconfig.json'],
},
plugins: ['@typescript-eslint'],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
// React
'plugin:react-hooks/recommended',
// NextJS
'next/core-web-vitals',
],
ignorePatterns: ['*.cjs', '*.mjs'],
rules: {
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/no-unused-vars': ['warn', { ignoreRestSiblings: true }],
'@typescript-eslint/consistent-type-imports': [
'warn',
{ disallowTypeAnnotations: false },
],
'no-console': 'warn',
},
};
/** @type {import('prettier').Config & import('prettier-plugin-tailwindcss').PluginOptions & import('@trivago/prettier-plugin-sort-imports').PluginConfig} */
module.exports = {
singleQuote: true,
trailingComma: 'all',
useTabs: true,
plugins: [
'@trivago/prettier-plugin-sort-imports',
'prettier-plugin-tailwindcss',
],
importOrder: ['<THIRD_PARTY_MODULES>', '^[./]'],
importOrderSeparation: true,
};
pnpm add -D eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-config-prettier eslint-plugin-prettier
# React
pnpm add -D eslint-plugin-react eslint-plugin-react-hooks
# NextJS
pnpm add -D eslint-plugin-next
pnpm add -D simple-git-hooks lint-staged
# After configure package.json
npx simple-git-hooks
pnpm add -D prettier @trivago/prettier-plugin-sort-imports
{
"scripts": {
"prepare": "simple-git-hooks",
"format": "prettier --write \"**/*.{js,ts,tsx,css,md,,cjs,mjs,json}\"",
"lint": "eslint \"**/*.{js,ts,tsx}\" --fix"
},
"lint-staged": {
"*.{js,ts,tsx,css,md,cjs,mjs,json}": [
"prettier --write"
]
},
"simple-git-hooks": {
"pre-commit": "npx lint-staged"
}
}
@li-jia-nan
Copy link

tql

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment