구성
Oxfmt는 기본적으로 작동하지만, 대부분의 팀은 로컬 실행, 에디터 및 CI 간에 형식 일관성을 유지하기 위해 구성 파일을 커밋합니다.
이 페이지는 프로젝트 구성에 집중합니다: 서식 옵션, 무시 패턴 및 실험적 기능.
구성 파일 생성
현재 디렉터리에 시작용 구성 파일을 생성하려면:
oxfmt --initOxfmt는 현재 디렉터리부터 시작하여 트리 상향으로 .oxfmtrc.json 또는 .oxfmtrc.jsonc를 자동으로 검색합니다. 또한 구성 파일을 명시적으로 전달할 수도 있습니다:
oxfmt -c path/to/yourconfig.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 필드를 추가하세요:
{
"$schema": "./node_modules/oxfmt/configuration_schema.json"
}.editorconfig
Oxfmt는 다음 .editorconfig 속성을 읽습니다:
end_of_line→endOfLineindent_style→useTabsindent_size→tabWidthmax_line_length→printWidthinsert_final_newline→insertFinalNewline
루트 섹션과 글로브 기반 오버라이드 모두 지원됩니다.
[*]
indent_size = 4
[*.{js,ts}]
indent_size = 2Oxfmt는 현재 디렉터리에서 가장 가까운 .editorconfig만 사용합니다:
root = true는 무시됨- 중첩된
.editorconfig파일은 병합되지 않음
오버라이드
특정 파일에 대해 다른 서식 옵션을 적용하려면 overrides 필드를 사용하세요:
{
"printWidth": 100,
"overrides": [
{
"files": ["*.test.js", "*.spec.ts"],
"options": {
"printWidth": 120
}
},
{
"files": ["*.md", "*.html"],
"excludeFiles": ["*.min.js"],
"options": {
"tabWidth": 4
}
}
]
}각 오버라이드 항목에는 다음이 포함됩니다:
files(필수): 파일을 매칭할 글로브 패턴excludeFiles(선택 사항): 이 오버라이드에서 제외할 글로브 패턴options: 적용할 서식 옵션
글로브 패턴은 Oxfmt 구성 파일이 포함된 디렉터리 기준으로 해결됩니다.
우선순위
옵션은 순서대로 적용됩니다(우선순위 낮음 → 높음):
- 기본값
.oxfmtrc.json(c)루트 옵션.oxfmtrc.json(c)overrides옵션- 설정되지 않은 필드에 대해
.editorconfig가 지원하는 옵션으로 대체
Oxfmt 전용 옵션
insertFinalNewline
서식 처리된 파일 끝에 최종 줄바꿈을 추가할지 여부를 제어합니다. 기본값은 true입니다.
이는 일부 환경(예: Salesforce)에서 끝에 있는 줄바꿈을 제거하기 때문에, 자주 요청되는 Prettier 기능입니다.
printWidth
Oxfmt는 기본적으로 printWidth: 100을 사용합니다(보통의 Prettier는 80). 이유는 다음과 같습니다:
- 타입 주석으로 인해 TypeScript 코드가 더 길어짐
- 임포트 문은 종종 많은 지정자를 포함함
- 현대 모니터의 해상도가 넓음
- 줄바꿈 횟수가 적으면 언어 모델 토큰 수가 줄어듦
Prettier의 기본값과 동일하게 하려면:
{
"printWidth": 80
}