Présentation d'Electron Forge 6
Nous sommes très heureux de vous annoncer qu'Electron Forge v6.0.0 est maintenant disponible ! Cette nouvelle version est la première version majeure de Forge depuis 2018 et transfère le projet qui était dans electron-userland
vers l'organisation principale electron
sur Github.
Lisez donc la suite afin de découvrir ce qu'il y a de nouveau et comment vous pouvez adopter Electron Forge pour votre application!
Qu'est-ce qu'Electron Forge ?
Electron Forge est un outil pour l'empaquetage et la ditribution des applications Electron. Il unifie l'écosystème d'outillage d'Electron en une seule interface extensible afin que tout le monde puisse se lancer dans la création d'applications Electron.
Les fonctionnalités principales comprennent :
- 📦 Empaquetage d'application et signature de code
- 🚚 Installateurs personnalisables pour Windows, macOS et Linux (DMG, deb, MSI, PKG, AppX, etc.)
- ☁️ Flux de publication automatique pour les fournisseurs de cloud (GitHub, S3, Bitbucket, etc.)
- ⚡ Modèles de structure standard de projet pour webpack et TypeScript faciles à utiliser
- ⚙️ Prise en charge des modules Node.js natifs
- 🔌 API Javascript Extensible
Pour en savoir plus vous pouvez aller voir le document Pourquoi Electron Forge pour comprendre la philosophie et l'architecture de Forge.
Quoi de neuf dans la v6 ?
Ré-écriture totale
Pour les versions de v1 à v5, Electron Forge était basée sur le projet, désormais abandonnée, electron-compile
. Forge 6 est une ré-écriture complère du projet ayant une toute nouvelle architecture modulaire pouvant être étendue afin de satisfaire les besoins de toute application Electron.
Au cours des dernières années, Forge v6.0.0-beta
a atteint la parité de fonctionnalités avec la v5 et le taux de perte de code a ralenti de façon spectaculaire, rendant l'outil prêt pour l'adoption générale.
Pour les versions 5 et précédentes, Electron Forge a été publié sur npm dans le paquet electron-forge
. À partir de la réécriture et v6, Forge maintenant structuré en tant que projet monorepo avec de nombreux projets plus petits.
Soutien technique officiel
Historiquement, les responsables d'Electron restaient neutres quant aux outils de génération, laissant la tâche à divers paquets de la communauté. Cependant, avec l'évolution d'Electron en tant que projet, il est devenu plus difficile pour les nouveaux développeurs Electron de savoir quels outils ils ont besoin pour construire et distribuer leurs applications.
Pour aider les développeurs Electron dans le processus de distribution, nous avons décidé de faire de Forge le pipeline de construction officiel pour Electron.
Au cours de la dernière année, nous avons lentement intégré Forge dans la documentation officielle d'Electron, et nous avons récemment déplacé Forge de son ancien logis dans electron-userland/electron-forge
pour l'installer dans le dépôt electron/forge. Maintenant, nous sommes enfin prêts à diffuser Electron Forge à un large public !
Premiers Pas
Initialisation d'un nouveau projet Forge
La mise en place d'un nouveau projet Electron Forge peut être fait en utilisant le script CLI create-electron-app
.
- Yarn
- npm
yarn create electron-app my-app --template=webpack
cd my-app
yarn start
npm init electron-app@latest my-app -- --template=webpack
cd my-app
npm start
Le script va créer un projet Electron dans le dossier my-app
avec un bundling complètement JavaScript et un pipeline de construction préconfiguré.
Pour plus d'informations, consultez le guide Getting Started dans la documentation de Forge.
Le snippet ci-dessus utilise le modèle Webpack de Forge, nous recommandons celui-ci comme point de départ pour les nouveaux projets Electron. Ce modèle est construit autour du plugin @electron-forge/plugin-webpack
qui intègre webpack avec Electron Forge sur plusieurs points dont les suivants:
- amélioration du flux de développement en local avec webpack-dev-server, y compris le support de HMR dans le moteur de rendu ;
- gestion de la logique de compilation des paquets webpack avant l'empaquetage de l'application ; et
- ajout de la prise en charge des modules Node natifs dans le processus de groupage webpack.
Si vous avez besoin du support de TypeScript, pensez plutôt à utiliser le Webpack + TypeScript Template.
Importation d'un projet existant
Le CLI Electron Forge contient également une commande d'importation pour les projets Electron existants.
- Yarn
- npm
cd my-app
yarn add --dev @electron-forge/cli
yarn electron-forge import
cd my-app
npm install --save-dev @electron-forge/cli
npm exec --package=@electron-forge/cli -c "electron-forge import"
Lorsque vous utilisez la commande import
, Electron Forge ajoutera quelques dépendances essentielles et créera une nouvelle configuration forge.config.js
. Si vous avez un outil de compilation existant (par exemple, Electron Packager, Electron Builder, ou Forge 5), il essaiera de migrer autant de paramètres que possible. Certaines de vos configurations existantes pourront tout de même avoir besoin d'être migrées manuellement.
Des détails sur la migration manuelle peuvent être trouvés dans la documentation d'importation de Forge. Si vous avez besoin d'aide, veuillez vous rendre sur notre serveur Discord!
Pourquoi adopter Forge?
Si vous avez déjà des outils pour empaqueter et publier votre application Electron, les avantages associés à l'adoption d'Electron Forge dépassent largement les tracas du basculement.
Nous pensons qu'il y a deux avantages majeurs à utiliser Forge:
-
Forge incorpore de nouvelles fonctionnalités pour la construction d'applications dès qu'elles sont prises en charge dans Electron. Dans de tes cas, vous n'aurez pas besoin avant la mise à niveau de câbler le support du nouvel outillage, ou attendre que ce support soit éventuellement implémenté par d'autres paquets . Pour des exemples récents, voir binaires universels macOS et vérification d'intégrité ASAR.
-
L'architecture multi-package de Forge en facilite la compréhension et l'extension. Puisque Forge est composé de nombreux packages plus petits aux responsabilités claires, il est plus facile de suivre le flux de code. De plus, La conception extensible de l'API de Forge signifie que vous pouvez écrire, pour les cas d'utilisation avancés, votre propre logique de compilation supplémentaire séparée des options de configuration fournies. Pour plus de détails sur l'écriture de plugins, makers et publishers personnalisés pour Forge, consultez la section Étendre Electron Forge de la documentation.
Dernières modifications
Forge 6 a passé beaucoup de temps dans la phase bêta, et sa cadence de sortie s'est progressivement ralentie. Cependant, nous avons accéléré le développement dans la seconde moitié de 2022 et utilisé les dernières versions pour pousser quelques changements de rupture finaux avant la version stable v6.0.0.
Si vous êtes un utilisateur de la version bêta d'Electron Forge, consultez la Note de publication de v6.0.sur GitHub pour une liste des changements de rupture effectués dans les bêtas récentes (>=6.0.0-beta.65
).
Une liste complète des modifications et des commits peut être trouvée dans CHANGELOG.md.
Envoyez vos commentaires!
Dites-nous ce dont vous avez besoin ! L'équipe Electron Forge cherche toujours à améliorer le projet pour mieux répondre à ses utilisateurs.
Vous pouvez nous aider à améliorer Electron Forge en soumettant des demandes de fonctionnalités, en publiant des issues, ou simplement en nous informant de vos commentaires ! Vous pouvez également nous rejoindre sur le serveur officiel d'Electron Discord, où il y a un canal dédié aux discussions à propos d'Electron Forge.
Si vous voulez émettre des commentaires sur la documentation de Forge sur https://electronforge.io, nous avons une instance de GitBook synchronisée au dépôt electron-forge/electron-forge-docs.