web/eslint.config.js
Rama main · réplica de lectura del repositorio original.
import js from '@eslint/js'
import vue from 'eslint-plugin-vue'
import prettier from 'eslint-config-prettier'
import globals from 'globals'
export default [
// Ignore patterns
{
ignores: ['dist/**', 'dev-dist/**', 'node_modules/**', '.cache/**', 'coverage/**']
},
// Base JavaScript/ES configuration
js.configs.recommended,
// Vue recommended configuration
...vue.configs['flat/recommended'],
// Global configuration
{
files: ['**/*.{js,mjs,cjs,vue}'],
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
globals: {
...globals.browser,
...globals.node,
...globals.es2021
}
},
rules: {
// Vue.js specific rules
'vue/multi-word-component-names': 'warn',
'vue/no-unused-vars': 'error',
'vue/require-default-prop': 'warn',
'vue/require-prop-types': 'warn',
'vue/component-name-in-template-casing': 'off',
// Allow Vuetify data table slot syntax like #item.column
'vue/valid-v-slot': ['error', { allowModifiers: true }],
'vue/html-self-closing': [
'error',
{
html: {
void: 'always',
normal: 'always',
component: 'always'
}
}
],
// General JavaScript rules
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
'prefer-const': 'error',
'no-var': 'error',
eqeqeq: ['error', 'always'],
curly: ['error', 'all'],
'brace-style': ['error', '1tbs']
}
},
// Prettier config (must be last to override other configs)
prettier
]