CLI
WailsのCLIには、プロジェクトの管理に使用できるコマンドが多数あります。 すべてのコマンドは次の文法で実行できます:
wails <コマンド> <フラグ>
init
wails init
はプロジェクトの生成に使用します。
フラグ | 説明 | デフォルト |
---|---|---|
-n "プロジェクト名" | プロジェクトの名前。 必須項目。 | |
-d "プロジェクトディレクトリ" | 作成するプロジェクトディレクトリ | プロジェクト名 |
-g | gitリポジトリを初期化する | |
-l | 利用可能なプロジェクトテンプレート一覧を表示 | |
-q | コンソールへの出力を抑止 | |
-t "テンプレート名" | 使用するプロジェクトテンプレート。 ここで指定する値は、デフォルトテンプレート名、または、GitHubでホストされているリモートテンプレートのURLです。 | vanilla |
-ide | IDEプロジェクトファイルを生成 | |
-f | アプリケーションを強制的にビルド | false |
例: wails init -n test -d mytestproject -g -ide vscode -q
この例では、サイレントモードで、"mytestproject"ディレクトリに"test"という名前のプロジェクトが生成されるとともに、gitの初期化、vscodeプロジェクトファイルの生成が行われます。
WailsでIDEを使用する場合の詳細については、こちらをご覧ください。
リモートテンプレート
WailsではGitHubでホストされているリモートテンプレートをサポートしており、テンプレートのプロジェクトURLを使用してインストールできます。
例: wails init -n test -t https://github.com/leaanthony/testtemplate[@v1.0.0]
コミュニティがメンテナンスしているテンプレートの一覧はこちらをご覧ください。
Wailsプロジェクトでは、サードパーティ製テンプレートのメンテナンスは行っておらず、責任も負いません!
テンプレートについてよく分からない場合は、package.json
およびwails.json
を確認し、どのようなスクリプトが実行されるのかや、どのようなパッケージがインストールされるのかを調べてください。
build
wails build
は、プロジェクトを本番配布用のバイナリにコンパイルするときに使用します。
フラグ | 説明 | デフォルト |
---|---|---|
-platform | 指定されたプラットフォーム(カンマ区切り) 向けにビルドする。例: windows/arm64 。 アーキテクチャを指定しない場合は、runtime.GOARCH の値が使用されます。 | platform = GOOS environment variable if given else runtime.GOOS .arch = GOARCH envrionment variable if given else runtime.GOARCH . |
-clean | build/bin ディレクトリをクリーンする | |
-compiler "compiler" | 違うGoコンパイラを使用する。例: go1.15beta1 | go |
-ldflags "flags" | コンパイラに渡す追加のldflags | |
-nopackage | アプリケーションをパッケージ化しない | |
-o filename | 出力ファイル名 | |
-s | フロントエンドのビルドをスキップ | false |
-f | アプリケーションを強制的にビルド | false |
-tags "extra tags" | Goコンパイラに渡すビルドタグ。 値は引用符で囲んでください。 また、スペースまたはカンマで区切ってください(両方は使用しないでください)。 | |
-upx | "upx"を使用して最終的にバイナリを圧縮する | |
-upxflags | upxに渡すフラグ | |
-v int | 詳細度レベル (0 - サイレント, 1 - デフォルト, 2 - 詳細) | 1 |
-webview2 | WebView2インストーラーのストラテジ: download,embed,browser,error | download |
-u | プロジェクトのgo.mod を更新し、CLIと同じバージョンのWailsを使用する | |
-debug | アプリケーションのデバッグ情報を保持する。 これにより、アプリケーションウィンドウで開発者ツールを使用することを許可できます。 | false |
-trimpath | 実行可能ファイルから、すべてのファイルシステムパスを削除する | false |
-race | Goのrace detectorを使用してビルドする | false |
-windowsconsole | Windiws向けビルドでコンソールウィンドウを維持する | |
-obfuscate | garbleを使用してアプリケーションを難読化する | false |
-garbleargs | garbleへ渡す引数 | -literals -tiny -seed=random |
webview2
フラグの詳細については、Windowsガイドをご覧ください。
標準のGoツールを使用してビルドしたい場合は、手動ビルドガイドをご覧ください。
例:
wails build -clean -o myproject.exe
:::Info
Macでは、アプリケーションはInfo.dev.plist
ではなくInfo.plist
でバンドルされます。
:::
AppleシリコンにおけるUPXの使用には既知の問題が確認されています。
いくつかのアンチウイルスソフトでは、upx
で圧縮されたバイナリをウイルスとして検知することが確認されています。詳しくは、upxのIssueをご覧ください。
プラットフォーム
サポートされているプラットフォームは次のとおりです:
プラットフォーム | 説明 |
---|---|
darwin | MacOS + ビルドマシンのアーキテクチャ |
darwin/amd64 | MacOS 10.13+ AMD64 |
darwin/arm64 | MacOS 11.0+ ARM64 |
darwin/universal | MacOS AMD64+ARM64 ユニバーサルアプリケーション |
windows | Windows 10/11 + ビルドマシンのアーキテクチャ |
windows/amd64 | Windows 10/11 AMD64 |
windows/arm64 | Windows 10/11 ARM64 |
linux | Linux + ビルドマシンのアーキテクチャ |
linux/amd64 | Linux AMD64 |
linux/arm64 | Linux ARM64 |
doctor
wails doctor
は、あなたのコンピュータで開発の準備が整っているかを診断します。
例:
Wails CLI v2.0.0-beta
Scanning system - Please wait (this may take a long time)...Done.
System
------
OS: Windows 10 Pro
Version: 2009 (Build: 19043)
ID: 21H1
Go Version: go1.18
Platform: windows
Architecture: amd64
Dependency Package Name Status Version
---------- ------------ ------ -------
WebView2 N/A Installed 93.0.961.52
npm N/A Installed 6.14.15
*upx N/A Installed upx 3.96
* - Optional Dependency
Diagnosis
---------
Your system is ready for Wails development!
dev
wails dev
は、アプリケーションを"ライブ開発"モードで実行させたいときに使用します。 このコマンドにより、次のことが行われます:
- アプリケーションの
go.mod
が、CLIと同じバージョンのWailsを使用するように更新されます - アプリケーションがコンパイルされた後、自動的に実行されます
- ウォッチャーが起動し、Goファイルの変更を検出した際には、アプリがリビルドされます
http://localhost:34115
でWebサーバが起動し、HTTP経由でアプリケーション(フロントエンドだけではありません)が提供されます。 これにより、任意のブラウザ拡張機能を使用することができます- すべてのアプリケーションアセットはディスクから読み込まれます。 アセットが変更された場合、アプリケーションは自動的に、リビルドではなくリロードされます。 接続されているすべてのブラウザもリロードされます
- 以下を提供するJSモジュールが生成されます:
- コードヒントを提供してくれるJSDocが自動付与された、GoメソッドのJavaScriptラッパー
- インスタンス生成したりGoメソッドに渡すことのできる、Go構造体のTypeScriptバージョン
- ランタイム用のラッパーおよびTypeScript型定義を含むJSモジュールも生成されます
- MacOSでは、アプリケーションを
.app
ファイルにバンドルして実行されます。 開発向けに、build/darwin/Info.dev.plist
が使用されます。
フラグ | 説明 | デフォルト |
---|---|---|
-assetdir "./path/to/assets" | 通常のアセットFSを使用する代わりに、指定されたディレクトリからアセットを提供する | wails.json で指定されている値 |
-browser | 起動時にブラウザでhttp://localhost:34115 を開く | |
-compiler "compiler" | 違うGoコンパイラを使用する。例: go1.15beta1 | go |
-e | リビルドをトリガーする拡張子 (カンマ区切り) | go |
-reloaddirs | リロードをトリガーする追加ディレクトリ (カンマ区切り) | wails.json で指定されている値 |
-ldflags "flags" | コンパイラに渡す追加のldflags | |
-tags "extra tags" | コンパイラへ渡すビルドタグ (引用符およびスペース区切り) | |
-loglevel "loglevel" | 使用するログレベル - Trace, Debug, Info, Warning, Error | Debug |
-noreload | アセットが変更されたときの自動リロードを無効にする | |
-nocolour | CLIのカラー出力を無効にする | false |
-nogen | モジュールの生成を無効にする | |
-v | 詳細度レベル (0 - サイレント, 1 - デフォルト, 2 - 詳細) | 1 |
-wailsjsdir | 生成されたWailsのJSモジュールを格納するディレクトリ | wails.json で指定されている値 |
-debounce | アセットの変更が検出されたあと、リロードするまでの時間 | 100 (ミリ秒) |
-devserver "host:port" | Wails開発サーバをバインドするアドレス | "localhost:34115" |
-frontenddevserverurl "url" | アセットを提供するサードパーティ製の開発サーバ(例: Vite) を使用する | "" |
-appargs "args" | シェル形式でアプリケーションに渡される引数 | |
-save | 指定されたassetdir 、reloaddirs 、wailsjsdir 、debounce 、devserver 、frontenddevserverurl フラグの値を、wails.json へ保存し、次回以降のデフォルト値にする | |
-race | Goのrace detectorを使用してビルドする | false |
-s | フロントエンドのビルドをスキップ | false |
例:
wails dev -assetdir ./frontend/dist -wailsjsdir ./frontend/src -browser
この例では次のことが行われます:
- アプリケーションをビルドして実行する (詳しくはこちらをご覧ください)
- WailsのJSモジュールを
./frontend/src
ディレクトリ内に生成する ./frontend/dist
ディレクトリ内のファイルの更新を監視し、変更されたときにリロードする- ブラウザを開き、アプリケーションへ接続する
既存のフレームワークスクリプトで本機能を使用する方法について詳しくはこちらをご覧ください。
generate
template
Wailsは、プロジェクトの生成に必ずテンプレートを使用します。 wails generate template
コマンドは、プロジェクト生成時に使用できるテンプレートの作成を支援します。
フラグ | 説明 |
---|---|
-name | テンプレート名 (必須項目) |
-frontend "path" | テンプレートで使用するフロントエンドプロジェクトへのパス |
テンプレートの作成について詳しくは、テンプレートガイドをご覧ください。
module
wails generate module
コマンドを使用すると、アプリケーションのwailsjs
ディレクトリを手動で生成できます。
update
wails update
コマンドを実行すると、Wails CLIのバージョンをアップデートできます。
フラグ | 説明 |
---|---|
-pre | 最新のプレリリースバージョンにアップデートする |
-version "version" | 特定のバージョンのCLIをインストールする |
version
wails version
は、現在のCLIバージョンを出力するだけのコマンドです。