본문 바로가기
앱 개발

빌드와 배포

새 앱과 기존 앱의 배포 빌드를 구분하고 결과물을 확인합니다.

아래 명령과 기본 결과물은 npm에 공개된 Frontron·create-frontron 0.13.3 기준입니다.

새 앱

npm run build

스타터의 build 스크립트는 타입 검사, Vite 빌드, Electron 코드 컴파일과 패키징을 실행합니다.

완성된 데스크톱 앱은 프로젝트의 output/에 생성됩니다. dist/의 웹 파일과 dist/electron/의 Electron 코드는 패키징에 쓰는 중간 결과물입니다.

기존 웹앱

npm run frontron:package

감지된 웹 런타임을 먼저 빌드한 뒤 Electron 앱으로 패키징합니다. 정적 출력과 Node 서버 출력은 선택된 어댑터에 따라 다르게 준비됩니다.

npm run frontron:build는 웹·Electron 코드와 런타임 출력을 준비하는 단계까지 실행합니다. 설치·배포 파일을 만들 때는 이 단계까지 포함하는 frontron:package를 실행하세요.

완성된 데스크톱 앱은 기본적으로 웹앱 프로젝트의 release/에 생성됩니다. dist-electron/은 Electron 코드의 중간 결과물입니다. 모노레포에서는 선택한 웹앱 패키지 안에서 결과물을 찾으세요.

실행·배포할 파일

아래는 별도 패키징 설정을 추가하지 않았을 때의 결과물입니다. 앱이름은 package.json의 build.productName, 버전은 version, 아키텍처는 x64나 arm64 등 빌드 대상에 해당합니다.

프로젝트·운영체제결과물실행·배포 방법
새 앱 · Windowsoutput/앱이름-버전-아키텍처.msi설치 파일입니다. 사용자에게 전달하고 실행하여 설치합니다.
새 앱 · Windowsoutput/앱이름.exe설치 없이 실행하는 portable 앱입니다. 이 파일을 전달하고 직접 실행합니다.
기존 웹앱 · Windowsrelease/앱이름 Setup 버전.exe기본 NSIS 설치 파일입니다. 사용자에게 전달하고 실행하여 설치합니다.
새 앱 · macOSoutput/*.dmg, output/*.zipDMG를 열어 앱을 Applications로 옮기거나 ZIP을 풀어 .app을 실행합니다. DMG 또는 ZIP을 배포합니다.
기존 웹앱 · macOSrelease/*.dmg, release/*.zipDMG를 열어 앱을 Applications로 옮기거나 ZIP을 풀어 .app을 실행합니다. DMG 또는 ZIP을 배포합니다.

Windows x64 결과물 폴더의 win-unpacked/는 패키징된 앱을 직접 검사할 때 사용합니다. 안의 .exe를 실행하되, 함께 생성된 파일과 폴더를 모두 유지하세요.

출력 위치는 package.json의 build.directories.output에서 확인할 수 있습니다. 기존 웹앱에 이 값이 이미 있으면 유지됩니다. 파일 형식과 이름을 바꾼 프로젝트는 build.win.target, build.mac.target, 각 타깃의 artifactName 설정을 확인하세요. 새 앱의 Windows 기본 타깃은 MSI와 portable이고, 기존 웹앱의 Windows와 두 경로의 macOS 기본 타깃은 electron-builder 기본값을 따릅니다.

배포 전 확인

  1. 위 표의 파일을 설치하거나 직접 실행해 패키징된 앱을 확인합니다.
  2. 파일 선택, 저장, 클립보드와 외부 링크가 정상 동작하는지 확인합니다.
  3. 앱 외부 URL이 시스템 브라우저로 열리는지 확인합니다.
  4. Windows와 macOS를 모두 배포한다면 각 운영체제에서 따로 빌드하고 검사합니다.

Frontron은 앱 내부에 안정적인 frontron://app origin을 사용합니다. 패키징된 정적 서버나 프레임워크 서버는 외부에 공개되지 않는 loopback 범위에서 동작합니다.