레이어
Nuxt는 기본 파일, 설정 등을 확장할 수 있는 강력한 시스템을 제공합니다.
Nuxt의 핵심 기능 중 하나는 레이어와 확장 지원입니다. 기본 Nuxt 애플리케이션을 확장하여 컴포넌트, 유틸리티, 설정 등을 재사용할 수 있습니다. 레이어 구조는 표준 Nuxt 애플리케이션과 거의 동일하여 작성 및 유지 관리가 쉽습니다.
사용 사례
nuxt.config와app.config를 사용하여 여러 프로젝트에서 재사용 가능한 설정 프리셋을 공유components/디렉토리를 사용하여 컴포넌트 라이브러리 생성composables/및utils/디렉토리를 사용하여 유틸리티 및 컴포저블 라이브러리 생성- Nuxt 모듈 프리셋 생성
- 여러 프로젝트에서 표준 설정 공유
- Nuxt 테마 생성
- 모듈식 아키텍처를 구현하고 대규모 프로젝트에서 도메인 주도 설계(DDD) 패턴을 지원하여 코드 조직 강화
사용법
기본적으로, 프로젝트 내의 ~~/layers 디렉토리에 있는 모든 레이어는 프로젝트의 레이어로 자동 등록됩니다.
레이어 자동 등록은 Nuxt v3.12.0에서 도입되었습니다.
또한, 각 레이어의 srcDir에 대한 이름이 지정된 레이어 별칭이 자동으로 생성됩니다. 예를 들어, ~~/layers/test 레이어에 #layers/test로 접근할 수 있습니다.
이름이 지정된 레이어 별칭은 Nuxt v3.16.0에서 도입되었습니다.
또한, nuxt.config 파일에 extends 속성을 추가하여 레이어에서 확장할 수 있습니다.
nuxt.config.ts
export default defineNuxtConfig({
extends: [
'../base', // 로컬 레이어에서 확장
'@my-themes/awesome', // 설치된 npm 패키지에서 확장
'github:my-themes/awesome#v1', // git 저장소에서 확장
]
})
비공개 GitHub 저장소에서 확장하는 경우 인증 토큰을 전달할 수도 있습니다:
nuxt.config.ts
export default defineNuxtConfig({
extends: [
// 레이어별 설정
['github:my-themes/private-awesome', { auth: process.env.GITHUB_TOKEN }]
]
})
레이어 소스 옆의 옵션에서 별칭을 지정하여 레이어의 별칭을 재정의할 수 있습니다.
nuxt.config.ts
export default defineNuxtConfig({
extends: [
[
'github:my-themes/awesome',
{
meta: {
name: 'my-awesome-theme',
},
},
],
]
})
Nuxt는 원격 레이어 확장을 위해 unjs/c12 및 unjs/giget를 사용합니다. 자세한 정보와 모든 사용 가능한 옵션은 문서를 참고하세요.