Electron package guidelines (Português)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Status de tradução: Esse artigo é uma tradução de Electron package guidelines. Data da última tradução: 2020-04-18. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.
Diretrizes de pacotes do Arch

32-bitCLRCMakeCrossDKMSEclipseElectronFonteFree PascalGNOMEGoHaskellJavaKDEKernelLispMesonMinGWNode.jsNonfreeOCamlPerlPHPPythonRRubyRustVCSWebWine

Este documento abrange padrões e diretrizes para escrever PKGBUILDs para Electron.

Usando o electron do sistema

Arch Linux fornece o pacote electron e pacotes versionados electron* que podem ser usados para executar um aplicativo electron por meio de um wrapper de shellscript:

#!/bin/sh

exec electron /caminho/para/nome_do_app/ "$@"

O diretório nome_do_app/ ou, alternativamente, um pacote de arquivo chamado nome_do_app.asar, pode ser localizado em um aplicativo electro pré-compilado como a pasta resources/app/ (ou resources/app.asar). Todo resto é apenas uma cópia de runtime do electron e pode ser removido no pacote resultante.

Construindo extensões compiladas com o electron do sistema

Alguns aplicativos de electron compilaram extensões nativas vinculadas ao runtime do electron e devem ser compiladas usando a versão correta de electron. Como o npm/yarn sempre será compilado com uma cópia pré-compilada privada de electron, aplique um patch na dependência de electron de package.json para referenciar a mesma versão da dependência de electron do sistema. O sistema de compilação irá baixar a cópia pré-compilada que precisar, compilará as extensões nativas e empacotará tudo em uma distribuição final, mas isso pode ser removido durante a etapa package() como de costume.

Alternativamente, você pode remover a dependência de electron do package.json e definir as variáveis de ambiente corretas antes de executar o npm:

export npm_config_target=$(tail /usr/lib/electron/version)
export npm_config_arch=x64
export npm_config_target_arch=x64
export npm_config_disturl=https://atom.io/download/electron
export npm_config_runtime=electron
export npm_config_build_from_source=true
HOME="$srcdir/.electron-gyp" npm install

Configure HOME para um caminho dentro do $srcdir para que o processo de compilação não coloque nenhum arquivo em seu diretório real HOME. Certifique-se de ajustar o caminho para todos os comandos adicionais que fazem uso do cache .electron-gyp.

(mais detalhes aqui).

Usando electron-builder com electron do sistema

Muitos projetos usam o electron-builder para compilar e empacotar o arquivo JavaScript e os binários Electron. Por padrão, o electron-builder baixa toda a versão de electron definida no arquivo de gerenciamento de pacotes (por exemplo, package.json). Isso pode não ser desejado se você quiser usar o electron do sistema e economizar a largura de banda, já que você vai jogar fora os binários de electron de qualquer maneira. O electron-builder fornece as configurações electronDist e electronVersion, para especificar um caminho personalizado de Electron e a versão para a qual o aplicativo é empacotado, respectivamente.

Encontre o arquivo de configuração do electron-builder (por exemplo, electron-builder.json) e adicione as seguintes configurações:

  • electronDist com /usr/lib/electron para electron ou /usr/lib/electron2 para electron2AUR
  • electronVersion com o conteúdo de /usr/lib/electron/version sem o v no início

Pacotes que aplicam isso: rocketchat-desktopAUR ubports-installer-gitAUR

Configuração do electron-builder

Como alternativa, você pode usar a CLI para alterar/adicionar essas configurações da seguinte maneira:

./node_modules/.bin/electron-builder --linux --x64 --dir $dist -c.electronDist=$electronDist -c.electronVersion=$electronVer

Observe que você precisa especificar todas essas opções ou elas não funcionarão.

Pacotes que aplicam isso: deezloader-remix-gitAUR

Arquitetura

Veja PKGBUILD (Português)#arch.

Um pacote Electron que contém extensões nativas compiladas depende da arquitetura. Caso contrário, é mais provável que seja independente de arquitetura.

Se o pacote contiver uma cópia pré-compilada do electron, será sempre dependente da arquitetura.

Estrutura de diretórios

Se o pacote é dependente de arquitetura, instale o diretório resources/app/ em /usr/lib/nome_do_app/. Do contrário, use /usr/share/nome_do_app/.

Se o pacote contém uma cópia pré-compilada de electron, copie toda a distribuição final para /opt/nome_do_app.