Ionic 프로젝트를 시작하면 루트 디렉토리에 ionic.config.json 파일이 생성된다. 이 파일은 프로젝트의 기본 설정을 담고 있는데, 많은 개발자들이 이 파일의 역할을 제대로 모르고 넘어간다.
이 글에서는 ionic.config.json 파일의 모든 속성과 실제 사용 사례를 설명한다.
1. ionic.config.json이란?
ionic.config.json은 Ionic CLI가 프로젝트를 인식하고 관리하기 위해 사용하는 설정 파일이다. 이 파일이 없으면 Ionic CLI는 프로젝트를 제대로 인식하지 못할 수 있다.
1.1 파일 위치
프로젝트 루트 디렉토리에 위치한다:
mycarbon/
├── ionic.config.json ← 여기!
├── package.json
├── src/
└── ...
1.2 파일 생성 시점
다음 명령어로 Ionic 프로젝트를 생성하면 자동으로 생성된다:
ionic start [projectName] [template]
또는 Angular CLI로 생성한 프로젝트에 Ionic을 추가할 때도 생성된다:
npm install -g @ionic/cli
ionic integrations enable capacitor
2. 기본 구조와 속성
ionic.config.json의 기본 구조는 다음과 같다:
{
"name": "[projectName]",
"integrations": {
"capacitor": {}
},
"type": "angular"
}
2.1 최소 필수 속성
- name: 프로젝트 이름 (필수)
- type: 프로젝트 타입 (필수) -
"angular","react","vue"등
name과 type은 반드시 있어야 한다. 없으면 Ionic CLI가 프로젝트를 인식하지 못한다.3. 각 속성 상세 설명
3.1 name (프로젝트 이름)
프로젝트의 이름을 지정한다. 이 이름은 Ionic CLI 명령어에서 사용되며, 앱 식별자로도 활용된다.
{
"name": "탄소제로"
}
3.2 type (프로젝트 타입)
사용하는 프레임워크를 지정한다. 현재 지원하는 타입:
| 타입 | 설명 |
|---|---|
"angular" |
Angular 프레임워크 사용 |
"react" |
React 프레임워크 사용 |
"vue" |
Vue.js 프레임워크 사용 |
{
"type": "angular"
}
3.3 integrations (통합 설정)
Ionic과 통합할 네이티브 플랫폼이나 도구를 설정한다.
3.3.1 Capacitor 통합
가장 많이 사용하는 통합이다. Capacitor를 사용하면 iOS/Android 네이티브 앱을 빌드할 수 있다.
{
"integrations": {
"capacitor": {}
}
}
Capacitor 설정을 더 자세히 지정할 수도 있다:
{
"integrations": {
"capacitor": {
"enabled": true,
"appId": "[appId]",
"appName": "[appName]"
}
}
}
{}로 충분하다. 실제 설정은 capacitor.config.json 파일에서 관리한다.3.3.2 Cordova 통합 (레거시)
Cordova를 사용하는 경우 (현재는 권장하지 않음):
{
"integrations": {
"cordova": {}
}
}
3.4 기타 선택 속성
다음 속성들은 선택사항이지만, 특정 상황에서 유용하다:
3.4.1 app_id (앱 ID)
앱의 고유 식별자. Capacitor나 Cordova에서 사용한다:
{
"app_id": "[appId]"
}
3.4.2 watchPatterns (파일 감시 패턴)
Ionic CLI가 감시할 파일 패턴을 지정한다:
{
"watchPatterns": [
"src/**/*",
"!src/**/*.spec.ts"
]
}
4. 실제 프로젝트 예제
실제 프로덕션 환경에서 사용하는 ionic.config.json 예제를 보자.
4.1 기본 Angular + Capacitor 프로젝트
가장 일반적인 설정이다:
{
"name": "[projectName]",
"integrations": {
"capacitor": {}
},
"type": "angular"
}
4.2 커스텀 설정이 포함된 프로젝트
더 많은 설정이 필요한 경우:
{
"name": "[projectName]",
"integrations": {
"capacitor": {
"enabled": true
}
},
"type": "angular",
"app_id": "[appId]",
"watchPatterns": [
"src/**/*.ts",
"src/**/*.html",
"src/**/*.scss"
]
}
4.3 React 프로젝트 예제
React를 사용하는 경우:
{
"name": "[projectName]",
"integrations": {
"capacitor": {}
},
"type": "react"
}
4.4 Vue 프로젝트 예제
Vue.js를 사용하는 경우:
{
"name": "[projectName]",
"integrations": {
"capacitor": {}
},
"type": "vue"
}
5. 주의사항과 팁
5.1 파일 수정 시 주의사항
- JSON 문법 준수: JSON 형식이므로 쉼표, 따옴표 등을 정확히 작성해야 한다.
- name 변경 시 주의:
name을 변경하면 일부 CLI 명령어가 영향을 받을 수 있다. - type 변경 금지:
type은 프로젝트 생성 후 변경하면 안 된다. 다른 프레임워크로 전환하려면 새 프로젝트를 만들어야 한다.
5.2 Git 관리
ionic.config.json은 버전 관리에 포함시켜야 한다:
# .gitignore에 추가하지 말 것!
git add ionic.config.json
git commit -m "Add ionic.config.json"
.gitignore에 추가하지 말자.5.3 자주 하는 실수
5.3.1 JSON 문법 오류
마지막 속성 뒤에 쉼표를 넣으면 안 된다:
// ❌ 잘못된 예
{
"name": "[projectName]",
"type": "angular", // ← 마지막 속성 뒤 쉼표
}
// ✅ 올바른 예
{
"name": "[projectName]",
"type": "angular"
}
5.3.2 type 값 오타
type 값은 정확히 지정해야 한다:
// ❌ 잘못된 예
{
"type": "Angular" // 대소문자 구분!
}
// ✅ 올바른 예
{
"type": "angular" // 소문자
}
5.4 디버깅 팁
Ionic CLI가 프로젝트를 인식하지 못할 때:
- 1
ionic.config.json파일이 루트 디렉토리에 있는지 확인 - 2JSON 문법 오류가 없는지 확인 (JSON Validator 사용)
- 3
name과type속성이 있는지 확인 - 4Ionic CLI 버전 확인:
ionic --version
5.5 최적화 팁
- 최소한의 설정만 유지: 필요한 속성만 남기고 나머지는 제거하자. 기본값으로 충분한 경우가 많다.
- watchPatterns 활용: 대용량 프로젝트에서 불필요한 파일 감시를 줄이려면
watchPatterns를 설정하자. - 팀 표준화: 팀 내에서
ionic.config.json형식을 표준화하면 협업이 수월해진다.
마무리
ionic.config.json은 작은 파일이지만 Ionic 프로젝트의 핵심 설정을 담고 있다. 이 파일을 제대로 이해하고 관리하면 프로젝트 설정이 훨씬 수월해진다.
대부분의 경우 기본 설정으로 충분하지만, 특수한 요구사항이 있을 때는 이 가이드를 참고해서 커스터마이징하자.
name과type은 필수 속성- Capacitor 통합은
integrations.capacitor로 설정 - JSON 문법을 정확히 지켜야 함
- 버전 관리에 포함시켜야 함
'개발 > FRONT' 카테고리의 다른 글
| async/await로 완성하는 비동기 조회 마스터 클래스 - Promise 지옥에서 벗어나기 (0) | 2025.12.21 |
|---|---|
| Firebase Storage 파일 업로드 완벽 마스터하기 - 실전 코드로 배우는 업로드 전략 (0) | 2025.12.21 |
| React와 Redux로 데이터 관리하기: 기초 예제 (0) | 2024.07.10 |
| 재미있는 리액트 NPM 라이브러리 5가지 (0) | 2024.07.10 |
| 리액트와 린큐(Linq): 효율적인 데이터 처리를 위한 조합 (0) | 2024.07.10 |