Files
TeyvatGuide/.eslintrc.yml
2023-10-10 23:15:26 +08:00

176 lines
4.7 KiB
YAML

root: true
env:
browser: true
es2021: true
extends:
- plugin:vue/vue3-essential
- prettier
- plugin:prettier/recommended
- plugin:yml/standard
- plugin:jsonc/recommended-with-json
parserOptions:
ecmaVersion: latest
sourceType: module
tsconfigRootDir: .
project: ./tsconfig.json
globals:
TGApp: readonly
window: readonly
rules:
vue/multi-word-component-names: off
vue/valid-template-root: off
overrides:
- files: ["*.ts"]
extends: standard-with-typescript
# 将此处规则 copy 到下面的 .vue 文件的 rules 中
rules:
import/order:
- error
- groups:
- builtin
- external
- [internal, parent, sibling, index]
- unknown
newlines-between: always
alphabetize:
order: asc
caseInsensitive: true
"@typescript-eslint/indent": off
"@typescript-eslint/quotes":
- error
- double
"@typescript-eslint/semi":
- error
- always
"@typescript-eslint/comma-dangle":
- error
- always-multiline
"@typescript-eslint/space-before-function-paren":
- error
- anonymous: always
named: never
asyncArrow: always
"@typescript-eslint/member-delimiter-style":
- error
- multiline:
delimiter: semi
requireLast: true
"@typescript-eslint/no-import-type-side-effects": error
"@typescript-eslint/strict-boolean-expressions": off
"@typescript-eslint/consistent-type-assertions":
- warn
- assertionStyle: angle-bracket # 使用尖括号
"@typescript-eslint/naming-convention":
- warn
- selector: variableLike
format: [camelCase, UPPER_CASE, PascalCase, snake_case]
leadingUnderscore: allow
trailingUnderscore: allow
"@typescript-eslint/no-non-null-assertion": warn
"@typescript-eslint/no-misused-promises": off
- files: ["*.vue"]
parser: vue-eslint-parser
parserOptions:
parser: "@typescript-eslint/parser"
extraFileExtensions: [.vue]
rules:
import/order:
- error
- groups:
- builtin
- external
- [internal, parent, sibling, index]
- unknown
newlines-between: always
alphabetize:
order: asc
caseInsensitive: true
"@typescript-eslint/indent": off
"@typescript-eslint/quotes":
- error
- double
"@typescript-eslint/semi":
- error
- always
"@typescript-eslint/comma-dangle":
- error
- always-multiline
"@typescript-eslint/space-before-function-paren":
- error
- anonymous: always
named: never
asyncArrow: always
"@typescript-eslint/member-delimiter-style":
- error
- multiline:
delimiter: semi
requireLast: true
"@typescript-eslint/no-import-type-side-effects": error
"@typescript-eslint/strict-boolean-expressions": off
"@typescript-eslint/consistent-type-assertions":
- warn
- assertionStyle: angle-bracket # 使用尖括号
"@typescript-eslint/naming-convention":
- warn
- selector: variableLike
format: [camelCase, UPPER_CASE, PascalCase, snake_case]
leadingUnderscore: allow
trailingUnderscore: allow
"@typescript-eslint/no-non-null-assertion": warn
"@typescript-eslint/no-misused-promises": off
- files: [package.json, tsconfig.json]
parser: jsonc-eslint-parser
rules:
jsonc/sort-array-values:
- error
- pathPattern: .*
order:
type: asc
jsonc/sort-keys:
- error
- pathPattern: ^$
order:
- name
- version
- description
- private
- packageManager
- scripts
- lint-staged
- keywords
- author
- license
- repository
- homepage
- bugs
- dependencies
- devDependencies
- files: ["*.yaml", "*.yml"]
parser: yaml-eslint-parser
parserOptions:
defaultYAMLVersion: "1.2"
rules:
yml/indent:
- error
- 2
yml/no-multiple-empty-lines: error
yml/key-spacing: error
yml/quotes:
- error
- prefer: double
avoidEscape: true
yml/sort-keys:
- error
- pathPattern: ^$
order:
- root
- env
- extends
- parserOptions
- globals
- rules
- overrides
- pathPattern: ^rules$
order:
type: asc