メインコンテンツにスキップ
バージョン: v2.3.0

CLI

WailsのCLIには、プロジェクトの管理に使用できるコマンドが多数あります。 すべてのコマンドは次の文法で実行できます:

wails <コマンド> <フラグ>

init

wails initはプロジェクトの生成に使用します。

フラグ説明デフォルト
-n "プロジェクト名"プロジェクトの名前。 必須項目
-d "プロジェクトディレクトリ"作成するプロジェクトディレクトリプロジェクト名
-ggitリポジトリを初期化する
-l利用可能なプロジェクトテンプレート一覧を表示
-qコンソールへの出力を抑止
-t "テンプレート名"使用するプロジェクトテンプレート。 ここで指定する値は、デフォルトテンプレート名、または、GitHubでホストされているリモートテンプレートのURLです。vanilla
-ideIDEプロジェクトファイルを生成
-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.
-cleanbuild/binディレクトリをクリーンする
-compiler "compiler"違うGoコンパイラを使用する。例: go1.15beta1go
-ldflags "flags"コンパイラに渡す追加のldflags
-nopackageアプリケーションをパッケージ化しない
-o filename出力ファイル名
-sフロントエンドのビルドをスキップfalse
-fアプリケーションを強制的にビルドfalse
-tags "extra tags"Goコンパイラに渡すビルドタグ。 値は引用符で囲んでください。 また、スペースまたはカンマで区切ってください(両方は使用しないでください)。
-upx"upx"を使用して最終的にバイナリを圧縮する
-upxflagsupxに渡すフラグ
-v int詳細度レベル (0 - サイレント, 1 - デフォルト, 2 - 詳細)1
-webview2WebView2インストーラーのストラテジ: download,embed,browser,errordownload
-uプロジェクトのgo.modを更新し、CLIと同じバージョンのWailsを使用する
-debugアプリケーションのデバッグ情報を保持する。 これにより、アプリケーションウィンドウで開発者ツールを使用することを許可できます。false
-trimpath実行可能ファイルから、すべてのファイルシステムパスを削除するfalse
-raceGoのrace detectorを使用してビルドするfalse
-windowsconsoleWindiws向けビルドでコンソールウィンドウを維持する
-obfuscategarbleを使用してアプリケーションを難読化するfalse
-garbleargsgarbleへ渡す引数-literals -tiny -seed=random

webview2フラグの詳細については、Windowsガイドをご覧ください。

標準のGoツールを使用してビルドしたい場合は、手動ビルドガイドをご覧ください。

例:

wails build -clean -o myproject.exe

:::Info Macでは、アプリケーションはInfo.dev.plistではなくInfo.plistでバンドルされます。 :::

AppleシリコンでのUPX

AppleシリコンにおけるUPXの使用には既知の問題が確認されています。

WindowsでのUPX

いくつかのアンチウイルスソフトでは、upxで圧縮されたバイナリをウイルスとして検知することが確認されています。詳しくは、upxのIssueをご覧ください。

プラットフォーム

サポートされているプラットフォームは次のとおりです:

プラットフォーム説明
darwinMacOS + ビルドマシンのアーキテクチャ
darwin/amd64MacOS 10.13+ AMD64
darwin/arm64MacOS 11.0+ ARM64
darwin/universalMacOS AMD64+ARM64 ユニバーサルアプリケーション
windowsWindows 10/11 + ビルドマシンのアーキテクチャ
windows/amd64Windows 10/11 AMD64
windows/arm64Windows 10/11 ARM64
linuxLinux + ビルドマシンのアーキテクチャ
linux/amd64Linux AMD64
linux/arm64Linux 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.15beta1go
-eリビルドをトリガーする拡張子 (カンマ区切り)go
-reloaddirsリロードをトリガーする追加ディレクトリ (カンマ区切り)wails.jsonで指定されている値
-ldflags "flags"コンパイラに渡す追加のldflags
-tags "extra tags"コンパイラへ渡すビルドタグ (引用符およびスペース区切り)
-loglevel "loglevel"使用するログレベル - Trace, Debug, Info, Warning, ErrorDebug
-noreloadアセットが変更されたときの自動リロードを無効にする
-nocolourCLIのカラー出力を無効にする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指定されたassetdirreloaddirswailsjsdirdebouncedevserverfrontenddevserverurlフラグの値を、wails.jsonへ保存し、次回以降のデフォルト値にする
-raceGoの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バージョンを出力するだけのコマンドです。