Compilations manuelles
Le CLI Wails fait beaucoup de travail pour le projet, mais il est parfois souhaitable de construire manuellement votre projet. Ce document discutera des différentes opérations que fait le CLI et des différentes façons d'y parvenir.
Processus de construction
Lorsque wails build ou wails dev sont utilisés, le CLI Wails effectue un processus de construction commun:
- Installation des dépendances frontend
- Construire le projet frontend
- Générer des ressources de construction
- Compiler l'application
- [optionnel] Compresser l'application
Installation des dépendances frontend
Étapes CLI
- Si l'option
-sest donné, cette étape est ignorée - Vérifie
wails.jsonpour voir s'il y a une commande install dansfrontend:install - S'il n'y en a pas, il saute cette étape
- Si le fichier existe, vérifie si
package.jsonexiste dans le répertoire du frontend. S'il n'existe pas, il saute cette étape - Un hash MD5 est générée à partir du contenu du fichier
package.json - Il vérifie l'existence de
package.json.md5et, s'il existe, compare son contenu (une somme MD5) avec celui généré pour voir si le contenu a changé. S'ils sont les mêmes, cette étape est ignorée - Si
package.json.md5n'existe pas, il le crée en utilisant la somme MD5 générée - Si une compilation est maintenant requise, ou si
node_modulesn'existe pas, ou si l'option-fest donnée, la commande install est exécutée dans le répertoire frontend
Étapes manuelles
Cette étape peut être réalisée à partir de la ligne de commande ou d'un script avec npm install.
Construire le projet frontend
CLI Wails
- Si l'option
-sest donné, cette étape est ignorée - Vérifie
wails.jsonpour voir s'il y a une commande de construction dans la cléfrontend:build - S'il n'y en a pas, il saute cette étape
- S'il existe, il est exécuté dans le répertoire du frontend
Étapes manuelles
Cette étape peut être réalisée à partir de la ligne de commande ou d'un script avec npm run build ou quel que soit le script de construction du frontend.
Générer les ressources
CLI Wails
- Si l'option
-nopackageest activée, cette étape est ignorée - Si le fichier
build/appicon.pngn'existe pas, un fichier par défaut est créé - Pour Windows, voir Empaquetage pour Windows
- Si
build/windows/icon.icon'existe pas, il la créera à partir de l'imagebuild/appicon.png.
Windows
- Si
build/windows/icon.icon'existe pas, il le créera à partir debuild/appicon.pngen utilisant les tailles d’icônes de 256, 128, 64, 48, 32 et 16. Ceci est fait en utilisant winicon. - Si le fichier
build/windows/<projectname>.manifestn'existe pas, il le crée à partir d'une version par défaut. - Compile l'application en tant que version de production
- Utilise winres pour regrouper l'icône et manifest dans un fichier
.sysoprêt à être lié.
Étapes manuelles
- Créez le fichier
icon.icoen utilisant l'outil CLI winicon (ou n'importe quel autre outil). - Créez / Mettez à jour un fichier
.manifestpour votre application - Utilisez le CLI winres pour générer un fichier
.syso.
Compiler l'application
CLI Wails
- Si l'option
-cleanest fourni, le répertoirebuildest supprimé et recréé - Pour
wails dev, les options suivantes de Go sont utilisées :-tags dev -gcflags "all=-N -l" - Pour
wails build, les options suivantes de Go sont utilisées :-tags desktop,production -ldflags "-w -s"- Sous Windows,
-ldflags "-w -h -H windowsgui"
- Sous Windows,
- Des tags additionnels peuvent être ajoutées à la liste par défaut en utilisant l'option
-tagsdans le CLI - Des ldftags additionnels peuvent être ajoutés à la liste par défaut en utilisant l'option
-ldflagsdans le CLI - L'option
-oest transmise - Le compilateur Go spécifié par
-compilersera utilisé pour la compilation
Étapes manuelles
- Pour la compilation du dev, la commande minimale serait :
go build -tags dev -gcflags "all=-N -l" - Pour la compilation en production, la commande minimale serait :
go build -tags desktop,production -ldflags "-w -s -H windowsgui" - Assurez-vous que vous compilez dans le même répertoire que le fichier
.syso
Compresser l'application
CLI Wails
- Si l'option
-upxest définie, le programmeupxsera exécuté pour compresser l'application avec les paramètres par défaut - Si l'option
-upxflagsest également passée, les options définies seront utilisées à la place des options par défaut
Étapes manuelles
- Exécutez manuellement
upx [flags]pour compresser l'application.