์๊ธฐ์ ์ ๊ธฐ๋กํ๊ธฐ
TypeScript ๊ธฐ๋ฐ React์์ ESLint์ Prettier ์ค์ ๋ฒ
- ํ๋ก์ ํธ ์์ฑ
( ์งํํ๋ ํ๋ก์ ํธ์์ ์ค์ ํ ๊ฒฝ์ฐ ์ถฉ๋์ด ๋ ์ ์์ผ๋ ํ๋ก์ ํธ ์์์ ! ์ค์ ํ์)
npx create-react-app my-app --template typescript
2. ESLint์ Prettier ์ค์น
npm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-config-prettier eslint-plugin-prettier prettier
3. ESLint ์ค์
ํ๋ก์ ํธ ๋ฃจํธ ํด๋์ .eslintrc.js
๋ฅผ ์์ฑ ํ ๋ค์ ๋ด์ฉ ์ถ๊ฐ
module.exports = {
parser: '@typescript-eslint/parser',
extends: [
'plugin:@typescript-eslint/recommended',
'prettier',
],
plugins: ['@typescript-eslint', 'prettier'],
rules: {
'prettier/prettier': 'error',
},
};
4. Prettier ์ค์
ํ๋ก์ ํธ ๋ฃจํธ ํด๋์ .prettierrc
์์ฑ ํ ๋ค์ ๋ด์ฉ ์ถ๊ฐ
{
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "all",
"printWidth": 80
}
++ ํจํค์ง ์์กด์ฑ ๋ฒ์ ์ถฉ๋ ํด๊ฒฐ
์๋ฌ ๋ฉ์ธ์ง
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
๋ฑ๋ฑ,,,
npm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-config-prettier eslint-plugin-prettier prettier --legacy-peer-deps
๋ฆฌ์กํธ ํ๋ก์ ํธ ์ ํ ์์๋ ์ต์ ๋ฒ์ ์ด ์ค์น๋์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํธํ์ด ์ ๋ ๋๊ฐ ์๋ค. --force ๋๋ --legacy-peer-deps : ๋ฅผ ์ฌ์ฉ ํด์ฃผ๋ฉด ํด๊ฒฐ์ด ๋๋ค.
- Delete
โ
eslintprettier/prettier ์ค๋ฅ ํด๊ฒฐ
โ ๋ฌธ์๋ ์ค ๋ฐ๊ฟ ๋ฌธ์์ ํน์ํ ํํ ์ค ํ๋์ด๋ฏ๋ก ๊ฐ๋จํ ์ค์ ์ ํตํด ํด๊ฒฐ ํ ์ ์๋ค.
.eslintrc.js ํ์ผ ์์
module.exports = {
parser: '@typescript-eslint/parser',
extends: ['plugin:@typescript-eslint/recommended', 'prettier'],
plugins: ['@typescript-eslint', 'prettier'],
rules: {
'prettier/prettier': [
'error',
{
endOfLine: 'auto',
},
],
},
}
ESLint์ค์ ํ Pretteir ์ค์ ์ ๋ํ ๋ง์ ๊ธ์ด ๋์ ์๋๋ฐ ๋๋ฌด ๋ง์ ์ ๋ณด๊ฐ ์์ด ์ฒซ ์ค์ ๋น์ ๋์ฑ ํ๋ค์๋ ๊ฒ ๊ฐ๋ค
๋ ์ด์ ๋ฐฉํฉํ๋ ์ฌ๋๋ค์ด ์๊ธฐ๋ฅผ !