Comme alternative à l'utilisation de l'ensemble de la pile de paquet d'électrons pour le développement de la livraison d'installation de Windows MSI, vous pouvez envisager d'utiliser les mécanismes suivants comme une autre solution utile:
- webpack - pour construire votre application client distribuable
- électron-emballeur - pour construire vos fichiers binaires d'électrons (dans ce cas pour Windows)
- outil WiX mis - pour créer vos programmes d'installation Windows MSI.
Bien sûr, vous devez effectuer les étapes 1 et 2, quel que soit le type d'installateur que vous choisissez d'utiliser. J'ai trouvé webpack
d'être la solution la plus stable, configurable et complète pour l'emballage d'une application Web angulaire (qui est ce que je travaille sur), et electron-packager
est l'outil que vous ne pouvez pas utiliser si vous voulez réellement construire la plate-forme binaires spécifiques pour votre application.manutention
Dans notre cas, j'utilise gulp
scripts pour envelopper les webpack
et electron-packager
modules, que j'appelle via leurs dérivés API de ligne plutôt que leur commande afin de les maintenir dans un contexte javascript cohérent pour la maintenance et l'erreur facilité dans la processus de construction (les solutions en ligne de commande sont beaucoup plus difficiles à utiliser que les paquets, modules, fichiers et fonctions en javascript, imo).
Cela peut s'expliquer un peu plus facilement en comprenant de quel type de projet je parle. Cela est particulièrement si vous construisez une application électronique qui a une structure complète du projet comme celui-ci:
C:.
+---assets/
+---ClientSide
¦ +---index.html
¦ +---app
¦ ¦ +---app.component.ts
¦ ¦ +---app.module.ts
¦ ¦ +---main.ts
¦ ¦ +---AppContent/
¦ ¦ +---help/
¦ ¦ +---modals/
¦ ¦ +---panels/
¦ ¦ +---shared/
¦ +---Styles
¦ ¦ +---dist/
¦ ¦ +---svgs/
¦ +---test
¦ +---AppContent/
¦ +---modals/
¦ +---panels/
¦ +---shared/
+---dist/
+---edist
| \---Application-win32-ia32 [*location of binary source for the install]
+---ServerSide
¦ +---app.js
¦ +---server.js
¦ +---test/
+---Installer
+---buildMSI.bat
+---Application/
gulpfile.js
karma.conf.js
main.js
package.json
README.md
webpack.config.js
Ce type de structure présente un projet qui a toutes les pièces que vous voudriez dans un environnement réel dev tel comme webpack, configuration, karma (test côté client), gulp pour les opérations de packaging (opérations wraps pour webpack, packager électronique), fichier batch Windows pour l'exécution des commandes WiX, et plus encore.
Le flux d'une telle approche serait (probablement documenté dans votre README.md) quelque chose comme ces étapes pour les nouveaux utilisateurs et mise en place de votre projet de construction:
git clone <project/path>
- cloner le repo à votre locale Machine
npm install
- charge/installer les node_modules
gulp lint
- valider le code et produire des résultats CI. (Votre choix de bourres)
gulp test
- côté Exécuter serveur et tests unitaires côté client, produisent des résultats de CI de couverture de code pour chaque
gulp build_web_client
- Construire le projet web côté client à l'aide webpack
appels API. Cela devrait produire un répertoire appelé "dist" créé sous le projet
gulp build_electron_app
- Construire l'exécutable Electron en utilisant l'API electron-packager
. Cela devrait produire un répertoire appelé "edist" créé dans le cadre du projet.
cd Installer
buildMSI.bat
- ce script batch Windows devrait faire les étapes suivantes:
- préparer le fichier manifeste (résultant dans un fichier .wxs) en récoltant la liste de contenu du répertoire/Edist (vu dans la structure d'arborescence au-dessus et créé par l'étape 6) en utilisant la commande Wix
heat.exe
- prétraiter et compiler le projet dans et de l'objet (.wixobj) en utilisant la commande Wix
candle.exe
- lien du projet Wix dans sa forme de fichiers installable finale en utilisant la commande Wix
Light.exe
, générant les fichiers MSI d'installation.
Ceci est juste une suggestion. Vous pouvez, bien sûr, utiliser d'autres outils pour chacune des étapes que vous préférez. Ceci est juste une approche que j'ai trouvé fonctionne bien pour le développement d'applications électroniques pour le déploiement vers une cible Windows. La bonne chose à ce sujet est qu'avec Electron, vous pouvez choisir de construire à de nombreux OS cible, en utilisant les étapes 1 à 6, et avoir une approche de déploiement différente si vous voulez aller à Windows ou Mac, Linux pour les étapes 7 et 8.
Oui, il est vrai, vous pouvez utiliser electron-builder
(ou electron-forge
pour ceux qui ont des besoins simples) pour emballer votre application via écureuil comme un moyen de déployer sur tous les systèmes d'exploitation disponibles à électrons (qui signifierait remplacer mes étapes 7 et 8 avec ces alternatives d'emballage). D'après mon expérience, et pour notre contexte, la solution Squirrel au déploiement de Windows semblait moins souhaitable que l'utilisation de Wix pour le déploiement. À votre question initiale sur la configurabilité de votre installation, la bonne chose à propos de l'utilisation de Wix est que vous avez la possibilité de personnaliser complètement votre interface d'installation et votre expérience (y compris le cheminement cible).
Pensez-vous que je pourrais remplacer webpack avec la compilation électronique? Mon projet a été créé avec 'electron-forge init' – Carlinho89