---
sidebar_position: 2
---

# 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を使用する場合の詳細については、[こちら](../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`は、プロジェクトを本番配布用のバイナリにコンパイルするときに使用します。

| フラグ                  | 説明                                                                                                                               | デフォルト                                                                                                                                               |
|:-------------------- |:-------------------------------------------------------------------------------------------------------------------------------- |:--------------------------------------------------------------------------------------------------------------------------------------------------- |
| -platform            | 指定された[プラットフォーム](../reference/cli.mdx#platforms)(カンマ区切り) 向けにビルドする。例: `windows/arm64`。 アーキテクチャを指定しない場合は、`runtime.GOARCH`の値が使用されます。 | platform = `GOOS` environment variable if given else `runtime.GOOS`.<br/>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](https://github.com/burrowers/garble)を使用してアプリケーションを難読化する                                                                 | false                                                                                                                                               |
| -garbleargs          | garbleへ渡す引数                                                                                                                      | `-literals -tiny -seed=random`                                                                                                                      |

`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モジュールが生成されます:
  - コードヒントを提供してくれる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`

この例では次のことが行われます:

- アプリケーションをビルドして実行する (詳しくは[こちら](../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`ディレクトリを手動で生成できます。

## update

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

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

## version

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