이 페이지와 원하는 AI 어시스턴트를 사용하여 문서를 요약합니다
버전 기록
- "문서 초기화"v9.0.02026. 6. 25.
이 페이지의 콘텐츠는 AI를 사용하여 번역되었습니다.
영어 원본 내용의 최신 버전을 보기If you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
intlayerMinify
intlayerMinify는 프로덕션 빌드 중에 컴파일된 사전 JSON 파일을 압축(minify)하는 Vite 플러그인입니다. 불필요한 모든 공백을 제거하고, intlayerPrune과 결합하면 번들 크기를 더욱 줄이기 위해 콘텐츠 필드 이름을 짧은 알파벳 별칭(a, b, c, …)으로 선택적으로 변경합니다.
intlayer()를 사용하면 이 플러그인은 자동으로 포함되고 구성됩니다. 플러그인 스택을 직접 구성할 때만 수동으로 등록해야 합니다.
사용법
코드를 클립보드에 복사
// vite.config.tsimport { defineConfig } from "vite";import { intlayerMinify, intlayerPrune } from "vite-intlayer";import { createPruneContext } from "@intlayer/babel";const pruneContext = createPruneContext();export default defineConfig({ plugins: [ intlayerPrune(intlayerConfig, pruneContext), intlayerMinify(intlayerConfig, pruneContext), ],});활성화 조건
intlayerMinify는 다음 세 가지가 모두 참일 때만 활성화됩니다:
- Vite 명령어가
build인 경우 (serve/ dev가 아님). build.optimize가true이거나 (빌드의 기본값인undefined여서true로 설정된 경우).- Intlayer 설정에서
build.minify가true인 경우.
에디터는 완전하고 사람이 읽을 수 있는 사전 콘텐츠를 필요로 하므로 editor.enabled가 true이면 자동으로 비활성화됩니다.
압축 대상
플러그인은 intlayer.system에서 확인된 다음 두 개의 사전 위치를 대상으로 합니다:
dictionariesDir— 정적 모든 언어 사전 (예:.intlayer/dictionaries/*.json)dynamicDictionariesDir— 언어별 동적 사전
페치 모드 사전(fetchDictionariesDir)은 런타임에 원래 필드 이름을 사용하여 원격 API에서 제공되므로 절대 압축되지 않습니다. 필드 이름을 바꾸면 서버 응답과 클라이언트 측 속성 액세스 사이에 불일치가 발생할 수 있기 때문입니다.
필드 이름 난독화 (속성 압축)
intlayerPrune이 코드베이스를 분석하고 pruneContext.dictionaryKeyToFieldRenameMap을 채우면, intlayerMinify도 콘텐츠 필드 이름을 짧은 별칭으로 바꿉니다. 예를 들어:
코드를 클립보드에 복사
// 변경 전{ "key": "myDict", "content": { "title": "Hello", "description": "World" } }// 변경 후 (난독화 포함){ "key": "myDict", "content": { "a": "Hello", "b": "World" } }이에 해당하는 소스 파일 속성 액세스는 intlayerOptimize 내부의 Babel 과정을 통해 이름이 변경되므로 런타임 동작은 그대로 유지됩니다.
Intlayer 내부 필드(nodeType, translation 등)는 이름이 바뀌지 않습니다.
예외적 사전 (Edge-cases)
pruneContext.dictionariesWithEdgeCases에 플래그가 지정된 사전(정리 단계에서 감지된 구조적 기형)은 손상된 데이터가 전달되는 것을 방지하기 위해 완전히 무시되며, 압축되거나 난독화되지 않습니다.
한정자 그룹 (컬렉션 / 변형 / 메타 레코드)
qualifierTypes 배열을 갖는 사전(컬렉션, 변형 및 메타 레코드)의 경우 플러그인은 qualifierTypes 배열과 meta 사이드 맵을 그대로 유지합니다. content 항목의 필드 이름만 난독화됩니다. 런타임에 선택기 일치에 사용되는 복합 키는 절대 수정되지 않습니다.