| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- // 从 URL 和路径模块中导入必要的功能
- import fs from 'fs'
- import path, { dirname } from 'path'
- import { fileURLToPath } from 'url'
- // 从 ESLint 插件中导入推荐配置
- import pluginJs from '@eslint/js'
- import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'
- import pluginVue from 'eslint-plugin-vue'
- import globals from 'globals'
- import tseslint from 'typescript-eslint'
- // 使用 import.meta.url 获取当前模块的路径
- const __filename = fileURLToPath(import.meta.url)
- const __dirname = dirname(__filename)
- // 读取 .auto-import.json 文件的内容,并将其解析为 JSON 对象
- const autoImportConfig = JSON.parse(fs.readFileSync(path.resolve(__dirname, '.auto-import.json'), 'utf-8'))
- export default [
- // 指定文件匹配规则
- {
- files: ['**/*.{js,mjs,cjs,ts,vue}']
- },
- // 指定全局变量和环境
- {
- languageOptions: {
- globals: {
- ...globals.browser,
- ...globals.node
- }
- }
- },
- // 扩展配置
- pluginJs.configs.recommended,
- ...tseslint.configs.recommended,
- ...pluginVue.configs['flat/essential'],
- // 自定义规则
- {
- // 针对所有 JavaScript、TypeScript 和 Vue 文件应用以下配置
- files: ['**/*.{js,mjs,cjs,ts,vue}'],
- languageOptions: {
- globals: {
- // 合并从 autoImportConfig 中读取的全局变量配置
- ...autoImportConfig.globals,
- // TypeScript 全局命名空间
- Api: 'readonly',
- Form: 'readonly'
- }
- },
- rules: {
- quotes: ['error', 'single'], // 使用单引号
- semi: ['error', 'never'], // 语句末尾不加分号
- 'no-var': 'error', // 要求使用 let 或 const 而不是 var
- '@typescript-eslint/no-explicit-any': 'off', // 禁用 any 检查
- 'vue/multi-word-component-names': 'off', // 禁用对 Vue 组件名称的多词要求检查
- 'no-multiple-empty-lines': ['warn', { max: 1 }], // 不允许多个空行
- 'no-unexpected-multiline': 'error' // 禁止空余的多行
- }
- },
- // vue 规则
- {
- files: ['**/*.vue'],
- languageOptions: {
- parserOptions: {
- parser: tseslint.parser,
- ecmaFeatures: {
- jsx: true // 启用 JSX 支持
- }
- }
- }
- },
- // 忽略文件
- {
- ignores: ['node_modules', 'dist', 'public', '.vscode/**', 'src/assets/**', 'src/utils/console.ts']
- },
- // prettier 配置
- eslintPluginPrettierRecommended
- ]
|