87 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			87 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | import globals from 'globals'; | ||
|  | import pluginJs from '@eslint/js'; | ||
|  | import tseslint from 'typescript-eslint'; | ||
|  | import pluginVue from 'eslint-plugin-vue'; | ||
|  | import { readFile } from 'node:fs/promises'; | ||
|  | import prettier from 'eslint-plugin-prettier'; | ||
|  | 
 | ||
|  | /** | ||
|  |  * https://blog.csdn.net/sayUonly/article/details/123482912
 | ||
|  |  * 自动导入的配置 | ||
|  |  */ | ||
|  | const autoImportFile = new URL('./.eslintrc-auto-import.json', import.meta.url); | ||
|  | const autoImportGlobals = JSON.parse(await readFile(autoImportFile, 'utf8')); | ||
|  | 
 | ||
|  | /** @type {import('eslint').Linter.Config[]} */ | ||
|  | export default [ | ||
|  |   { | ||
|  |     /** | ||
|  |      * 不需要.eslintignore文件 而是在这里配置 | ||
|  |      */ | ||
|  |     ignores: [ | ||
|  |       '*.sh', | ||
|  |       'node_modules', | ||
|  |       '*.md', | ||
|  |       '*.woff', | ||
|  |       '*.ttf', | ||
|  |       '.vscode', | ||
|  |       '.idea', | ||
|  |       'dist', | ||
|  |       '/public', | ||
|  |       '/docs', | ||
|  |       '.husky', | ||
|  |       '.local', | ||
|  |       '/bin', | ||
|  |       '.eslintrc.cjs', | ||
|  |       'prettier.config.js', | ||
|  |       'src/assets', | ||
|  |       'tailwind.config.js' | ||
|  |     ] | ||
|  |   }, | ||
|  |   { files: ['**/*.{js,mjs,cjs,ts,vue}'] }, | ||
|  |   { | ||
|  |     languageOptions: { | ||
|  |       globals: globals.browser | ||
|  |     } | ||
|  |   }, | ||
|  |   pluginJs.configs.recommended, | ||
|  |   ...tseslint.configs.recommended, | ||
|  |   ...pluginVue.configs['flat/essential'], | ||
|  |   { | ||
|  |     files: ['**/*.vue'], | ||
|  |     languageOptions: { | ||
|  |       parserOptions: { | ||
|  |         parser: tseslint.parser | ||
|  |       } | ||
|  |     } | ||
|  |   }, | ||
|  |   { | ||
|  |     languageOptions: { | ||
|  |       globals: { | ||
|  |         // 自动导入的配置 undef
 | ||
|  |         ...autoImportGlobals.globals, | ||
|  |         DialogOption: 'readonly', | ||
|  |         LayoutSetting: 'readonly' | ||
|  |       } | ||
|  |     }, | ||
|  |     plugins: { prettier }, | ||
|  |     rules: { | ||
|  |       '@typescript-eslint/no-empty-function': 'off', | ||
|  |       '@typescript-eslint/no-explicit-any': 'off', | ||
|  |       '@typescript-eslint/no-unused-vars': 'off', | ||
|  |       '@typescript-eslint/no-this-alias': 'off', | ||
|  | 
 | ||
|  |       // vue
 | ||
|  |       'vue/multi-word-component-names': 'off', | ||
|  |       'vue/valid-define-props': 'off', | ||
|  |       'vue/no-v-model-argument': 'off', | ||
|  |       'prefer-rest-params': 'off', | ||
|  |       // prettier
 | ||
|  |       'prettier/prettier': 'error', | ||
|  |       // 允许使用空Object类型 {}
 | ||
|  |       '@typescript-eslint/no-empty-object-type': 'off', | ||
|  |       '@typescript-eslint/no-unused-expressions': 'off' | ||
|  |     } | ||
|  |   } | ||
|  | ]; |