"tauri build는 명령 하나에 일 두 개가 들어 있어. 릴리스 바이너리를 컴파일하고, 그다음 사람들이 진짜로 더블클릭할 설치 파일로 감싸기."
두 단계
tauri build를 돌리면 먼저 beforeBuildCommand를 실행해서 정적 프론트엔드를 만들고, Rust 코어를 release 모드(최적화가 붙고, 컴파일은 느리고, 대신 작고 빠르게 돌아)로 컴파일하고, 프론트엔드를 바이너리 안에 박고, 마지막으로 번들러한테 넘겨서 OS별 설치 포맷을 만들어. 결과물은 메일로 보낼 헐렁한 실행파일이 아니라 src-tauri/target/release/bundle/ 아래 제대로 된 설치 파일이야.
릴리스는 완전히 다른 물건이야
tauri dev에서 잰 건 전부 debug 빌드였어. 릴리스는 진짜 최적화를 걸어. 바이너리가 확 줄고 더 빨라지지. Tauri가 '작은 앱'으로 이름난 이유가 실제로 사는 곳이 거기야. 대신 컴파일 시간이 대가고 — 깨끗한 상태에서 릴리스를 빌드하면 몇 분 걸려. 그래서 다들 CI에서 Rust target/ 디렉터리를 캐싱하고, 크기나 성능은 개발 빌드 말고 릴리스 결과물로만 판단하는 거야.
쓰게 될 빌드 손잡이들
플래그 두 개가 일찍부터 쓸모 있어. --no-bundle은 설치 파일을 안 만들고 바이너리만 컴파일해 — 패키징된 결과물이 필요 없는 CI의 '빌드는 되나?' 확인에 딱이야. --bundles <format>은 설정에 적힌 전부 대신 어떤 설치 포맷만 만들지 좁혀줘(dmg만 뽑는다든지). 그리고 --debug는 릴리스 최적화 없이 테스트용으로 뭔가를 패키징할 때 debug 빌드를 번들해줘.