Electron usa electron-packager para empaquetar el paquete linux-x64 y el paquete linux-arm64 para resolver el problema del empaquetado lento

Utilice electron-packager para reproducir el paquete linux-x64 y el paquete linux-arm64 para resolver el problema del empaquetado zip de descarga lenta

En el proceso de usar electron-packager para empaquetar, primero debe descargar el archivo zip correspondiente a la versión de electron. La descarga es muy lenta y puede suceder que descargue el zip cada vez. La solución es descargue el archivo zip con anticipación y modifique
electron: el código fuente del empaquetador especifica la ruta zip al directorio del archivo donde colocó el zip, para evitar que el empaquetador descargue el archivo zip por sí solo. Logre una finalización de paquetes más rápida

El primer paso, descargar el archivo zip.

Debe descargar el archivo zip de la versión correspondiente de su electrn en Internet, y debe prestar atención para descargar el archivo SHASUMS256.txt correspondiente y colocarlo en el mismo directorio que el zip. Dirección de descarga de Electron zip
Para ser coherente con el efecto del artículo y evitar algunos problemas de ruta, puede encontrar la versión correspondiente del archivo zip y descargarlo en el directorio raíz del proyecto en el mismo nivel que node_modules y crear un caché. carpeta

inserte la descripción de la imagen aquí

El segundo paso, instalar el empaquetador y configurar

instalar empaquetador

npm install electron-packager

Configurar el comando de scripts package.json

"scripts": {
    
    
    "packager:win": "electron-packager ./ winApp --platform=win32 --arch=x64   --overwrite --no-prune --ignore=/node_modules",
    "packager:linux-x64": "electron-packager ./ linuxApp --platform=linux --arch=x64   --overwrite --no-prune --ignore=/node_modules",
    "packager:linux-arm64": "electron-packager ./ linuxApp --platform=linux --arch=arm64   --overwrite --no-prune --ignore=/node_modules"
  },

Modificar el código fuente del empaquetador de electrones

Busque el paquete electron-packager en node_modules, ubique node_modules\electron-packager\src\index.js, busque el método packageForPlatformAndArchWithOpts y modifique zipPath para obtener el código.

downloadOpts.arch corresponde a --arch=arm64 en el comando de scripts, y el paquete de Windows no se procesa aquí. El proceso de implementación es consistente con el paquete de Linux y el juicio de ganancia se puede agregar a continuación. El parámetro downloadOpts puede obtener los parámetros en el comando del script

async packageForPlatformAndArchWithOpts (comboOpts, downloadOpts) {
    
    
    // const zipPath = await this.getElectronZipPath(downloadOpts)  ---
    const arch = downloadOpts.arch // +++
    const zipPath = arch === 'arm64' ? './cache/electron-v22.0.0-linux-arm64.zip' : './cache/electron-v22.0.0-linux-x64.zip' // +++

    if (!this.useTempDir) {
    
    
      return this.createApp(comboOpts, zipPath)
    }

    if (common.isPlatformMac(comboOpts.platform)) {
    
    
      /* istanbul ignore else */
      if (this.canCreateSymlinks === undefined) {
    
    
        return this.testSymlink(comboOpts, zipPath)
      } else if (!this.canCreateSymlinks) {
    
    
        return this.skipHostPlatformSansSymlinkSupport(comboOpts)
      }
    }

    return this.checkOverwrite(comboOpts, zipPath)
}

El tercer paso, empacar

paquete linux-x64

npm run packager:linux-x64

paquete linux-arm64

npm run packager:linux-arm64

Después de que el empaquetado sea exitoso, electron-packager fusionará el archivo de descarga de caché en el archivo resources\app debajo del archivo del paquete.
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_42508580/article/details/130760495
Recomendado
Clasificación