74 lines
1.8 KiB
JavaScript
74 lines
1.8 KiB
JavaScript
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'],
|
|
},
|
|
},
|
|
];
|