Files
schisandra-cloud-album-front/eslint.config.js

65 lines
2.2 KiB
JavaScript

import globals from "globals";
import pluginJs from "@eslint/js";
import tseslint from "typescript-eslint";
import pluginVue from "eslint-plugin-vue";
import {fileURLToPath} from "node:url";
import {dirname, resolve} from "path";
import {readFileSync} from "node:fs";
import vueI18n from '@intlify/eslint-plugin-vue-i18n';
// 动态读取 .eslintrc-auto-import.json 文件内容
const autoImportConfig = JSON.parse(
readFileSync(
resolve(dirname(fileURLToPath(import.meta.url)), ".eslintrc-auto-import.json"),
"utf-8",
),
);
export default [
...vueI18n.configs['flat/recommended'],
{files: ["**/*.{js,mjs,cjs,ts,vue}"]},
{languageOptions: {globals: {...globals.browser, ...globals.node, ...autoImportConfig.globals}}},
pluginJs.configs.recommended,
...tseslint.configs.recommended,
...pluginVue.configs["flat/essential"],
{files: ["**/*.vue"], languageOptions: {parserOptions: {parser: tseslint.parser}}},
{
rules: {
semi: "error",
"@typescript-eslint/no-explicit-any": "off",
"vue/multi-word-component-names": "off",
"@typescript-eslint/no-unused-vars": [
"error",
{
"args": "all",
"argsIgnorePattern": "^_",
"caughtErrors": "all",
"caughtErrorsIgnorePattern": "^_",
"destructuredArrayIgnorePattern": "^_",
"varsIgnorePattern": "^_",
"ignoreRestSiblings": true
}
],
'@intlify/vue-i18n/no-dynamic-keys': 'error',
'@intlify/vue-i18n/no-unused-keys': [
'error',
{
extensions: ['.ts', '.vue']
}
],
"@intlify/vue-i18n/no-duplicate-keys-in-locale": [
"error",
{
"ignoreI18nBlock": false
}
],
"@intlify/vue-i18n/no-raw-text": 'off',
},
settings: {
'vue-i18n': {
localeDir: '/src/locales/language/*.{ts}',
messageSyntaxVersion: '^9.0.0'
}
}
}
];