Faire un application bureau avec Electron ?
Naereen opened this issue · comments
Vu que le site est déjà une application node.js valable (package.json etc), elle devrait facilement pouvoir se transformer en une application bureau multi-plateforme avec Electron.
Est-ce que quelqu'un a déjà essayé ?
@2ec0b4 est-ce que ça te semble utile ou intéressant ?
Si oui, je veux bien essayer de le faire :-)
(jamais essayé, mais electron-forge
a l'air de rendre les choses faciles)
Salut @Naereen
Je serais curieux de voir ce que ça donne. Peut-être peux-tu créer un dépôt et utiliser le dépôt 2ec0b4/kaamelott-soundboard en sous-module Git pour ça ?
Tiens-moi au courant ;)
J'ai essayé avec WebDGap et nativifier et sans bidouiller ça ne marche pas.
J'essaie electron-packager.
J'abandonne, je trouve aucune solution que je comprenne.
Le projet utilise à la fois node et bower ?
Si uniquement npm était utilisé, electron-packager devrait pouvoir être utilisé presque automatiquement
Le projet utilise bower pour la gestion des dépendances Web et npm pour les dépendances pour le développement, notamment pour pouvoir minifier les sources avant le déploiement.
Je te laisse encore creuser ou bien ? :)
OK.
Là j'aurai pas le temps avant un moment, mais j'y étais presque hier...
electron-packager est la voie à essayer, je pense.
Bonjour,
nativefier
a bien marché pour moi, avec la commande nativefier http://kaamelott-soundboard.2ec0b4.fr/ tmp/
.
L'application est générée dans tmp/kaamelott-soundboard-linux-x64
et peut ensuite être packagée. Ca doit être similaire depuis windows.
En fait, je pourrai même le faire depuis ma machine pour les autres architectures, via les flags suivants:
-p, --platform <value> 'osx', 'linux' or 'windows'
-a, --arch <value> 'ia32' or 'x64' or 'armv7l'
L'application est crée avec Electron 1.6.6 (à la date du jour).
@gromain nativifier marchait aussi pour moi, mais essaies ton application sans avoir internet et tu verras qu'elle ne marche pas (du coup ça sert à rien, autant ouvrir le site web...). (si elle marche, bravo tu as réussi, et tu peux demander à @2ec0b4 de rajouter les .exe/.dmg/.app dans les fichiers en téléchargement dans releases
)
Je voulais avoir exactement pareil mais avec toutes les ressources incluses dans l'appli. C'est évidemment faisable, j'y étais presque avec electron-packager
mais je suis arrivé à un bug dans le fichier js/app/main.js
("require.config is not a function", peut-être qu'il faut configurer electron-packager pour ne pas avoir de script main.js ? je sais pas, ou faire un mini script qui ne fasse qu'ouvrir la page index.html
)
Je viens de comprendre que le soucis venait de requirejs
qui est configuré avec require.config
, sauf que dans node (dans electron), require
est une fonctionnalité native. En utilisant requirejs.config
à la place, en gros ça marche.
Je finis pour réussir à faire un .deb ou un .exe qui marche.
Par contre, je suis pas sûr de réussir à pouvoir faire juste un sur-module (comme @2ec0b4 proposait au début), sachant que j'ai dû changer quelques trucs :
index.html
inclut à la mainjquery.min.js
etlikely.js
(je sais pas pourquoi ça ne marchait pas bien viarequirejs
)js/app/share.js
change la fonctiongetAbsoluteUrl
pour partager un lien avec"http://kaamelott-soundboard.2ec0b4.fr/" + url
et pas la base URL (qui est genrefile:///....
quand ça tourne dans electron)- le
package.json
pour déclarer un nouveau scriptindex.js
comme point d'entrée, qui lui se charge d'ouvrir la fenêtre avecindex.html
dedans.
https://github.com/Naereen/kaamelott-soundboard-desktop-app/releases
Je n'aurai ni le temps de le maintenir, ni d'en faire plus...
Mais si l'appli marche pour toi @2ec0b4 et que ça t'intéresse, je pense que les quelques explications que je donne ci-dessus et ce Makefile suffiront à continuer là où je m'arrête.
Est-ce que c'est utile d'avoir un .deb aussi ?
@Naereen Super taf! C'est vrai que j'avais pas compris que tu voulais tout en interne!
Je pense qu'un deb pourrait être utile dans l'absolu.
@gromain bah oui le seul intérêt que ça peut avoir c'est d'avoir les sons même sans Internet.
L'inconvénient c'est l'espace de stockage et la mémoire RAM de l'application bureau (~= 60 Mo, 5 fois plus que juste les sons et l'appli, parce que ça embarque un mini navigateur Chrome).
OK Je ferai un .deb/.rpm aussi en rentrant de vacances.
Je pense qu'avoir un .exe pour Windows et un .dmg pour Mac OS ne devrait pas être dur (pour peu qu'on ait une machine Windows ou Mac OS)
Ah tiens, avec wine on devrait pouvoir faire un .exe pour Windows mais... depuis une machine GNU/Linux !
Ah bon en fait j'ai fait Windows (32/64 bits) et Linux (32/64 bits, et ARM), et Mac OS X.
→ https://github.com/Naereen/kaamelott-soundboard-desktop-app/releases/latest
Je testerai aussi rapidement que possible la version Windows. Connaissant la qualité du projet Electron, ça va marcher directement. Et voilà.
Fonctionne très bien sur macOS Sierra 🥇
J'ai juste remarqué le tri qui était différent de la version Web, bizarrement... La réplique "En plus y'en avait un il était mi-ours, mi-scorpion et re-mi-ours derrière !" arrive en premier, par exemple.
Bien joué 👍
@2ec0b4 Cool 👍 !
En fait, c'est pas encore 100% comme la version web...
Pour un aspect, c'est un bug et pas une erreur de compilation de ma part.
Quand je lance l'application en ligne de commande, la petite fenêtre de partage, l'icône de lecture/arrêt et l'information de survol marchent, mais quand je lance via le menu système ces 3 fonctionnalités ne marchent pas...
Je n'ai pas vraiment le temps de déboguer ça donc tant pis...
Bonjour,
étant intéresser sur ce sujet, je suis en train de bidouiller une application gratuite qui utilise electron couplé a d'autres plugin's mais seulement voila tout fonctionne, et quand je repack le tout et que je lance le .exe j'ai une erreur qui ressort et qui donc m’empêche de finir de lancer l'app, quand je regarde dans mon gestionnaire de tache, electron est exécuté 2 foies, cela fait toute la semaine que je cherche une solution et essayer des avis sur les sites anglais mais sans résultats, peu etre est-ce du a cette erreurs interne ?
TypeError: Cannot read property 'on' of undefined
main.js:53
at Object. (c:\Users\SgtPapy\Desktop\tuto bot\main.js:53:5)
at Module._compile (internal/modules/cjs/loader.js:704:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:718:10)
at Module.load (internal/modules/cjs/loader.js:605:32)
at tryModuleLoad (internal/modules/cjs/loader.js:544:12)
at Function.Module._load (internal/modules/cjs/loader.js:536:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:760:12)
at startup (internal/bootstrap/node.js:303:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:872:3)
j'ai donc aujourd'hui télécharger ta démo et elle fonctionne nickel sur window 10 64 bit, j'essai de voir si il y a des modules que je n'ai pas mis ou autre qui pourrais résoudre mon problème, Cordialement
Bonjour @Sgtpapy,
- Je ne sais pas du tout, désolé…
- Je n'ai pas développé l'application
.exe
pour Windows sur Windows mais sur GNU/Linux (XUbuntu). - Je ne connais pas assez Electron pour comprendre la trace d'erreur…
Bonjour Naereen,
merci pour ta réponse,
electron fonctionne trés bien et sans erreurs, ton projet étant fonctionnel il m'a grandement
aider a résoudre certains soucis au niveau de mon application, j'y ai pus couplé aussi un bot
qui a plusieurs fonctionnalités, ainsi qu'un module vocale et d'autre petit scripts,
maintenant je suis en train de rajouter le moteur WebGl dessus electron pousser plus loin le potentiel
de cette application.
si tu veut que je t'envoi la démo no soucis.
je cherche a faire une application qui contient une base de donnée sur toutes les formules chimique,
un tableau de particules, et un simulateur de réaction a fusion froide sous électrolyse, le bot étant capable
de savoir qu'elle matière ou molécule il faut rajouter a une structure moléculaire inorganique pour construire cette structure, ainsi que choisir le géométrie a utiliser .
ce logiciel devrait m'aider pour mon boulot, je fait des recherches sur le recyclage des métaux(ainsi que d'autres recherches).
Cordialement.
http://www.4lph4live.com/
je cherche a faire une application qui contient une base de donnée sur toutes les formules chimique,
un tableau de particules, et un simulateur de réaction a fusion froide sous électrolyse, le bot étant capable
de savoir qu'elle matière ou molécule il faut rajouter a une structure moléculaire inorganique pour construire cette structure, ainsi que choisir le géométrie a utiliser .
https://kaamelott-soundboard.2ec0b4.fr/#son/cest_pas_faux2
(j'ai hésité avec un petit "Kamoulox" aussi, mais je suis resté dans le thème Kaamelott)
@Sgtpapy ravi que mon projet ai pu t'être utile.
Par contre si tu nous parles de ton application en chimie, ça devient hors de propos, je pense que ça n'a pas sa place ici, désolé. Et bonne chance avec ton projet…