"설정 파일은 웹 반쪽이랑 네이티브 반쪽 사이의 계약서야. 계약서처럼 읽어."
중요한 네 섹션
tauri.conf.json은 작지만 하중을 받쳐. 최상위 네 섹션이 일을 거의 다 해:
- 신원 —
productName,version,identifier(com.acme.myapp같은 역DNS 문자열). identifier는 OS가 네 앱 데이터 폴더 이름을 짓고 번들에 서명하는 방식이야. build— 프론트엔드 연결법:beforeDevCommand(dev 서버 시작),devUrl(어디 사는지, 예:http://localhost:1420),beforeBuildCommand(프로덕션 빌드),frontendDist(Tauri가 실어 보내는 빌드된 정적 파일 폴더).app— 런타임 UI: 초기windows배열(크기, 제목, resizable…)이랑security(특히 Content Security Policy).bundle— 패키징: 번들링이active인지, 어떤targets를 빌드할지(.dmg, .msi, AppImage…), 그리고icon세트.
devUrl vs frontendDist: dev/prod 스위치
이 쌍은 누구나 한 번 헷갈려. dev에선 Tauri가 웹뷰를 devUrl로 가리켜 — 핫리로드되는 라이브 dev 서버. build에선 서버가 없어. Tauri가 앱 안에 번들된 frontendDist의 정적 파일을 로드해. 같은 앱, HTML 먹이는 방식 둘. 빌드한 앱은 빈 창인데 dev는 되면, frontendDist가 엉뚱한 폴더를 가리키는 게 흔한 범인이야.
스키마 줄은 네 친구야
첫 줄 "$schema": "https://schema.tauri.app/config/2"는 장식이 아냐 — 에디터에 모든 필드의 자동완성이랑 검증을 줘. 에디터에서 키가 빨개지면 오타거나 v2에 없는 거야. v1용으로 쓰인 블로그보다 스키마를 믿어.