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-builderforlot 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-forgehar fortsatt bare halvparten av stjernene (6k) tilelectron-builder(13k)electron-forgehar over 210 åpne problemer.electron-builderhar over 340.Konfigurasjonen for
electron-forgevirker 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-forgeser ikke ut til å støtte automatisk inkludering av node_modules frawebpack externals- du må selv lage en funksjon for den magiskepackagerConfig.ignore-parameteren, og i mitt tilfelle måtte jeg skrive en package.json-parser og etnpm 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/
