import antfu from "@antfu/eslint-config"; import eslintConfigPrettier from "eslint-config-prettier"; import perfectionist from "eslint-plugin-perfectionist"; import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended"; import unusedImports from "eslint-plugin-unused-imports"; const config = antfu( { isInEditor: true, typescript: true, stylistic: false, markdown: false, toml: false, ignores: [ "public", "node_modules", "build", ".history", ".next", "public", "pnpm-lock.yaml", "package-lock.json", "next-env.d.ts", ], }, { files: ["**/*.{ts,tsx,js,jsx}"], languageOptions: { ecmaVersion: "latest", }, rules: { // 在nestjs中,需要关闭consistent-type-imports,否则注入的依赖不是类而是类型, "@typescript-eslint/consistent-type-imports": "off", "no-console": "off", "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": "off", "ts/no-use-before-define": "off", "ts/strict-boolean-expressions": "off", "ts/no-unsafe-member-access": "off", "ts/no-unsafe-call": "off", "ts/no-unsafe-assignment": "off", "ts/no-unsafe-return": "off", "ts/no-unsafe-argument": "off", "ts/no-misused-promises": "off", "ts/no-floating-promises": "off", "node/prefer-global/process": "off", "node/prefer-global/buffer": "off", "import/no-named-default": "off", }, }, { name: "perfectionist", rules: { "import/order": "off", "sort-imports": "off", "perfectionist/sort-imports": perfectionist.configs["recommended-natural"].rules[ "perfectionist/sort-imports" ], "perfectionist/sort-exports": perfectionist.configs["recommended-natural"].rules[ "perfectionist/sort-exports" ], "perfectionist/sort-named-imports": perfectionist.configs["recommended-natural"].rules[ "perfectionist/sort-named-imports" ], "perfectionist/sort-named-exports": perfectionist.configs["recommended-natural"].rules[ "perfectionist/sort-named-exports" ], }, }, { plugins: { "unused-imports": unusedImports, }, rules: { "unused-imports/no-unused-imports": "error", "unused-imports/no-unused-vars": [ "warn", { vars: "all", varsIgnorePattern: "^_", args: "after-used", argsIgnorePattern: "^_", }, ], }, }, eslintConfigPrettier, eslintPluginPrettierRecommended, ); export default config;