121 lines
2.6 KiB
JavaScript
121 lines
2.6 KiB
JavaScript
module.exports = {
|
|
root: true,
|
|
env: {
|
|
node: true
|
|
},
|
|
globals: {
|
|
// Ref sugar (take 2)
|
|
$: 'readonly',
|
|
$$: 'readonly',
|
|
$ref: 'readonly',
|
|
$shallowRef: 'readonly',
|
|
$computed: 'readonly',
|
|
|
|
// index.d.ts
|
|
// global.d.ts
|
|
Fn: 'readonly',
|
|
PromiseFn: 'readonly',
|
|
RefType: 'readonly',
|
|
LabelValueOptions: 'readonly',
|
|
EmitType: 'readonly',
|
|
TargetContext: 'readonly',
|
|
ComponentElRef: 'readonly',
|
|
ComponentRef: 'readonly',
|
|
ElRef: 'readonly',
|
|
global: 'readonly',
|
|
ForDataType: 'readonly',
|
|
ComponentRoutes: 'readonly',
|
|
|
|
// script setup
|
|
defineProps: 'readonly',
|
|
defineEmits: 'readonly',
|
|
defineExpose: 'readonly',
|
|
withDefaults: 'readonly'
|
|
},
|
|
extends: [
|
|
'plugin:vue/vue3-essential',
|
|
'eslint:recommended',
|
|
'@vue/typescript/recommended',
|
|
'@vue/prettier',
|
|
'@vue/eslint-config-typescript'
|
|
],
|
|
parser: 'vue-eslint-parser',
|
|
parserOptions: {
|
|
parser: '@typescript-eslint/parser',
|
|
ecmaVersion: 2020,
|
|
sourceType: 'module',
|
|
jsxPragma: 'React',
|
|
ecmaFeatures: {
|
|
jsx: true
|
|
}
|
|
},
|
|
overrides: [
|
|
{
|
|
files: ['*.ts', '*.vue'],
|
|
rules: {
|
|
'no-undef': 'off'
|
|
}
|
|
},
|
|
{
|
|
files: ['*.vue'],
|
|
parser: 'vue-eslint-parser',
|
|
parserOptions: {
|
|
parser: '@typescript-eslint/parser',
|
|
extraFileExtensions: ['.vue'],
|
|
ecmaVersion: 'latest',
|
|
ecmaFeatures: {
|
|
jsx: true
|
|
}
|
|
},
|
|
rules: {
|
|
'no-undef': 'off'
|
|
}
|
|
}
|
|
],
|
|
rules: {
|
|
'vue/no-v-html': 'off',
|
|
'vue/require-default-prop': 'off',
|
|
'vue/require-explicit-emits': 'off',
|
|
'vue/multi-word-component-names': 'off',
|
|
'@typescript-eslint/no-explicit-any': 'off', // any
|
|
'no-debugger': 'off',
|
|
'@typescript-eslint/explicit-module-boundary-types': 'off', // setup()
|
|
'@typescript-eslint/ban-types': 'off',
|
|
'@typescript-eslint/ban-ts-comment': 'off',
|
|
'@typescript-eslint/no-empty-function': 'off',
|
|
'@typescript-eslint/no-non-null-assertion': 'off',
|
|
'vue/html-self-closing': [
|
|
'error',
|
|
{
|
|
html: {
|
|
void: 'always',
|
|
normal: 'always',
|
|
component: 'always'
|
|
},
|
|
svg: 'always',
|
|
math: 'always'
|
|
}
|
|
],
|
|
'@typescript-eslint/no-unused-vars': [
|
|
'error',
|
|
{
|
|
argsIgnorePattern: '^_',
|
|
varsIgnorePattern: '^_'
|
|
}
|
|
],
|
|
'no-unused-vars': [
|
|
'error',
|
|
{
|
|
argsIgnorePattern: '^_',
|
|
varsIgnorePattern: '^_'
|
|
}
|
|
],
|
|
'prettier/prettier': [
|
|
'error',
|
|
{
|
|
endOfLine: 'auto'
|
|
}
|
|
]
|
|
}
|
|
}
|