javascript - electron-builder vs electron-packager


Hva er hovedforskjellen mellom electron-builder og electron-packager. Finnes det noen eksempelprosjekter for begge? Hvilken er best for bygging av en frittstående .exe-applikasjon?

Svar #1

Oppdatering april 2024

Situasjonen har snudd:

  • Electron-nettstedet har "velsignet" electron-forge (som bruker electron-packager) som "det" verktøyet å bruke.

  • Den eneste utvikleren av electron-builder forlot prosjektet sent i 2021. En annen utvikler har prøvd å holde det i live, men kodesignering (spesielt med macOS gatekeeper) sluttet å fungere for en stund siden, og ting som signert asar-støtte og electron-fuser er ikke lett å innlemme.

  • electron-forge har fortsatt bare halvparten av stjernene (6k) til electron-builder (13k)

  • electron-forge har over 210 åpne problemer. electron-builder har over 340.

  • Konfigurasjonen for electron-forge virker som om den ble laget av noen som kommer fra Ruby on Rails: det finnes udokumenterte «konvensjoner» (i stedet for eksplisitt konfigurasjon). For eksempel bruker standard webpack-malen magiske kataloger (som .webpack/main) som du må lete gjennom feillogger og plugin-kode for å finne ut hva som skjer og hvorfor ting ikke fungerer.

  • electron-forge ser ikke ut til å støtte automatisk inkludering av node_modules fra webpack externals - du må selv lage en funksjon for den magiske packagerConfig.ignore-parameteren, og i mitt tilfelle måtte jeg skrive en package.json-parser og et npm list-liknende bibliotek.

TL;DR: Hvis applikasjonen din ser ut som det electron-forge-designerne forestilte seg at en «typisk» electron-applikasjon burde være, bør malen deres «bare fungere». Hvis du derimot beveger deg bort fra det, forvent vanskeligheter.

Oppdatering august 2019

Jeg har brukt electron-builder i mer enn ett år nå, og pakker appen min for macOS, Windows 10 og Ubuntu Desktop. Vedlikeholderen, develar, la til et flott dokumentasjonsnettsted tidligere i år, og har holdt seg oppdatert på gatekeeper-endringer i macOS for å sikre at installasjonsprogrammer og oppdateringer fortsatt fungerer.

Oppdatering november 2018

Hovedutvikleren av electron-builder har fortsatt å legge ned betydelig arbeid i prosjektet, inkludert støtte for Electron 3, nye mål for publisering av artefakter, og utgivelser regelmessig med feilrettinger. Den tidligere vedlikeholderen trådte tilbake fra electron-packager, og de har fortsatt ingen vedlikeholder for Windows, og har fortsatt ikke støtte for signerte Windows-binærer. Til referanse:

electron-packager ( 72 releases,  17 open issues,   639 closed)
electron-builder  (651 releases, 399 open issues, 2,603 closed)

Oppdatering desember 2017

Electron-builder har blitt grundig jobbet med det siste året, med nye versjoner som inkluderer funksjoner og feilrettinger hver uke. Dokumentasjonen på https://www.electron.build/ er utmerket, og ved å følge "Quick Setup Guide" (på første side, noen seksjoner lenger ned) får man et standardprosjekt og trinnvise instruksjoner.

Oppdatering juni 2017

electron-builder utfører både pakketrinnet (som det electron-packager gjør), og bygger plattformspesifikke installasjonsprogrammer (som pkg eller Mac AppStore for Mac, NSIS eller Windows Store for Windows, og AppImage for Linux).

For mitt eksisterende prosjekt feilet electron-forge med en "manglende avhengighet" som var til stede i min package.json og node_modules.

Det er ikke godt dokumentert, men electron-builder byttet fra Squirrel.windows til NSIS tidligere i år som standard Windows-installerer. NSIS lager betydelig mindre installasjonspakker (30 MB ned fra 90 MB, i mitt prosjekt sitt tilfelle).

Opprinnelig innlegg

Fra mars 2017 har de i stor grad funksjonslikhet. Jeg har funnet følgende:

  • De er begge i organisasjonen «electron-userland», så de er begge «ekte».
  • electron-packager har ingen Windows-vedlikeholder
  • electron-builder har flere bidragsytere, og mange flere lukkede problemer, så det kan ha vært flere feil, eller flere brukere. electron-packager har flere stjerner.
  • electron-builder støtter betydelig flere målformater enn electron-packager
  • electron-forge er basert på electron-packager, så det kan være en enklere «out of the box»-opplevelse.

Svar #2

electron-packager ble (oppdatering: endret i denne committen: «refactor: merge electron-packager») brukt av electron-builder. Denne artikkelen sier

Hvis du virkelig vil gå all-in, ta en titt på electron-builder som tar pakkene produsert av electron-packager og lager automatiske installasjonsprogrammer.

  • electron-builder eksempel

  • electron-builder React malprosjekt

  • electron-packager React boilerplate-prosjekt, selv om det finnes en GitHub-sak for å bruke electron-builder.

Svar #3

electron-packager pakker kildekoden og genererer en kjørbar fil.

electron-builder kan generere installasjonsprogram med «automatisk oppdatering» støtte i electron.

http://electron.atom.io/docs/api/auto-updater/

Relaterte artikler