--- sidebar_position: 2 --- # CLI WailsのCLIには、プロジェクトの管理に使用できるコマンドが多数あります。 すべてのコマンドは次の文法で実行できます: `wails <コマンド> <フラグ>` ## init `wails init`はプロジェクトの生成に使用します。 | フラグ | 説明 | デフォルト | |:----------------- |:----------------------------------------------------------------------------- |:-------:| | -n "プロジェクト名" | プロジェクトの名前。 **必須項目**。 | | | -d "プロジェクトディレクトリ" | 作成するプロジェクトディレクトリ | プロジェクト名 | | -g | gitリポジトリを初期化する | | | -l | 利用可能なプロジェクトテンプレート一覧を表示 | | | -q | コンソールへの出力を抑止 | | | -t "テンプレート名" | 使用するプロジェクトテンプレート。 ここで指定する値は、デフォルトテンプレート名、または、GitHubでホストされているリモートテンプレートのURLです。 | vanilla | | -ide | Generate IDE project files `vscode` or `goland` | | | -f | アプリケーションを強制的にビルド | false | 例: `wails init -n test -d mytestproject -g -ide vscode -q` この例では、サイレントモードで、"mytestproject"ディレクトリに"test"という名前のプロジェクトが生成されるとともに、gitの初期化、vscodeプロジェクトファイルの生成が行われます。 WailsでIDEを使用する場合の詳細については、[こちら](../guides/ides.mdx)をご覧ください。 ### リモートテンプレート WailsではGitHubでホストされているリモートテンプレートをサポートしており、テンプレートのプロジェクトURLを使用してインストールできます。 例: `wails init -n test -t https://github.com/leaanthony/testtemplate[@v1.0.0]` コミュニティがメンテナンスしているテンプレートの一覧は[こちら](../community/templates.mdx)をご覧ください。 :::warning 注意 **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](https://github.com/burrowers/garble)を使用してアプリケーションを難読化する | | | -platform | 指定された[プラットフォーム](../reference/cli.mdx#platforms)(カンマ区切り) 向けにビルドする。例: `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](../guides/windows.mdx)ガイドをご覧ください。 標準のGoツールを使用してビルドしたい場合は、[手動ビルド](../guides/manual-builds.mdx)ガイドをご覧ください。 例: `wails build -clean -o myproject.exe` :::info Macの場合、`Info.dev.plist`ではなく`Info.plist`がアプリケーションにバンドルされます。 ::: :::info AppleシリコンでのUPX AppleシリコンにおけるUPXの使用には[既知の問題](https://github.com/upx/upx/issues/446)が確認されています。 ::: :::info WindowsでのUPX いくつかのアンチウイルスソフトでは、`upx`で圧縮されたバイナリをウイルスとして検知することが確認されています。詳しくは、[upxのIssue](https://github.com/upx/upx/issues/437)をご覧ください。 ::: ### プラットフォーム サポートされているプラットフォームは次のとおりです: | プラットフォーム | 説明 | |:---------------- |:-------------------------------- | | 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` この例では次のことが行われます: - アプリケーションをビルドして実行する (詳しくは[こちら](../guides/manual-builds.mdx)をご覧ください) - WailsのJSモジュールを`./frontend/src`ディレクトリ内に生成する - `./frontend/dist`ディレクトリ内のファイルの更新を監視し、変更されたときにリロードする - ブラウザを開き、アプリケーションへ接続する 既存のフレームワークスクリプトで本機能を使用する方法について詳しくは[こちら](../guides/application-development.mdx#live-reloading)をご覧ください。 ## generate ### template Wailsは、プロジェクトの生成に必ずテンプレートを使用します。 `wails generate template`コマンドは、プロジェクト生成時に使用できるテンプレートの作成を支援します。 | フラグ | 説明 | |:---------------- |:---------------------------- | | -name | テンプレート名 (必須項目) | | -frontend "path" | テンプレートで使用するフロントエンドプロジェクトへのパス | テンプレートの作成について詳しくは、[テンプレートガイド](../guides/templates.mdx)をご覧ください。 ### 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バージョンを出力するだけのコマンドです。