electron-svelte-template Svelte Themes

Electron Svelte Template

Electron + Svelte template app with full infra and workflows

Electron-Svelte template

简体中文 | English | Español | Português

Template de app portátil para desktop para Windows, Linux e MacOS usando Electron.js e Svelte

Conteúdo

💯 Casos de Uso

✨ Recursos

Repositório modelo para criar aplicativos usando Electron.js como backend e Svelte como frontend.

  • Frontend - frontend/package.json
    • Svelte como o framework
    • Vite como o bundler
    • i18n para aplicativos multilíngues no frontend
    • svelte-check como o verificador de vulnerabilidades
    • Prettier
    • Eslint
    • Typescript
  • Backend - backend/package.json
    • Electron como o framework
    • Electron forge como o bundler
    • Playwright como a engine de teste
    • Electronegativity como o verificador de vulnerabilidades
    • Nodemon para desenvolvimento com hot-reload
    • Atualização automática nativa com base em GitHub Releases (não requer assinatura de software)
    • Prettier
    • Eslint
    • Typescript
  • Infraestrutura - ./package.json
    • Husky ativado com:
      • Mensagens de commit conforme @commitlint/config-conventional
      • Lint automático antes do git commit
      • Lint, teste e build antes do git push
      • npm ci para o package.json raiz, backend e frontend após executar git pull
    • VS Code
      • .vscode/launch.json e .vscode/tasks com o VS Code pronto para depuração
      • Extensões recomendadas
    • GitHub
      • Modelo de pull request
      • Modelo de issue para bug report e feature request
      • Workflow para CI executando testes no push
      • Workflow para atualizar automaticamente dependências para a última versão diariamente (se passar na CI, aumenta a patch version)
      • Workflow para criar release na atualização automática. Também criar release com git tag seguindo a versionamento semântico.
        • Ex: git tag v2.11.553 && git push -u origin main --tags

🚩 Considerações

  • Existem apenas testes de ponta a ponta (e2e) backend/src/__tests__/e2e. Não há teste apenas de frontend ou apenas de backend
  • O resultado do build é um arquivo .zip com um executável portátil. O portátil é sempre gerado para o sistema operacional atual em execução
  • Nenhum instalador é gerado porque para usar instaladores requer pagamento por chaves de assinatura

🚀 Utilização

Execute os comandos a partir do diretório raiz

# Instala todas as dependências no diretório raiz, backend e frontend. Também instala git hooks do husky
npm ci
# Executa todos os testes (apenas testes e2e estão disponíveis)
npm run test
# Inicia frontend e backend e inicializa o app com hot-reload habilitado
npm run start
# Gera um zip com um executável portátil
npm run build
# Para fazer uma release, incremente `version` dentro de `backend/package.json`. Os outros `package.json` não têm o campo `version`
cd backend && npm version patch

🐛 Possíveis Problemas

  • O workflow de auto-update atualiza as dependências de prod e dev para suas últimas versões e executa o CI. Se tudo passar, uma nova release é criada. Se optar por usar isso, certifique-se de ter uma boa cobertura de testes para evitar que degradações na release.
  • Se encontrar algum problema, considere relatar um Issue
  • Mensagens de erro podem ser encontradas em:
    • Linux: ~/.config/electron-svelte-template/log
    • Mac: ~/Library/Application Support/electron-svelte-template/log
    • Windows: %APPDATA%/electron-svelte-template/log
  • Marque o checkbox abaixo para evitar que o workflow de auto-update do GitHub falhe com falta de permissão de escrita - Settings > Actions > General.

💻 Desenvolvimento

Requer Node >=18.

⚙️ Configuração

Para executar no WSL, alguns pacotes precisam ser instalados:

sudo apt install libgconf-2-4 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libgbm-dev libnss3-dev libxss-dev libasound2 zip

Para reduzir o ruído devido ao dbus no WSL:

source scripts/dbus.sh

Os scripts scripts/force_update* são usados no .github/workflows/auto_update.yml para forçar a atualização de dependências de prod e dev para suas últimas versões para validação.

🧪 Testes

npm ci
npm run test

🫡 Obrigado? De Nada

Se eu te ajudei, envie um "Obrigado!" 👋 através do pix 😊

a09e5878-2355-45f7-9f36-6df4ccf383cf

📜 Licença

De acordo com a licença, este software não fornece garantia alguma, e o autor se isenta de qualquer responsabilidade pelo uso. Use por sua própria responsabilidade e risco.

GNU GPLv3

Top categories

Loading Svelte Themes