手動ビルド
Wails CLIは、プロジェクトに関する様々な面倒な作業を担ってくれていますが、ときにはプロジェクトを手動でビルドできたほうが望ましい場合もあるでしょう。 このドキュメントでは、CLIが実行する多くの操作や、これらの操作を別の手段で実現するための方法について説明します。
ビルドプロセス
Wails CLIは、wails build
コマンドまたはwails dev
コマンドが使用されると、共通のビルドプロセスを実行します:
- フロントエンド依存関係のインストール
- フロントエンドのビルド
- ビルドアセットの生成
- アプリケーションのコンパイル
- [任意] アプリケーションの圧縮
フロントエンド依存関係のインストール
CLIが実行する手順
-s
フラグが指定された場合、この手順をスキップします。wails.json
ファイル内で、frontend:install
キーにインストールコマンドが記述されているかを確認します。- 記述されていない場合、この手順をスキップします。
- 記述されている場合、フロントエンドディレクトリ内に
package.json
ファイルが存在するか確認します。 存在しない場合、この手順をスキップします。 package.json
ファイルの内容をもとに、MD5チェックサムを生成します。package.json.md5
ファイルが存在するか確認し、存在する場合は、さきほど生成したMD5チェックサムと比較して、内容が変更されていないかどうかを確認します。 内容が同じ場合、この手順をスキップします。package.json.md5
ファイルが存在しない場合、ファイルを作成し、さきほど生成したMD5チェックサムを書き込みます。- この時点でビルドが必要と判断された場合、
node_modules
ディレクトリが存在しない場合、または-f
フラグが指定された場合は、フロントエンドディレクトリ内でインストールコマンドを実行します。
手動で実行する手順
コマンドライン、またはnpm install
のスクリプトを用いて、この手順を実行してください。
フロントエンドのビルド
Wails CLIでの手順
-s
フラグが指定された場合、この手順をスキップします。wails.json
ファイル内で、frontend:build
キーにビルドコマンドが記述されているかを確認します。- 記述されていない場合、この手順をスキップします。
- 記述されている場合、フロントエンドディレクトリ内でコマンドが実行されます。
手動で実行する手順
コマンドライン、npm run build
のスクリプト、またはフロントエンドのビルドスクリプトを用いて、この手順を実行してください。
アセットの生成
Wails CLIでの手順
-nopackage
フラグが指定された場合、この手順をスキップします。build/appicon.png
ファイルが存在しない場合、デフォルトのファイルを作成します。- Windowsの場合、Windowsバンドルの節を参照してください。
build/windows/icon.ico
ファイルが存在しない場合、build/appicon.png
画像ファイルから新規作成します。
Windows
build/windows/icon.ico
ファイルが存在しない場合、build/appicon.png
ファイルをもとに、256、128、64、48、32、16サイズのアイコンを新規作成します。 この処理はwiniconによって実現しています。build/windows/<projectname>.manifest
ファイルが存在しない場合、デフォルトバージョンから新規作成します。- アプリケーションを本番ビルドとしてコンパイルします(上記のとおり)。
- winresを使用して、アイコンとマニフェストをリンクできる
.syso
ファイルにバンドルします。
手動で実行する手順
- winiconのCLIツール(または他の任意ツール)を使用して、
icon.ico
を作成します。 - アプリケーションの
.manifest
ファイルを作成または更新します。 - winres CLIを使用して、
.syso
ファイルを生成します。
アプリケーションのコンパイル
Wails CLIでの手順
-clean
フラグが指定された場合、build
ディレクトリを削除して再作成します。wails dev
コマンドの場合、デフォルトで次のGoフラグを使用するようにします:-tags dev -gcflags "all=-N -l"
wails build
コマンドの場合、デフォルトで次のGoフラグを使用するようにします:-tags desktop,production -ldflags "-w -s"
- Windowsの場合:
-ldflags "-w -h -H windowsgui"
- Windowsの場合:
-tags
フラグを使用してCLIに指定された追加タグを、デフォルトのタグに追記します。-ldflags
フラグを使用してCLIに指定された追加のldflagsを、デフォルトのタグに追記します。-o
フラグのパラメータをパススルーさせます。-compiler
フラグで指定されたGoコンパイラを、コンパイル時に使用するようにします。
手動で実行する手順
- 開発ビルドの場合、最小のコマンドは次のとおりです:
go build -tags dev -gcflags "all=-N -l"
- 本番ビルドの場合、最小のコマンドは次のとおりです:
go build -tags desktop,production -ldflags "-w -s -H windowsgui"
.syso
ファイルと同じディレクトリでコンパイルするようにしてください。
アプリケーションの圧縮
Wails CLIでの手順
-upx
フラグが指定された場合、アプリケーションを圧縮するために、upx
プログラムをデフォルト設定で実行します。-upxflags
フラグも指定された場合、デフォルト設定の代わりにこれらのフラグを使用します。
手動で実行する手順
upx [flags]
を手動で実行して、アプリケーションを圧縮します。