prettier plugin으로 import 순서 자동 정렬하기

prettier plugin으로 import 순서 자동 정렬하기

김태홍 (bluemiv)
작성일: 2025-04-24 12:13:22
AD

1. prettier란?

Prettier는 코드 컨벤션을 자동으로 정리해주는 오픈소스 코드 포맷터(formatter)입니다. 개발자가 일일이 줄바꿈, 들여쓰기, 괄호 위치 등을 정리할 필요없이, prettier 설정 파일에 정의된 규칙에 따라 일관된 형태로 코드를 변환해줍니다.

설치는 다음과 같이 할 수 있습니다.

npm add --save-dev prettier
yarn add --dev prettier
bun add --dev prettier

자세한 내용은 Prettier 공식 문서를 참고해주세요.


2. @trivago/prettier-plugin-sort-imports

@trivago/prettier-plugin-sort-imports는 Prettier의 플러그인으로, import 구문의 순서를 자동으로 정렬해주는 도구입니다. 협업을 하다보면 import의 순서도 팀 컨벤션에 따라 지켜야하는데, 하나씩 수정하기엔 매우 번거롭고 가끔 잊어버리곤 합니다.

이 플러그인을 사용하면 코드 스타일을 일관되게 유지할 수 있으며, 협업 시 충돌(conflict)을 줄이는 데에도 도움이 됩니다. ESLint의 import/order 규칙과 다르게, prettier 플러그인은 Prettier 포맷팅 시점에 동작하여 별도의 작업 없이 자동으로 정렬되도록 할 수 있어서 더 편합니다.

2.1. 설치 방법

프로젝트의 패키지 매니저에 따라 @trivago/prettier-plugin-sort-imports를 설치합니다.

npm을 사용하는 경우

npm install --save-dev @trivago/prettier-plugin-sort-imports

yarn을 사용하는 경우

yarn add --dev @trivago/prettier-plugin-sort-imports

bun을 사용하는 경우

bun add --dev @trivago/prettier-plugin-sort-imports

2.2. prettier 설정

prettier 설정 파일에 "plugins": ["@trivago/prettier-plugin-sort-imports"]를 추가하여 플러그인을 적용합니다. 그리고, importOrder 를 사용하여 정렬 규칙을 정의합니다.

예시로 .prettierrc.json을 만들어보면

{
  "plugins": ["@trivago/prettier-plugin-sort-imports"],
  "importOrder": [
    "^react$",
    "<THIRD_PARTY_MODULES>",
    "^@/components/(.*)$",
    "^@/utils/(.*)$",
    "^[./]"
  ],
  "importOrderSeparation": true,
  "importOrderSortSpecifiers": true
}

2.2.1. plugins 옵션

Prettier에 플러그인을 추가하는 부분입니다.

2.2.2. importOrder 옵션

import들을 어떤 순서로 정렬할지 정의합니다. 규칙은 정규식으로 표현할 수 있습니다.

  • <THIRD_PARTY_MODULES>: 외부 라이브러리를 뜻합니다. (예를들어, axios, lodash 등을 위치)
  • ^[./]: 상대 경로 import인 ./Card 또는 ../MyComponent와 등을 뜻합니다.

2.2.3. importOrderSeparation 옵션

true로 설정하면 importOrder에 설정한 규칙들 사이에 개행(\n) 구분자를 추가합니다.

import React from 'react';
 
import axios from 'axios';
import * as lodash from 'lodash';
 
import Button from '@/components/Button';

2.2.4. importOrderSortSpecifiers 옵션

true로 설정하면 중괄호 안의 항목들을 알파벳순으로 정렬합니다.

// before
import { b, a, c } from 'module';
 
// after
import { a, b, c } from 'module';

2.3. package.json 설정

package.json의 scripts에 formatting을 수행하는 명령어를 추가합니다.

{
  ...,
  "scripts": {
    ...
    "format": "prettier --write \"src/**/*.{js,jsx,ts,tsx}\""
  },
}

이제 npm run format 또는 yarn format 혹은 bun run format을 실행하면 import 문들이 자동으로 정렬됩니다.


3. 실제 현업에 적용

진행하고 있는 프로젝트에 @trivago/prettier-plugin-sort-imports 플러그인을 한번 적용해봤습니다. 해당 플러그인을 알기 전에는 하나씩 수정했었는데, 플러그인 적용하고 다음 사진과 같이 깔끔해졌습니다.

import 정렬 전후
import 정렬 전후

4. References

AD