| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- 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',
- singleQuote: true
- }
- ],
- "vue/no-reserved-component-names": ["error", {
- "disallowVue3BuiltInComponents": false
- }]
- }
- };
|