chore: eslint & husky config

This commit is contained in:
xughv 2020-05-12 15:47:43 +08:00
parent 83a6847d5d
commit 6c53347798
5 changed files with 95 additions and 31 deletions

View File

@ -1,32 +1,56 @@
module.exports = {
parser: '@typescript-eslint/parser',
extends: [
'plugin:react/recommended',
'plugin:@typescript-eslint/recommended',
'@tencent/eslint-config-tencent',
parser: '@typescript-eslint/parser',
extends: [
'prettier',
'prettier/standard',
'prettier/react',
'prettier/@typescript-eslint',
'plugin:react/recommended',
'plugin:prettier/recommended',
'plugin:@typescript-eslint/recommended',
'@tencent/eslint-config-tencent',
],
plugins: ['@typescript-eslint', 'prettier', 'react-hooks'],
env: {
browser: true,
node: true,
},
settings: {
react: {
pragma: 'React',
version: 'detect',
},
},
parserOptions: {
ecmaVersion: 2019,
sourceType: 'module',
ecmaFeatures: {
jsx: true,
},
},
rules: {
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/indent': 'off',
'@typescript-eslint/no-empty-interface': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-use-before-define': ['error', { functions: false }],
'comma-dangle': [
'error',
{
arrays: 'always-multiline',
exports: 'always-multiline',
functions: 'never',
imports: 'always-multiline',
objects: 'always-multiline',
},
],
plugins: ['@typescript-eslint'],
env: {
browser: true,
node: true,
},
settings: {
react: {
'pragma': 'React',
'version': 'detect'
}
},
parserOptions: {
ecmaVersion: 2019,
sourceType: 'module',
ecmaFeatures: {
jsx: true
}
},
rules: {
'@typescript-eslint/indent': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'react/display-name': 'off',
'max-len': ['error', 140]
}
}
'func-style': 'off',
'function-paren-newline': 'off',
'import/prefer-default-export': 'off',
'prettier/prettier': ['error', { trailingComma: 'es5' }],
'react/display-name': 'off',
'react-hooks/exhaustive-deps': 'warn',
'react-hooks/rules-of-hooks': 'error',
'max-len': ['error', 140],
},
};

3
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"recommendations": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"]
}

35
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,35 @@
{
"eslint.enable": true,
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact"
],
"[html]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascriptreact]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"cSpell.words": [
"unmount"
],
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}

1
commitlint.config.js Normal file
View File

@ -0,0 +1 @@
module.exports = { extends: ['@commitlint/config-conventional'] };

View File

@ -19,7 +19,8 @@
"allowJs": true,
"checkJs": true,
"downlevelIteration": true,
"esModuleInterop": true
"esModuleInterop": true,
"resolveJsonModule": true
},
"include": ["src", "test", "global.d.ts"],
"compileOnSave": false