2016-11-24 25 views
6

Mam aplikację Electron, w której chcę wprowadzić równoległe kanały dystrybucji: stable, next (dla pierwszych użytkowników) i dev (do testowania najnowszej wersji).Jak tworzyć kanały dystrybucji za pomocą narzędzia do tworzenia elektronów/elektronów?

Każda z nich będzie zawierała gałąź, z nowymi funkcjami pojawiającymi się najpierw w dev, przechodzącymi do next w celu przeprowadzenia testów beta, a następnie przechodzenia na stable.

Używam electron-builder do tworzenia tych pakietów wydań, a ja chcę, aby każdy miał własne autoaktualizacje - więc kiedy opublikuję nowe wydanie next, wszyscy użytkownicy otrzymają aktualizację.

Chcę, aby aplikacje były niezależne - użytkownik może mieć zainstalowane dwa kanały i działać jednocześnie. Będą mieć różne nazwy i różne ikony.

Mogę ręcznie ustawić je w gałęziach, ale tak naprawdę chcę zautomatyzować to tak bardzo, jak to tylko możliwe - publikacja z gałęzi powinna zawierać poprawną nazwę, ikony, identyfikatory i aktualizacje bez ryzyka, że ​​przejdzie do zły kanał.

Czy można to zrobić za pomocą elektronów lub konstruktorów elektronów?

Odpowiedz

5

Jest to możliwe z electron-builder. Chciałbym mieć kilka konfiguracji kompilacji i powiedzieć electron-builder, których użyć podczas budowania.

na przykład utworzyć plik config/beta.json o następującej konfiguracji:

{ 
    "appId": "com.company.beta", 
    "productName": "App Beta", 
    "directories": { 
    "buildResources": "build/beta" // directory containing your build-specific assets (e.g., beta icons - icon.icns, icon.ico & background.png) 
    }, 
    "mac": { 
    "category": "public.app-category.finance" 
    }, 
    "win": { 
    "target": [ 
     "nsis" 
    ] 
    }, 
    "nsis": { 
    "perMachine": false 
    }, 
    "publish": [ 
    { 
     "provider": "s3", 
     "bucket": "com-app-beta" // dedicated S3 bucket for each build 
    } 
    ], 
} 

i powielać config/beta.json dla next.json i current.json (upewnij się, aby edytować ustawienia odpowiednio).

W package.json, dodać następujące tworzyć skrypty (nota --em.name=app-beta nadpisać package.json „s "nazwa" wartość):

{ 
    "scripts": { 
     "build": "build -owl --x64 --config ./config/current.json -p always --em.name=app", 
     "build-beta": "build -owl --x64 --config ./config/beta.json -p always --em.name=app-beta", 
     "build-next": "build -owl --x64 --config ./config/next.json -p always --em.name=app-next" 
    } 
} 

Run kompilacji skryptu, gdy gotowe do wdrożenia:

npm run build-beta