メインコンテンツにスキップ
バージョン: 次期バージョン 🚧

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は、プロジェクトを本番配布用のバイナリにコンパイルするときに使用します。

フラグ説明デフォルト
-cleanbuild/binディレクトリをクリーンする
-compiler "compiler"違うGoコンパイラを使用する。例: go1.15beta1go
-debugアプリケーションのデバッグ情報を保持し、デバッグコンソールを表示する。 これにより、アプリケーションウィンドウで開発者ツールを使用することを許可できます。
-devtoolsAllows 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アプリケーションを強制的にビルド
-garbleargsgarbleへ渡す引数-literals -tiny -seed=random
-ldflags "flags"コンパイラに渡す追加のldflags
-mコンパイル前のmod tidyの実行をスキップする
-nopackageアプリケーションをパッケージ化しない
-nocolour出力文字に色をつけない
-nosyncgomodgo.modとWailsのバージョンを同期させない
-nsisWindows向けのNSISインストーラを生成する
-o filename出力ファイル名
-obfuscatedgarbleを使用してアプリケーションを難読化する
-platform指定されたプラットフォーム(カンマ区切り) 向けにビルドする。例: windows/arm64。 アーキテクチャを指定しない場合は、runtime.GOARCHの値が使用されます。platform = GOOS environment variable if given else runtime.GOOS.
arch = GOARCH envrionment variable if given else runtime.GOARCH.
-raceGoのrace detectorを使用してビルドする
-sフロントエンドのビルドをスキップ
-skipbindingsバインディングの生成をスキップする
-tags "extra tags"Goコンパイラに渡すビルドタグ。 値は引用符で囲んでください。 また、スペースまたはカンマで区切ってください(両方は使用しないでください)。
-trimpath実行可能ファイルから、すべてのファイルシステムパスを削除する
-uプロジェクトのgo.modを更新し、CLIと同じバージョンのWailsを使用する
-upx"upx"を使用して最終的にバイナリを圧縮する
-upxflagsupxに渡すフラグ
-v int詳細度レベル (0 - サイレント, 1 - デフォルト, 2 - 詳細)1
-webview2WebView2インストーラーのストラテジ: download,embed,browser,errordownload
-windowsconsoleWindiws向けビルドでコンソールウィンドウを維持する

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

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

例:

wails build -clean -o myproject.exe

情報

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モジュールが生成されます:
  • 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.15beta1go
-debounceアセットの変更が検出されたあと、リロードするまでの時間100 (ミリ秒)
-devserver "host:port"Wails開発サーバをバインドするアドレス"localhost:34115"
-extensionsリビルドをトリガーする拡張子 (カンマ区切り)go
-forcebuildアプリケーションを強制的にビルドする
-frontenddevserverurl "url"アセットを提供するサードパーティ製の開発サーバ(例: Vite) を使用する""
-ldflags "flags"コンパイラに渡す追加のldflags
-loglevel "loglevel"使用するログレベル - Trace, Debug, Info, Warning, ErrorDebug
-nocolourCLIのカラー出力を無効にするfalse
-noreloadアセットが変更されたときの自動リロードを無効にする
-nosyncgomodgo.modとWailsのバージョンを同期させないfalse
-raceGoのrace detectorを使用してビルドするfalse
-reloaddirsリロードをトリガーする追加ディレクトリ (カンマ区切り)wails.jsonで指定されている値
-sフロントエンドのビルドをスキップfalse
-save指定されたassetdirreloaddirswailsjsdirdebouncedevserverfrontenddevserverurlフラグの値を、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ディレクトリを手動で生成できます。

update

wails updateコマンドを実行すると、Wails CLIのバージョンをアップデートできます。

フラグ説明
-pre最新のプレリリースバージョンにアップデートする
-version "version"特定のバージョンのCLIをインストールする

version

wails versionは、現在のCLIバージョンを出力するだけのコマンドです。