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
は、プロジェクトを本番配布用のバイナリにコンパイルするときに使用します。
フラグ | 説明 | デフォルト |
---|---|---|
-clean | build/bin ディレクトリをクリーンする | |
-compiler "compiler" | 違うGoコンパイラを使用する。例: go1.15beta1 | go |
-debug | アプリケーションのデバッグ情報を保持し、デバッグコンソールを表示する。 これにより、アプリケーションウィンドウで開発者ツールを使用することを許可できます。 | |
-devtools | Allows the use of the devtools in the application window in production (when -debug is not used). Ctrl/Cmd+Shift+F12 may be used to open the devtools window. NOTE: This option will make your application FAIL Mac appstore guidelines. Use for debugging only. | |
-dryrun | 実際には実行せずにbuildコマンドの結果を表示する | |
-f | アプリケーションを強制的にビルド | |
-garbleargs | garbleへ渡す引数 | -literals -tiny -seed=random |
-ldflags "flags" | コンパイラに渡す追加のldflags | |
-m | コンパイル前のmod tidyの実行をスキップする | |
-nopackage | アプリケーションをパッケージ化しない | |
-nocolour | 出力文字に色をつけない | |
-nosyncgomod | go.modとWailsのバージョンを同期させない | |
-nsis | Windows向けのNSISインストーラを生成する | |
-o filename | 出力ファイル名 | |
-obfuscated | garbleを使用してアプリケーションを難読化する | |
-platform | 指定されたプラットフォーム(カンマ区切り) 向けにビルドする。例: windows/arm64 。 アーキテクチャを指定しない場合は、runtime.GOARCH の値が使用されます。 | platform = GOOS environment variable if given else runtime.GOOS .arch = GOARCH envrionment variable if given else runtime.GOARCH . |
-race | Goのrace detectorを使用してビルドする | |
-s | フロントエンドのビルドをスキップ | |
-skipbindings | バインディングの生成をスキップする | |
-tags "extra tags" | Goコンパイラに渡すビルドタグ。 値は引用符で囲んでください。 また、スペースまたはカンマで区切ってください(両方は使用しないでください)。 | |
-trimpath | 実行可能ファイルから、すべてのファイルシステムパスを削除する | |
-u | プロジェクトのgo.mod を更新し、CLIと同じバージョンのWailsを使用する | |
-upx | "upx"を使用して最終的にバイナリを圧縮する | |
-upxflags | upxに渡すフラグ | |
-v int | 詳細度レベル (0 - サイレント, 1 - デフォルト, 2 - 詳細) | 1 |
-webview2 | WebView2インストーラーのストラテジ: download,embed,browser,error | download |
-windowsconsole | Windiws向けビルドでコンソールウィンドウを維持する |
webview2
フラグの詳細については、Windowsガイドをご覧ください。
標準のGoツールを使用してビルドしたい場合は、手動ビルドガイドをご覧ください。
例:
wails build -clean -o myproject.exe
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モジュールが生成されます:
- GoメソッドのJavaScriptラッパー (コードヒントに有用なJSDocも自動付与されています)
- Goの構造体のTypeScriptバージョン (構造体のインスタンスを生成したり、Goメソッドの引数として渡したりすることができます)
- 別のJSモジュールとして、ランタイムのラッパーおよびTS定義も生成されます
- macOSの場合、アプリケーションは
.app
ファイルにバンドルされて実行されます。 これには、開発用のbuild/darwin/Info.dev.plist
を使用します。
フラグ | 説明 | デフォルト |
---|---|---|
-appargs "args" | シェル形式でアプリケーションに渡される引数 | |
-assetdir "./path/to/assets" | 通常のアセットFSを使用する代わりに、指定されたディレクトリからアセットを提供する | wails.json で指定されている値 |
-browser | 起動時にブラウザでhttp://localhost:34115 を開く | |
-compiler "compiler" | 違うGoコンパイラを使用する。例: go1.15beta1 | go |
-debounce | アセットの変更が検出されたあと、リロードするまでの時間 | 100 (ミリ秒) |
-devserver "host:port" | Wails開発サーバをバインドするアドレス | "localhost:34115" |
-extensions | リビルドをトリガーする拡張子 (カンマ区切り) | go |
-forcebuild | アプリケーションを強制的にビルドする | |
-frontenddevserverurl "url" | アセットを提供するサードパーティ製の開発サーバ(例: Vite) を使用する | "" |
-ldflags "flags" | コンパイラに渡す追加のldflags | |
-loglevel "loglevel" | 使用するログレベル - Trace, Debug, Info, Warning, Error | Debug |
-nocolour | CLIのカラー出力を無効にする | false |
-noreload | アセットが変更されたときの自動リロードを無効にする | |
-nosyncgomod | go.modとWailsのバージョンを同期させない | false |
-race | Goのrace detectorを使用してビルドする | false |
-reloaddirs | リロードをトリガーする追加ディレクトリ (カンマ区切り) | wails.json で指定されている値 |
-s | フロントエンドのビルドをスキップ | false |
-save | 指定されたassetdir 、reloaddirs 、wailsjsdir 、debounce 、devserver 、frontenddevserverurl フラグの値を、wails.json へ保存し、次回以降のデフォルト値にする | |
-skipbindings | バインディングの生成をスキップする | |
-tags "extra tags" | コンパイラへ渡すビルドタグ (引用符およびスペース区切り) | |
-v | 詳細度レベル (0 - サイレント, 1 - デフォルト, 2 - 詳細) | 1 |
-wailsjsdir | 生成されたWailsのJSモジュールを格納するディレクトリ | wails.json で指定されている値 |
例:
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
ディレクトリを手動で生成できます。
フラグ | 説明 | デフォルト |
---|---|---|
-compiler "compiler" | 違うGoコンパイラを使用する。例: go1.15beta1 | go |
-tags "extra tags" | コンパイラへ渡すビルドタグ (引用符およびスペース区切り) |
update
wails update
コマンドを実行すると、Wails CLIのバージョンをアップデートできます。
フラグ | 説明 |
---|---|
-pre | 最新のプレリリースバージョンにアップデートする |
-version "version" | 特定のバージョンのCLIをインストールする |
version
wails version
は、現在のCLIバージョンを出力するだけのコマンドです。