import globals from 'globals'; import * as vueParser from 'vue-eslint-parser'; import vuePlugin from 'eslint-plugin-vue'; import prettierPlugin from 'eslint-plugin-prettier'; import eslintConfigPrettier from 'eslint-config-prettier'; export default [ { ignores: ['node_modules/**', 'dist/**', 'public/**'], }, { files: ['**/*.js'], languageOptions: { ecmaVersion: 2022, sourceType: 'module', globals: { ...globals.browser, ...globals.es2021, process: 'readonly', __dirname: 'readonly', }, }, rules: { 'no-unused-vars': 'off', 'no-console': 'off', 'no-undef': 'error', 'no-duplicate-imports': 'error', }, }, { files: ['**/*.vue'], languageOptions: { ecmaVersion: 2022, sourceType: 'module', globals: { ...globals.browser, ...globals.es2021, }, parser: vueParser, parserOptions: { sourceType: 'module', ecmaVersion: 2022, }, }, plugins: { vue: vuePlugin, prettier: prettierPlugin, }, rules: { ...vuePlugin.configs.base.rules, ...vuePlugin.configs['vue3-essential'].rules, ...vuePlugin.configs['vue3-strongly-recommended'].rules, ...vuePlugin.configs['vue3-recommended'].rules, ...eslintConfigPrettier.rules, 'prettier/prettier': 'warn', 'vue/comment-directive': 'off', 'vue/multi-word-component-names': 'off', 'vue/no-unused-vars': 'warn', 'vue/no-v-html': 'off', 'vue/html-self-closing': [ 'warn', { html: { void: 'always', normal: 'always', component: 'always', }, }, ], 'vue/component-name-in-template-casing': ['warn', 'PascalCase'], }, }, ];