Jump to content
From ArchWiki
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.

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[link quebrado: package not found]

## 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`.

Category:

- Arch package guidelines (Português)

Hidden category:

- Pages with broken package links