Prettier 설정 파일
{ "semi": true, "singleQuote": true, "tabWidth": 2, "trailingComma": "all", "useTabs": false, "printWidth": 80, "bracketSpacing": true, "endOfLine": "lf" }
ESLint 설정 파일
{ "env": { "browser": true, "es2021": true }, "extends": [ "eslint:recommended", "plugin:react/recommended", "plugin:react/jsx-runtime", "prettier" ], "parserOptions": { "ecmaFeatures": { "jsx": true }, "ecmaVersion": 2018, "sourceType": "module" }, "plugins": ["react", "react-hooks"], "rules": { "curly": "error", "prefer-const": "warn", "no-console": "warn", "no-unused-vars": "warn", "no-shadow": [ "warn", { "ignoreOnInitialization": true } ], "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], "react/prop-types": "warn", "react/require-default-props": "warn", "react-hooks/rules-of-hooks": "error", "react-hooks/exhaustive-deps": "warn", "react/jsx-no-constructed-context-values": "warn", "react/jsx-props-no-spreading": "off", "react/function-component-definition": [ 2, { "namedComponents": [ "function-declaration", "function-expression", "arrow-function" ], "unnamedComponents": ["arrow-function"] } ] } }
setting.json 파일
{ "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, "eslint.codeAction.showDocumentation": { "enable": true } }
devDependencies 목록
