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 목록