-
ESLint와 Prettier 설정하기Tool/VSCode&Cursor 2023. 11. 17. 17:40
1. ESLint 설치 및 사용방법
1.1. ESLint 설치
$ yarn add -D \ eslint \ @typescript-eslint/eslint-plugin \ @typescript-eslint/parser \ eslint-config-airbnb \ eslint-plugin-import \ eslint-plugin-jsx-a11y \ eslint-plugin-react \ eslint-plugin-react-hooks \ eslint-plugin-sort-keys-fix \ eslint-plugin-storybook
1.2. configuration file 생성
$ yarn create @eslint/config
bash를 실행하면 아래와 같이 각자의 환경에 대한 선택하는 부분이 나온다.
1.3. .eslintrc.js 파일 수정
설치 기본
# .eslintrc.js module.exports = { "env": { "browser": true, "es2021": true }, "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:react/recommended" ], "overrides": [ { "env": { "node": true }, "files": [ ".eslintrc.{js,cjs}" ], "parserOptions": { "sourceType": "script" } } ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": "latest", "sourceType": "module" }, "plugins": [ "@typescript-eslint", "react" ], "rules": { } }
스토리북 적용
module.exports = { env: { browser: true, node: true }, extends: [ 'airbnb', 'airbnb/hooks', 'eslint:recommended', 'plugin:react/recommended', 'plugin:import/recommended', 'plugin:storybook/recommended' ], ignorePatterns: [ '.storybook', '*.d.ts', 'node_modules', 'build', 'dist', '**/env/*.js' ], overrides: [ { files: [ '*.ts', '*.tsx' ], rules: { 'no-undef': 'off' } } ], parser: '@typescript-eslint/parser', parserOptions: { warnOnUnsupportedTypeScriptVersion: false }, plugins: [ '@typescript-eslint', 'sort-keys-fix', 'prettier' ], rules: { '@typescript-eslint/ban-ts-comment': [ 'error', { 'ts-ignore': 'allow-with-description' } ], '@typescript-eslint/no-explicit-any': 'warn', '@typescript-eslint/no-unused-vars': 'error', 'array-bracket-spacing': [ 'error', 'always', { arraysInArrays: false, objectsInArrays: false } ], 'brace-style': [ 'error', 'allman' ], 'comma-dangle': [ 'error', 'never' ], 'eol-last': [ 'error', 'never' ], 'import/extensions': 'off', 'import/named': 'off', 'import/no-anonymous-default-export': 'off', 'import/no-cycle': 'off', 'import/no-extraneous-dependencies': 'off', 'import/no-named-as-default': 'off', 'import/no-unresolved': 'off', 'import/order': [ 'error', { alphabetize: { caseInsensitive: true, order: 'asc' }, groups: [ 'external', 'builtin', 'internal', 'sibling', 'parent', 'index' ], 'newlines-between': 'always' } ], indent: [ 'error', 'tab' ], 'jsx-a11y/control-has-associated-label': 'off', 'jsx-quotes': [ 'error', 'prefer-single' ], 'linebreak-style': 'off', 'max-len': 'off', 'no-restricted-exports': 'off', 'no-tabs': [ 'error', { allowIndentationTabs: true }], 'no-unused-vars': 'off', 'object-curly-newline': [ 'error', { ExportDeclaration: 'never', ImportDeclaration: 'never', ObjectExpression: { minProperties: 3, multiline: true }, ObjectPattern: 'never' }], 'react-hooks/exhaustive-deps': 'warn', 'react/button-has-type': 'off', 'react/destructuring-assignment': 'off', 'react/function-component-definition': 'off', 'react/jsx-curly-brace-presence': [ 'error', { children: 'never', props: 'never' } ], 'react/jsx-filename-extension': 'off', 'react/jsx-indent': [ 'error', 'tab' ], 'react/jsx-props-no-spreading': 'off', 'react/jsx-sort-props': [ 'error', { callbacksLast: true, ignoreCase: true, multiline: 'last', noSortAlphabetically: false, reservedFirst: false, shorthandFirst: false, shorthandLast: true } ], 'react/prop-types': 'off', 'react/react-in-jsx-scope': 'off', 'react/require-default-props': 'off', 'require-jsdoc': 'off', 'sort-keys-fix/sort-keys-fix': 'error' }, settings: { 'import/parsers': { '@typescript-eslint/parser': [ '.ts', '.tsx', '.js' ] }, react: { version: 'detect' } } };
2. Prettier 설치 및 설정
2.1. Prettier 의존성 설치
$ yarn add -D \ prettier \ eslint-plugin-prettier \ eslint-config-prettier
2.2. VSCode Extension 설치 (참조)
2.3. ignore 설정을 통해서 prettier를 적용하지 않을 부분 설정
# .prettierignore **/*.css **/*.scss
2.4. 파일 저장시 자동 format 설정
.vscode > settings.json에 옵션 추가
{ ... "editor.formatOnSave": true ... }
주의!
yarn berry를 사용한다면 prettier설치해준 다음 아래 명령어를 실행시켜 주어야 한다. (참조)
$ yarn dlx @yarnpkg/sdks vscode
안하면 node-modules폴더가 없어서 Error: Cannot find module 'prettier' from 에러가 발생한다.
'Tool > VSCode&Cursor' 카테고리의 다른 글
Cursor 설치 및 설정 (1) 2024.11.01 정규식으로 text 변환하기 (1) 2023.11.20 VSCode에서 Python 개발환경 만들기 (0) 2023.08.11 VSCode에서 rsc 코드 자동완성 설정 (0) 2023.04.28 VSCode/FormatOnSave 설정 (0) 2022.10.19