60 lines
1.3 KiB
JavaScript
60 lines
1.3 KiB
JavaScript
/* eslint-env node */
|
|
import globals from "globals";
|
|
import pluginVue from "eslint-plugin-vue";
|
|
import parserVue from "vue-eslint-parser";
|
|
import importPlugin from "eslint-plugin-import";
|
|
|
|
export default [
|
|
{
|
|
name: "app/files-to-lint",
|
|
files: ["**/*.{js,mjs,jsx,vue}"],
|
|
},
|
|
|
|
{
|
|
name: "app/files-to-ignore",
|
|
ignores: ["**/dist/**", "**/node_modules/**", "**/help-center/**"],
|
|
},
|
|
|
|
...pluginVue.configs["flat/recommended"],
|
|
|
|
{
|
|
languageOptions: {
|
|
globals: {
|
|
...globals.browser,
|
|
...globals.node,
|
|
},
|
|
parser: parserVue,
|
|
ecmaVersion: "latest",
|
|
sourceType: "module",
|
|
},
|
|
|
|
plugins: {
|
|
import: importPlugin,
|
|
},
|
|
|
|
rules: {
|
|
// 确保导入的模块实际存在(核心规则,防止构建失败)
|
|
"import/no-unresolved": "error",
|
|
// 确保导入的命名导出实际存在
|
|
"import/named": "error",
|
|
// 确保默认导出存在
|
|
"import/default": "error",
|
|
// 确保命名空间导出存在
|
|
"import/namespace": "error",
|
|
// Vue 相关规则
|
|
"vue/multi-word-component-names": "off",
|
|
},
|
|
|
|
settings: {
|
|
"import/resolver": {
|
|
alias: {
|
|
map: [
|
|
["@", "./src"],
|
|
],
|
|
extensions: [".js", ".jsx", ".vue"],
|
|
},
|
|
},
|
|
},
|
|
},
|
|
];
|