
규칙 없이 마구 섞여 있던 import문을 가독성 좋게 수정하기 위해 리팩토링을 진행했다. prettier-plugin-sort-imports 플러그인을 설치해서 import문을 기본적으로 알파벳순으로 정렬하고, mui, react, src, 라이브러리 등 경로 별로 그룹화해서 정렬했다. 파일 저장 시마다 미리 설정한 import 순서에 따라 코드가 자동 정렬된다.
npm install --save-dev @trivago/prettier-plugin-sort-imports
yarn add --dev @trivago/prettier-plugin-sort-imports
Prettire도 기본적으로 설치되어 있어야 한다.{
"plugins": ["@trivago/prettier-plugin-sort-imports"],
"importOrder": [
"^@mui/(.*)$",
"^@untitled-ui/(.*)$",
"^react",
"^src/(.*)$",
"<THIRD_PARTY_MODULES>",
"^[./]"
],
"importOrderSeparation": true,
"importOrderSortSpecifiers": true
}
.prettierrc 파일을 생성한다.plugins를 추가해서 해결할 수 있다.<THIRD_PARTY_MODULES>를 이용해서 외부 라이브러리의 정렬 순서 또한 조정할 수 있다.// As Is
import { useModal } from "src/hooks/use-modal";
import { usePageView } from "src/hooks/use-page-view";
import { useMounted } from "src/hooks/use-mounted";
// To Be
import { useModal, usePageView, useMounted } from "src/hooks";
index.js 파일을 생성해서 해당 폴더의 모든 함수를 import 및 export 후에 하나의 경로에서 import 할 수 있도록 수정했다.// index.js
import { useModal } from "./use-modal";
import { useMounted } from "./use-mounted";
import { usePageView } from "./use-page-view";
export { useModal, useMounted, usePageView };
hooks 폴더에 index.js 파일을 생성해서 다음과 같이 폴더 내부에 위치한 파일의 함수를 import 후 export 한다.useModal이라는 커스텀 훅을 import 하고 싶을 때 src/hooks 경로에서 바로 import 할 수 있다.Alt + Shift + O 단축키를 통해 한 번에 삭제할 수 있다.// jsconfig.json
{
...
"baseUrl": "./src",
"paths": {
"@utils/*": ["utils/*"],
"@ui/*": ["components/ui/*"],
"@common/*": ["components/common/*"],
"@components/*": ["components/*"],
"@hooks/*": ["hooks/*"]
}
}
}
jsconfig.json 혹은 tsconfig.json 파일에서 paths 옵션을 통해 폴더의 경로를 커스텀해서 직관적으로 표현할 수 있다.import { useModal } from '@hooks';
import 영역을 읽기 좋게 다듬는 세 가지 방법
prettier로 뒤죽박죽 import 정리하기
import를 깔끔하게 정리하고 싶어
[React] 파일 경로를 깔끔하게 정리하기