Intlayer 구성 문서
개요
Intlayer 구성 파일은 국제화, 미들웨어 및 콘텐츠 처리와 같은 플러그인의 다양한 측면을 사용자 정의할 수 있도록 합니다. 이 문서는 구성의 각 속성에 대한 자세한 설명을 제공합니다.
구성 파일 지원
Intlayer는 JSON, JS, MJS 및 TS 구성 파일 형식을 지원합니다:
- intlayer.config.ts
- intlayer.config.js
- intlayer.config.json
- intlayer.config.cjs
- intlayer.config.mjs
- .intlayerrc
구성 파일 예제
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH], }, content: { typesDir: "content/types", }, middleware: { noPrefix: false, },};export default config;
구성 참조
다음 섹션에서는 Intlayer에서 사용할 수 있는 다양한 구성 설정에 대해 설명합니다.
국제화 구성
애플리케이션의 사용 가능한 로케일 및 기본 로케일을 포함한 국제화와 관련된 설정을 정의합니다.
속성
locales:
- 유형: string[]
- 기본값: ['en']
- 설명: 애플리케이션에서 지원하는 로케일 목록입니다.
- 예제: ['en', 'fr', 'es']
- requiredLocales:
- 유형: string[]
- 기본값: []
- 설명: 애플리케이션에서 필수로 요구되는 로케일 목록입니다.
- 예제: []
- 참고: 비어 있으면 strict 모드에서 모든 로케일이 필수로 간주됩니다.
- 참고: 필수 로케일은 locales 필드에도 정의되어야 합니다.
strictMode:
- 유형: string
- 기본값: inclusive
- 설명: TypeScript를 사용하여 국제화된 콘텐츠의 강력한 구현을 보장합니다.
- 참고: "strict"로 설정하면 번역 t 함수는 선언된 각 로케일이 정의되어야 합니다. 하나의 로케일이 누락되거나 구성에 선언되지 않은 로케일이 있으면 오류가 발생합니다.
- 참고: "inclusive"로 설정하면 번역 t 함수는 선언된 각 로케일이 정의되어야 합니다. 하나의 로케일이 누락되면 경고가 발생하지만, 구성에 선언되지 않았지만 존재하는 로케일은 허용됩니다.
- 참고: "loose"로 설정하면 번역 t 함수는 모든 기존 로케일을 허용합니다.
defaultLocale:
- 유형: string
- 기본값: 'en'
- 설명: 요청된 로케일을 찾을 수 없을 때 기본적으로 사용되는 로케일입니다.
- 예제: 'en'
- 참고: URL, 쿠키 또는 헤더에 로케일이 지정되지 않은 경우 로케일을 결정하는 데 사용됩니다.
에디터 구성
서버 포트 및 활성 상태를 포함한 통합 에디터와 관련된 설정을 정의합니다.
속성
applicationURL:
- 유형: string
- 기본값: '*'
- 설명: 애플리케이션의 URL입니다. 보안상의 이유로 에디터의 출처를 제한하는 데 사용됩니다.
- 예제:
- '*'
- 'http://localhost:3000'
- 'https://example.com'
- process.env.INTLAYER_EDITOR_URL
- 참고: '*'로 설정된 경우 에디터는 모든 출처에서 접근 가능합니다.
port:
- 유형: number
- 기본값: 8000
- 설명: 시각적 에디터 서버에서 사용하는 포트입니다.
editorURL:
- 유형: string
- 기본값: 'http://localhost:8000'
- 설명: 에디터 서버의 URL입니다. 보안상의 이유로 애플리케이션과 상호작용할 수 있는 출처를 제한하는 데 사용됩니다.
- 'http://localhost:3000'
- 'https://example.com'
- process.env.INTLAYER_EDITOR_URL
- ''*'
- 참고: 포트가 변경되었거나 에디터가 다른 도메인에 호스팅된 경우 설정해야 합니다.
cmsURL:
- 유형: string
- 기본값: 'https://intlayer.org'
- 설명: Intlayer CMS의 URL입니다.
- 예제: 'https://intlayer.org'
- 참고: Intlayer CMS의 URL입니다.
backendURL:
- 유형: string
- 기본값: https://back.intlayer.org
- 설명: 백엔드 서버의 URL입니다.
- 예제: http://localhost:4000
enabled:
- 유형: boolean
- 기본값: true
- 설명: 애플리케이션이 시각적 에디터와 상호작용할 수 있는지 여부를 나타냅니다.
- 예제: process.env.NODE_ENV !== 'production'
- 참고: true로 설정된 경우 에디터는 애플리케이션과 상호작용할 수 있습니다. false로 설정된 경우 에디터는 애플리케이션과 상호작용할 수 없습니다.
clientId:
- 유형: string | undefined
- 기본값: undefined
- 설명: clientId 및 clientSecret은 Intlayer 패키지가 oAuth2 인증을 사용하여 백엔드와 인증할 수 있도록 합니다. 액세스 토큰은 프로젝트와 관련된 사용자를 인증하는 데 사용됩니다.
- 예제: true
- 참고: clientId 및 clientSecret은 비공개로 유지되어야 하며 공개적으로 공유되지 않아야 합니다.
clientSecret:
- 유형: string | undefined
- 기본값: undefined
- 설명: clientId 및 clientSecret은 Intlayer 패키지가 oAuth2 인증을 사용하여 백엔드와 인증할 수 있도록 합니다. 액세스 토큰은 프로젝트와 관련된 사용자를 인증하는 데 사용됩니다.
- 예제: true
- 참고: clientId 및 clientSecret은 비공개로 유지되어야 하며 공개적으로 공유되지 않아야 합니다.
hotReload:
- 유형: boolean
- 기본값: false
- 설명: 애플리케이션이 변경 사항을 감지할 때 로케일 구성을 핫 리로드해야 하는지 여부를 나타냅니다.
- 예제: true
- 참고: 새 사전이 추가되거나 업데이트될 때 애플리케이션은 페이지에 표시할 콘텐츠를 업데이트합니다.
dictionaryPriorityStrategy:
- 유형: string
- 기본값: 'local_first'
- 설명: 로컬 및 원격 사전이 모두 존재하는 경우 사전의 우선 순위를 결정하는 전략입니다.
- 예제: 'distant_first'
미들웨어 구성
쿠키, 헤더 및 로케일 관리를 위한 URL 접두사 처리와 같은 미들웨어 동작을 제어하는 설정입니다.
속성
- headerName:
- 유형: string
- 기본값: 'x-intlayer-locale'
- 설명: 로케일을 결정하는 데 사용되는 HTTP 헤더의 이름입니다.
- 예제: 'x-custom-locale'
- 참고: API 기반 로케일 결정에 유용합니다.
- cookieName:
- 유형: string
- 기본값: 'intlayer-locale'
- 설명: 로케일을 저장하는 데 사용되는 쿠키의 이름입니다.
- 예제: 'custom-locale'
- 참고: 세션 간 로케일을 유지하는 데 사용됩니다.
- prefixDefault:
- 유형: boolean
- 기본값: true
- 설명: URL에 기본 로케일을 포함할지 여부입니다.
- 예제: false
- 참고: false로 설정된 경우 기본 로케일의 URL에는 로케일 접두사가 포함되지 않습니다.
- basePath:
- 유형: string
- 기본값: ''
- 설명: 애플리케이션 URL의 기본 경로입니다.
- 예제: '/my-app'
- 참고: 애플리케이션 URL이 구성되는 방식에 영향을 미칩니다.
- serverSetCookie:
- 유형: string
- 기본값: 'always'
- 설명: 서버에서 로케일 쿠키를 설정하는 규칙입니다.
- 옵션: 'always', 'never'
- 예제: 'never'
- 참고: 로케일 쿠키를 매 요청마다 설정할지 여부를 제어합니다.
- noPrefix:
- 유형: boolean
- 기본값: false
- 설명: URL에서 로케일 접두사를 생략할지 여부입니다.
- 예제: true
- 참고: true로 설정된 경우 URL에는 로케일 정보가 포함되지 않습니다.
콘텐츠 구성
애플리케이션 내 콘텐츠 처리와 관련된 설정으로, 디렉토리 이름, 파일 확장자 및 파생 구성을 포함합니다.
속성
- watch:
- 유형: boolean
- 기본값: process.env.NODE_ENV === 'development'
- 설명: Intlayer가 앱의 콘텐츠 선언 파일 변경 사항을 감지하여 관련 사전을 다시 빌드해야 하는지 여부를 나타냅니다.
- fileExtensions:
- 유형: string[]
- 기본값: ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']
- 설명: 사전을 빌드할 때 검색할 파일 확장자입니다.
- 예제: ['.data.ts', '.data.js', '.data.json']
- 참고: 파일 확장자를 사용자 정의하면 충돌을 방지할 수 있습니다.
- baseDir:
- 유형: string
- 기본값: process.cwd()
- 설명: 프로젝트의 기본 디렉토리입니다.
- 예제: '/path/to/project'
- 참고: 모든 Intlayer 관련 디렉토리를 해결하는 데 사용됩니다.
- dictionaryOutput:
- 유형: string[]
- 기본값: ['intlayer']
- 설명: 사용할 사전 출력 유형입니다. 예: 'intlayer' 또는 'i18next'.
- contentDirName:
- 유형: string
- 기본값: 'src'
- 설명: 콘텐츠가 저장되는 디렉토리의 이름입니다.
- 예제: 'data', 'content', 'locales'
- 참고: 기본 디렉토리 수준에 있지 않은 경우 contentDir을 업데이트하십시오.
contentDir:
- 유형: string
- 파생됨: 'baseDir' / 'contentDirName'
- 설명: 콘텐츠가 저장되는 디렉토리 경로입니다.
- resultDirName:
- 유형: string
- 기본값: '.intlayer'
- 설명: 결과가 저장되는 디렉토리의 이름입니다.
- 예제: 'outputOFIntlayer'
- 참고: 이 디렉토리가 기본 수준에 있지 않은 경우 resultDir을 업데이트하십시오.
resultDir:
- 유형: string
- 파생됨: 'baseDir' / 'resultDirName'
- 설명: 중간 또는 출력 결과를 저장하는 디렉토리 경로입니다.
moduleAugmentationDirName:
- 유형: string
- 기본값: 'types'
- 설명: 모듈 확장을 위한 디렉토리로, IDE 제안 및 타입 검사를 개선합니다.
- 예제: 'intlayer-types'
- 참고: 이를 tsconfig.json에 포함해야 합니다.
moduleAugmentationDir:
- 유형: string
- 파생됨: 'baseDir' / 'moduleAugmentationDirName'
- 설명: 모듈 확장 및 추가 타입 정의를 위한 경로입니다.
- dictionariesDirName:
- 유형: string
- 기본값: 'dictionary'
- 설명: 사전을 저장하는 디렉토리입니다.
- 예제: 'translations'
- 참고: 결과 디렉토리 수준에 있지 않은 경우 dictionariesDir을 업데이트하십시오.
dictionariesDir:
- 유형: string
- 파생됨: 'resultDir' / 'dictionariesDirName'
- 설명: 로컬라이제이션 사전을 저장하는 디렉토리입니다.
- i18nextResourcesDirName:
- 유형: string
- 기본값: 'i18next_dictionary'
- 설명: i18n 사전을 저장하는 디렉토리입니다.
- 예제: 'translations'
- 참고: 결과 디렉토리 수준에 있지 않은 경우 i18nextResourcesDir을 업데이트하십시오.
- 참고: i18next 사전을 빌드하려면 i18next 출력을 포함해야 합니다.
i18nextResourcesDir:
- 유형: string
- 파생됨: 'resultDir' / 'i18nextResourcesDirName'
- 설명: i18n 사전을 저장하는 디렉토리입니다.
- 참고: 이 디렉토리가 i18next 출력 유형에 대해 구성되었는지 확인하십시오.
typeDirName:
- 유형: string
- 기본값: 'types'
- 설명: 사전 타입을 저장하는 디렉토리입니다.
- 예제: 'intlayer-types'
- 참고: 결과 디렉토리 수준에 있지 않은 경우 typesDir을 업데이트하십시오.
typesDir:
- 유형: string
- 파생됨: 'resultDir' / 'typeDirName'
- 설명: 사전 타입을 저장하는 디렉토리입니다.
- mainDirName:
- 유형: string
- 기본값: 'main'
- 설명: 메인 파일을 저장하는 디렉토리입니다.
- 예제: 'intlayer-main'
- 참고: 결과 디렉토리 수준에 있지 않은 경우 mainDir을 업데이트하십시오.
- mainDir:
- 유형: string
- 파생됨: 'resultDir' / 'mainDirName'
- 설명: 메인 애플리케이션 파일이 저장되는 디렉토리입니다.
- excludedPath:
- 유형: string[]
- 기본값: ['node_modules']
- 설명: 콘텐츠 검색에서 제외된 디렉토리입니다.
- 참고: 이 설정은 아직 사용되지 않았지만 향후 구현될 예정입니다.
로거 구성
로거를 제어하는 설정으로, 사용할 접두사를 포함합니다.
속성
- mode:
- 유형: string
- 기본값: default
- 설명: 로거의 모드를 나타냅니다.
- 옵션: default, verbose, disabled
- 예제: default
- 참고: 로거의 모드입니다. Verbose 모드는 더 많은 정보를 기록하지만 디버깅 목적으로 사용할 수 있습니다. Disabled 모드는 로거를 비활성화합니다.
- prefix:
- 유형: string
- 기본값: '[intlayer] '
- 설명: 로거의 접두사입니다.
- 예제: '[my custom prefix] '
- 참고: 로거의 접두사입니다.
이 문서를 개선할 아이디어가 있으시면 GitHub에 풀 리퀘스트를 제출하여 자유롭게 기여해 주세요.
문서에 대한 GitHub 링크