Utvikling av Electron-skrivebordsapper · leksjon

Plattformuavhengig pakking

Bli fortrolig med avanserte pakkealternativer og -konfigurasjoner ved hjelp av `electron-builder` for robust distribusjon på tvers av plattformer.

Leksjon 1 av 412 trinn

Plattformuavhengig pakking er en gratis leksjon i Utvikling av Electron-skrivebordsapper på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Utvikling av Electron-skrivebordsapper, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Utvikling av Electron-skrivebordsapper inneholder totalt 4 leksjoner.

Hva er plattformuavhengig pakking?

Når du bygger en Electron-applikasjon, lager du en skrivebordsapp ved hjelp av webteknologier. For å distribuere appen til brukere må du pakke den som en kjørbar fil eller et installasjonsprogram som er tilpasset operativsystemet deres.

Plattformuavhengig pakking betyr å opprette disse distribusjonsfilene for Windows, macOS og Linux fra én enkelt kodebase. Dette sikrer at appen kan nå et bredt publikum, uavhengig av hvilket operativsystem de bruker.

Introduksjon til electron-builder

electron-builder er den foretrukne løsningen for pakking og distribusjon av Electron-applikasjoner. Det er et kraftig og fleksibelt verktøy som automatiserer mye av den komplekse prosessen.

  • Genererer installasjonsprogrammer: Oppretter `.exe`, `.dmg`, `.deb`, `.AppImage` og mer.
  • Code signing: Håndterer signering for sikkerhet og tillit.
  • Automatiske oppdateringer: Integreres med mekanismer for automatiske oppdateringer.
  • Fleksibel konfigurasjon: Kan tilpasses i stor grad via package.json-filen eller en ekstern konfigurasjon.

Grunnleggende oppsett av electron-builder

For å komme i gang installerer du electron-builder som en utviklingsavhengighet og legger til et "build"-skript i package.json. Dette skriptet peker vanligvis på electron-builder-kommandoen.

Her er et grunnleggende oppsett:

{
  "name": "my-electron-app",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "build": "electron-builder"
  },
  "devDependencies": {
    "electron": "^28.0.0",
    "electron-builder": "^24.0.0"
  },
  "build": {
    "appId": "com.yourapp.id"
  }
}

Forstå «appId»

appId (Application ID) er en viktig identifikator for applikasjonen. Det er en unik streng, ofte i omvendt domenenavnformat (for eksempel com.yourcompany.yourappname).

  • Unikhet: Hjelper operativsystemer med å identifisere appen.
  • Oppdateringer: Er avgjørende for å skille appen fra andre under oppdateringer.
  • Datalagring: Brukes av operativsystemet for applikasjonsspesifikke data.

Bruk alltid en unik appId for applikasjonen.

Windows-spesifikke konfigurasjoner

For Windows kan electron-builder generere ulike typer installasjonsprogrammer. De vanligste er NSIS (Nullsoft Scriptable Install System) og Squirrel.Windows.

  • NSIS: Oppretter tradisjonelle `.exe`-installasjonsprogrammer og gir flere tilpasningsmuligheter.
  • Squirrel.Windows: Gir enkle automatiske oppdateringer og en mer ukomplisert installasjonsopplevelse.

Du kan definere Windows-spesifikke innstillinger under nøkkelen "win" i "build"-konfigurasjonen.

Eksempel på Windows-konfigurasjon

Her er et eksempel på hvordan du kan konfigurere `electron-builder` for Windows ved å angi målformater og et ikon:

{
  "name": "my-electron-app",
  "build": {
    "appId": "com.yourapp.id",
    "win": {
      "target": [
        "nsis",
        "squirrel"
      ],
      "icon": "build/icon.ico"
    }
  }
}

macOS-spesifikke konfigurasjoner

På macOS er de primære distribusjonsformatene DMG (Disk Image) og PKG (Installer Package). `electron-builder` håndterer detaljene for disse formatene.

  • DMG: Den vanligste måten å distribuere macOS-apper på, med støtte for installasjon ved å dra og slippe.
  • PKG: En tradisjonell installasjonspakke som passer for mer komplekse installasjoner eller distribusjon i virksomheter.

Viktige macOS-innstillinger omfatter category og bundleId (som bør samsvare med appId).

Eksempel på macOS-konfigurasjon

Dette kodeutdraget viser macOS-spesifikke innstillinger, inkludert målformater, bundle-ID og applikasjonskategori:

{
  "name": "my-electron-app",
  "build": {
    "appId": "com.yourapp.id",
    "mac": {
      "target": [
        "dmg",
        "pkg"
      ],
      "category": "public.app-category.developer-tools",
      "bundleId": "com.yourapp.id",
      "icon": "build/icon.icns"
    }
  }
}

Linux-spesifikke konfigurasjoner

Linux har en rekke pakkeformater. electron-builder støtter populære formater som AppImage, deb og rpm.

  • AppImage: Et universelt format som kjører på de fleste Linux-distribusjoner uten installasjon.
  • deb: For Debian-baserte systemer (Ubuntu, Debian).
  • rpm: For Red Hat-baserte systemer (Fedora, CentOS).

I likhet med macOS angir du ofte en category for applikasjonen.

Eksempel på Linux-konfigurasjon

Her er et eksempel på konfigurasjon for Linux, med ulike målformater og et angitt ikon:

{
  "name": "my-electron-app",
  "build": {
    "appId": "com.yourapp.id",
    "linux": {
      "target": [
        "AppImage",
        "deb",
        "rpm"
      ],
      "category": "Development",
      "icon": "build/icon.png"
    }
  }
}

Test kunnskapene dine om pakking

Koble konfigurasjonsnøkkelen for `electron-builder`-målet til det primære operativsystemet.

Oppsummering og neste steg

Godt jobbet! Du har lært det grunnleggende om plattformuavhengig pakking med electron-builder.

  • Vi utforsket hvordan electron-builder forenkler opprettelsen av installasjonsprogrammer for Windows, macOS og Linux.
  • Du så hvordan du konfigurerer plattformspesifikke innstillinger direkte i package.json.
  • Det er viktig å forstå appId og ulike installasjonsmål (NSIS, DMG, AppImage) for å lykkes med distribusjonen.

Deretter skal du lære om kodesignering og notarization, som er viktige trinn for å sikre at brukere og operativsystemer har tillit til applikasjonen.

Gratis å komme i gang

Lær deg JavaScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
47

Ofte stilte spørsmål

Er leksjonen «Plattformuavhengig pakking» gratis?

Ja – hele teksten i «Plattformuavhengig pakking» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Utvikling av Electron-skrivebordsapper-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Utvikling av Electron-skrivebordsapper inneholder totalt 4 leksjoner.

Hva lærer jeg i «Plattformuavhengig pakking»?

Bli fortrolig med avanserte pakkealternativer og -konfigurasjoner ved hjelp av `electron-builder` for robust distribusjon på tvers av plattformer. Du øver på Utvikling av Electron-skrivebordsapper med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Utvikling av Electron-skrivebordsapper?

Ingen tidligere erfaring er nødvendig. Utvikling av Electron-skrivebordsapper på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Plattformuavhengig pakking»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Utvikling av Electron-skrivebordsapper-leksjonen?

Ja. Alle Utvikling av Electron-skrivebordsapper-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Plattformuavhengig pakking
  2. Kodesignering og notarization
  3. Distribusjon via appbutikker
  4. Automatisere utgivelser med CI/CD
← Tilbake til Utvikling av Electron-skrivebordsapper