Electron package guidelines (Português)

From ArchWiki
Jump to navigation Jump to search
Status de tradução: Esse artigo é uma tradução de Electron package guidelines. Data da última tradução: 2019-06-19. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.
Diretrizes de criação de pacotes

32-bitCLRCrossEclipseElectronFree PascalGNOMEGoHaskellJavaKDEKernelLispMinGWNode.jsNonfreeOCamlPerlPHPPythonRRubyRustVCSWebWine

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

Usando o electron do sistema

Arch Linux fornece os pacotes globais electron e electron2 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 electron2
  • 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

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.