{ "root": true, "parser": "@typescript-eslint/parser", "plugins": [ "@typescript-eslint", "import", "newline", "prettier" ], "parserOptions": { "project": "./tsconfig.json", "createDefaultProgram": true }, "env": { "browser": true, "node": true, "es6": true }, "ignorePatterns": [ "node_modules/" ], "extends": [ "airbnb-typescript", "next/core-web-vitals", "plugin:prettier/recommended", "plugin:@typescript-eslint/recommended" ], "rules": { // 충돌 제거 "consistent-return": "off", "react/react-in-jsx-scope": "off", "react/jsx-no-useless-fragment": "off", "react-hooks/exhaustive-deps": "off", "react-hooks/rules-of-hooks": "off", "react/no-children-prop": "off", "import/no-anonymous-default-export": "off", "import/no-extraneous-dependencies": "off", "import/prefer-default-export": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-shadow": "off", "@typescript-eslint/no-use-before-define": "off", // 탭 길이 설정 "indent": [ "error", 2, { "SwitchCase": 1 } ], // 세미 콜론 "semi": [ 2, "always" ], "semi-style": [ "error", "last" ], // 파일명 이슈 해결 "react/jsx-filename-extension": [ "warn", { "extensions": [ ".js", ".ts", ".tsx" ] } ], // import 순서 "import/order": [ "error", { "groups": [ "builtin", "external", "parent", "sibling", "index" ], "pathGroups": [ { "pattern": "@styles/**", "group": "internal", "position": "after" }, { "pattern": "@store/**", "group": "internal", "position": "after" }, { "pattern": "@hooks/**", "group": "internal", "position": "after" }, { "pattern": "@utils/**", "group": "internal", "position": "after" }, { "pattern": "@interface/**", "group": "internal", "position": "after" }, { "pattern": "@constants/**", "group": "internal", "position": "after" }, { "pattern": "@containers/**", "group": "internal", "position": "after" }, { "pattern": "@components/**", "group": "internal", "position": "after" } ] } ], // 배열,객체,가져오기,내보내기 멀티라인일시 마지막에 콤마 "comma-dangle": [ "error", { "arrays": "always-multiline", "objects": "always-multiline", "imports": "always-multiline", "exports": "always-multiline", "functions": "always-multiline" } ] } }