Launcher multiplateforme moderne pour la gestion avancée de Blender.
- Electron (backend, packaging)
- React (frontend)
- Node.js (logique, scripts)
- Electron : Backend, packaging, API système
- React : Frontend moderne, composants UI
- TypeScript : Typage statique, robustesse
- Webpack : Bundling du renderer
- Node.js : Scripts, logique, accès fichiers
- Concurrently, Nodemon : Dev workflow
- Prérequis : Node.js (v18+ recommandé)
- Cloner le repo :
git clone https://github.com/Suussonic/Blender-Launcher.git cd Blender-Launcher
- Installer les dépendances :
npm install
- Lancer en mode développement :
npm run dev
En dev, le projet compile le main process, le renderer et lance l’app Electron (avec rechargement si configuré).
Cette section décrit en détail les commandes de build et de packaging disponibles, les artefacts produits et des conseils de dépannage — spécialement pour Windows.
-
Installer les dépendances :
npm install
-
Build complet (renderer + main) :
npm run build
Ce que fait cette commande : -
npm run build:renderer: bundle le renderer (React) via Webpack en mode production. Sortie :dist/renderer/renderer.jsetdist/renderer/index.html. -npm run build:main: compile le main process TypeScript (tsc) endist/main, puis copie les assets runtime (preload, tray, public) dansdist/viascripts/copy_dist_assets.js.Fichiers importants générés par le build : -
dist/main/main.js(main process compilé) -dist/preload.js(preload exposant l'API sécurisée) -dist/renderer/renderer.jsetdist/renderer/index.html(UI) -dist/tray/*(popup tray HTML/JS/CSS)
Le projet propose plusieurs workflows de packaging pour Windows. Choisissez selon vos besoins (test rapide, distribution portable, build signée, etc.).
- Packager + ZIP portable (recommandé, pas besoin d'Admin)
Cette option utilise electron-packager puis crée un ZIP portable contenant l'application complète :
npm run package:win:portableRésultat attendu :
release/blender-launcher-win32-x64/(dossier unpacked)release/blender-launcher-win32-x64-portable.zip(archive portable)
Pourquoi l'utiliser :
- Ne nécessite pas d'
exécuter la commande en mode administrateur. - Évite un problème fréquent d'
electron-builder(voir point suivant) lié à l'extraction d'un helper binaire qui crée des symlinks.
- electron-builder (zip / portable targets)
Commandes :
- Zip (exécute le build avant packaging) :
npm run package:win:zip- (Optionnel) electron-builder portable target :
npm run package:win:portableImportant — erreur d'extraction 7-zip / symlink :
Lors de l'utilisation d'electron-builder, l'outil télécharge parfois des archives auxiliaires (par ex. winCodeSign-*.7z). Quand 7-Zip extrait ces archives, elles peuvent contenir des liens symboliques. Sur certaines installations Windows, la création de symlinks nécessite des privilèges élevés et l'extraction échoue avec l'erreur :
"ERROR: Cannot create symbolic link : Le client ne dispose pas d'un privilège nécessaire"
Solutions :
- Exécutez la commande dans une session PowerShell élevée (Ouvrir PowerShell en tant qu'administrateur).
- Ou préférez l'option
package:win:portable(packager + zip) qui contourne electron-builder et produit une archive portable sans extraction problématique.
- electron-packager seul (staging rapide)
Pour tests rapides sans empaqueter en zip :
npm run package:packagerCela crée le dossier release/Blender Launcher-win32-x64/ (ou sim.) contenant l'app unpacked.
Les builds produits par les scripts de packaging intègrent désormais automatiquement les metadata Windows (CompanyName, FileDescription, ProductName) afin que Windows affiche le bon éditeur au lieu de "GitHub, Inc.".
- Les valeurs par défaut sont définies dans
package.jsonsousbuild.win32metadata. - Les scripts de packaging (
scripts/package_with_packager.jsetscripts/package_portable_packager.js) lisent ces métadonnées et transmettentwin32metadataàelectron-packager.
Pour modifier l'éditeur affiché, éditez package.json et changez build.win32metadata.CompanyName puis ré-exécutez le packaging :
npm run package:packagerOu pour produire la version portable (zip) :
npm run package:win:portableSi tu veux modifier les métadonnées pour des builds CI seulement, tu peux aussi passer des variables d'environnement et les lire dans les scripts.
- Nettoyer les artefacts :
npm run cleanCeci supprime dist/ et release/.
Où chercher les logs utiles lorsque l'app packagée se comporte mal :
- Main process logs :
%APPDATA%\Blender Launcher\bl-launcher-main.logouC:\Users\<you>\AppData\Local\Blender Launcher\bl-launcher-main.logselon l'installation.
- Tray process logs :
%APPDATA%\Blender Launcher\bl-launcher-tray.log
Conseils pratiques :
- Toujours lancer l'EXE depuis le dossier
release/...(ou extraire le ZIP portable) pour garantir la présence de tous les fichiersdist/et d'autres ressources. Déplacer uniquement l'EXE sans ses ressources cause des écrans bloqués (préparation infinie) ou des erreurs "fichier introuvable". - Si l'interface reste bloquée au démarrage : regardez
bl-launcher-main.logpour trouver des erreurs d'initialisation (preload non trouvé, handlers IPC manquants, etc.). - Pour le menu tray : démarrez avec
TRAY_DEBUG=1(ou activez l'option correspondante dans la config) afin d'ouvrir les DevTools du popup tray et inspecter la console.
Dépannage courant et solutions :
- Erreur electron-builder 7z extraction (sym-link) : lancer la commande en Admin PowerShell ou utiliser
package:win:portable. - Erreurs TypeScript / bundle à la compilation : installez les devDependencies et types manquants (ex.
@types/react,@types/react-dom, et autres loaders) avant d'exécuternpm run build.
- Electron : https://www.electronjs.org/
- React : https://react.dev/
- TypeScript : https://www.typescriptlang.org/
- Webpack : https://webpack.js.org/
- Electron Packager : https://github.com/electron/electron-packager
- Electron Builder : https://www.electron.build/
- Si vous voulez que je rende
npm run package:win:portableré-exécutable (build + package) automatiquement, je peux le faire — mais il faudra résoudre les erreurs TypeScript / bundle présentes sur certaines machines (ajout de dev types / loaders). Dites-moi si je dois :- Restaurer
package:win:portablepour lancer le build à chaque fois, et corriger les erreurs de build (installer@types/*, corrigertsconfig.json). - Laisser le script tel quel (packager + zip) et exiger un
npm run buildmanuel avant packaging.
- Restaurer
L'intégration Discord Rich Presence est incluse.