Skip to content

구성

Oxfmt는 기본적으로 작동하지만, 대부분의 팀은 로컬 실행, 에디터 및 CI 간에 형식 일관성을 유지하기 위해 구성 파일을 커밋합니다.

이 페이지는 프로젝트 구성에 집중합니다: 서식 옵션, 무시 패턴 및 실험적 기능.

구성 파일 생성

현재 디렉터리에 시작용 구성 파일을 생성하려면:

sh
oxfmt --init

Oxfmt는 현재 디렉터리부터 시작하여 트리 상향으로 .oxfmtrc.json 또는 .oxfmtrc.jsonc를 자동으로 검색합니다. 또한 구성 파일을 명시적으로 전달할 수도 있습니다:

sh
oxfmt -c path/to/yourconfig.json

최소한의 구성은 다음과 같습니다:

.oxfmtrc.json
json
{
  "$schema": "./node_modules/oxfmt/configuration_schema.json",
  "printWidth": 80
}

구성 파일 형식

구성 파일은 JSON 객체입니다. 가장 일반적인 최상위 필드는 다음과 같습니다:

  • printWidth: 라인 너비 제한 (기본값: 100)
  • tabWidth: 들여쓰기 레벨당 공백 수 (기본값: 2)
  • useTabs: 스페이스 대신 탭 사용 (기본값: false)
  • semi: 세미콜론 추가 (기본값: true)
  • singleQuote: 단일 따옴표 사용 (기본값: false)
  • trailingComma: 다중 라인 구조에서 끝에 쉼표 (기본값: "all")
  • ignorePatterns: 서식에서 제외할 글로브 패턴
  • sortImports: 임포트 정렬 설정 (기본값 비활성화)
  • sortTailwindcss: Tailwind 클래스 정렬 설정 (기본값 비활성화)
  • sortPackageJson: package.json 정렬 설정 (기본값 활성화)

전체 필드 목록은 구성 파일 참조를 참조하세요.

JSON 스키마

에디터 검증 및 자동 완성용으로 $schema 필드를 추가하세요:

.oxfmtrc.json
json
{
  "$schema": "./node_modules/oxfmt/configuration_schema.json"
}

.editorconfig

Oxfmt는 다음 .editorconfig 속성을 읽습니다:

  • end_of_lineendOfLine
  • indent_styleuseTabs
  • indent_sizetabWidth
  • max_line_lengthprintWidth
  • insert_final_newlineinsertFinalNewline

루트 섹션과 글로브 기반 오버라이드 모두 지원됩니다.

[*]
indent_size = 4

[*.{js,ts}]
indent_size = 2

Oxfmt는 현재 디렉터리에서 가장 가까운 .editorconfig만 사용합니다:

  • root = true는 무시됨
  • 중첩된 .editorconfig 파일은 병합되지 않음

오버라이드

특정 파일에 대해 다른 서식 옵션을 적용하려면 overrides 필드를 사용하세요:

.oxfmtrc.json
json
{
  "printWidth": 100,
  "overrides": [
    {
      "files": ["*.test.js", "*.spec.ts"],
      "options": {
        "printWidth": 120
      }
    },
    {
      "files": ["*.md", "*.html"],
      "excludeFiles": ["*.min.js"],
      "options": {
        "tabWidth": 4
      }
    }
  ]
}

각 오버라이드 항목에는 다음이 포함됩니다:

  • files (필수): 파일을 매칭할 글로브 패턴
  • excludeFiles (선택 사항): 이 오버라이드에서 제외할 글로브 패턴
  • options: 적용할 서식 옵션

글로브 패턴은 Oxfmt 구성 파일이 포함된 디렉터리 기준으로 해결됩니다.

우선순위

옵션은 순서대로 적용됩니다(우선순위 낮음 → 높음):

  1. 기본값
  2. .oxfmtrc.json(c) 루트 옵션
  3. .oxfmtrc.json(c) overrides 옵션
  4. 설정되지 않은 필드에 대해 .editorconfig가 지원하는 옵션으로 대체

Oxfmt 전용 옵션

insertFinalNewline

서식 처리된 파일 끝에 최종 줄바꿈을 추가할지 여부를 제어합니다. 기본값은 true입니다.

이는 일부 환경(예: Salesforce)에서 끝에 있는 줄바꿈을 제거하기 때문에, 자주 요청되는 Prettier 기능입니다.

printWidth

Oxfmt는 기본적으로 printWidth: 100을 사용합니다(보통의 Prettier는 80). 이유는 다음과 같습니다:

  • 타입 주석으로 인해 TypeScript 코드가 더 길어짐
  • 임포트 문은 종종 많은 지정자를 포함함
  • 현대 모니터의 해상도가 넓음
  • 줄바꿈 횟수가 적으면 언어 모델 토큰 수가 줄어듦

Prettier의 기본값과 동일하게 하려면:

.oxfmtrc.json
json
{
  "printWidth": 80
}

다음 단계