2017-08-31 3 views
0

Je suis nouveau à Electron et je construis une application que je voudrais installer sur Windows. J'ai lu la documentation sur la façon de distribuer votre application dans docs Electron, et je sais sur:Installateur msi chaîné avec Electron

electron-forge 
electron-builder 
electron-packager 

Je travaille actuellement avec:

"electron-builder-squirrel-windows": "^19.20.0", 
"electron-builder": "^19.20.0", 
"electron": "^1.6.11" 

Dans ce contexte, j'ai pu créer un Setup.exe pour installer mon application, mais j'étais pas en mesure de créer une interface utilisateur pour le processus d'installation.

Je veux donner la possibilité à l'utilisateur de modifier le chemin d'installation s'il a besoin, montrer les licences éventuels je veux qu'il accepte, ...

Aucune information sur c'est donnée sur la electron.atom.io

Regardez Atom éditeur ou Slack, qui sont construits avec Electron, je peux voir qu'il est possible d'afficher une interface utilisateur lors de l'installation. Comment cela se fait-il habituellement?

Edit: je lis à peu près windows-installer que vous devez utiliser des événements d'écureuil pour cette Modifier Edit:

  • Changer le titre de "Chained msi Installer avec Electron"

Avis La première fois que le programme d'installation lance votre application, votre application affiche un indicateur --squirrel-firstrun. Cela vous permet de faire des choses comme afficher un écran de démarrage ou présenter une interface utilisateur de paramètres.

Répondre

1

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:

  1. webpack - pour construire votre application client distribuable
  2. électron-emballeur - pour construire vos fichiers binaires d'électrons (dans ce cas pour Windows)
  3. 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:

  1. git clone <project/path> - cloner le repo à votre locale Machine
  2. npm install - charge/installer les node_modules
  3. gulp lint - valider le code et produire des résultats CI. (Votre choix de bourres)
  4. 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
  5. 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
  6. 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.
  7. cd Installer
  8. buildMSI.bat - ce script batch Windows devrait faire les étapes suivantes:
    1. 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
    2. prétraiter et compiler le projet dans et de l'objet (.wixobj) en utilisant la commande Wix candle.exe
    3. 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).

+0

Pensez-vous que je pourrais remplacer webpack avec la compilation électronique? Mon projet a été créé avec 'electron-forge init' – Carlinho89

0

Vous ne pouvez pas sélectionner le chemin d'installation sous Windows lorsque vous utilisez Squirrel. Il semble également ne pas être là à l'avenir. Ils ne veulent pas soutenir cela. See here et here.