Tauri v2 CLI ツールをインストールする

npm の @tauri-apps/cli と cargo の tauri-cli の違い、プロジェクトごとと PC 全体へのインストール、--version と tauri info でのバージョン確認と揃え方をまとめる。

環境構築 対象: Tauri 2.x 更新日: 読了目安: 約8分 env-004
目次
  1. 前提条件
  2. 1. npm 版と cargo 版の違い
  3. 2. プロジェクトごとに入れる (npm 版)
  4. 3. PC 全体に入れる (cargo 版)
  5. 4. バージョンを確かめて揃える
  6. 動作確認
  7. よくあるエラーと対処法
  8. 「'tauri' は、内部コマンドまたは外部コマンド、…認識されていません。」
  9. 「error: no such command: tauri」
  10. 「Cannot find native binding.」
  11. 「Additional properties are not allowed」で始まる設定エラー
  12. OS ごとの違いと注意点
  13. 関連レシピ

tauri dev や tauri build などのコマンドを受け持つのが Tauri CLI です。npm の @tauri-apps/cli と crates.io の tauri-cli の 2 通りで配られていますが、中身は同じプログラムで、版の番号も共通です (2026 年 9 月時点でどちらも 2.11.4)。違うのは呼び出し方と、プロジェクトごとに入るか PC 全体に 1 つ入るかです。create-tauri-app で JavaScript 系のテンプレートを選んだなら、CLI はすでにプロジェクトに入っています。

前提条件

  • npm 版は Node.js、cargo 版は Rust (rustup) と C のビルドツールが必要です。OS ごとの準備は Hello World (Windows) や Hello World (Mac) を参照してください。
  • どちらの CLI もアプリのビルドでは Rust (cargo) を呼び出すので、npm 版を入れても Rust が無ければ tauri dev はできません。

1. npm 版と cargo 版の違い

npm 版 @tauri-apps/clicargo 版 tauri-cli
呼び出し方npm run tauri <コマンド>cargo tauri <コマンド>
入る場所プロジェクトの node_modules~/.cargo/bin (PC 全体)
インストール数秒 (ビルド済みのバイナリ)数分 (ソースからコンパイル)
版の固定package.json とロックファイルPC に 1 つだけ
向く場面JS / TS のフロントエンド (標準)Yew・Leptos など Rust だけの構成

npm には tauri という名前の別パッケージ (0.x 時代の古いもの) もあります。npm install -g tauri や、CLI の入っていないフォルダーでの npx tauri はそちらを取りに行くので、パッケージ名は必ず @tauri-apps/cli と書きます。

2. プロジェクトごとに入れる (npm 版)

create-tauri-app が作る package.json には、CLI が開発用の依存と tauri スクリプトとして入っています。

{
  "scripts": {
    "tauri": "tauri"
  },
  "devDependencies": {
    "@tauri-apps/cli": "^2"
  }
}

既存の Web プロジェクトに後から入れるときは、次を実行して同じスクリプトを足します (続きは Tauri プロジェクトを作成する の tauri init)。

npm install -D @tauri-apps/cli@latest
# pnpm add -D @tauri-apps/cli@latest / yarn add -D @tauri-apps/cli@latest

実行はパッケージマネージャー経由です。pnpm と yarn はスクリプト名をそのまま書けます。

npm run tauri dev
npx tauri dev
pnpm tauri dev

npm だけは、- で始まるオプションを CLI に渡すときに間に -- が要ります。npm run tauri --version は npm 自身の版 (例: 11.13.0) を表示してしまいます。

npm run tauri -- --version       # tauri-cli 2.11.4
npm run tauri build -- --debug   # --debug が CLI に届く

3. PC 全体に入れる (cargo 版)

cargo install tauri-cli --version "^2.0.0" --locked

--locked は、CLI の公開時に決められた依存クレートの版でビルドする指定で、付けないと組み合わせによってはコンパイルに失敗します。入る実行ファイルは cargo-tauri で、cargo がこれをサブコマンドとして扱うので cargo tauri で呼べます。入っている版は cargo install --list で分かります。

tauri-cli v2.9.6:
    cargo-tauri.exe

Rust だけのテンプレート (Yew など) を create-tauri-app で作ると、CLI が無い場合はこの cargo install を案内されます。npm install -g @tauri-apps/cli でも PC 全体に入りますが、全プロジェクトが 1 つの版を共有する点は同じです。

4. バージョンを確かめて揃える

npm run tauri は常にプロジェクトの npm 版を、cargo tauri は常に PC 全体の cargo 版を呼びます。

npm run tauri -- --version   # tauri-cli 2.11.4 (プロジェクトの npm 版)
cargo tauri --version        # tauri-cli 2.9.6 (PC 全体の cargo 版)
npm ls @tauri-apps/cli       # package.json から解決された版

両方ある PC で npm run tauri info を実行すると、Packages に 2 つの CLI が並びます (抜粋)。🦀 の tauri-cli が cargo 版、ⱼₛ の @tauri-apps/cli が npm 版で、outdated は最新版より古いという意味です。

[-] Packages
    - tauri 🦀: 2.11.5
    - tauri-build 🦀: 2.6.3
    - tauri-cli 🦀: 2.9.6 (outdated, latest: 2.11.4)
    - @tauri-apps/api  ⱼₛ: 2.11.1
    - @tauri-apps/cli  ⱼₛ: 2.11.4

揃え方は次のとおりです。

  • npm 版はロックファイルで揃える: "^2" は範囲の指定なので、実際の版は package-lock.json が決めます。ほかの人や CI は npm ci で同じ版を入れます (Git の設定と .gitignore を適用する)。1 つの版に固定するなら npm install -D --save-exact @tauri-apps/cli@2.11.4 とします。
  • cargo 版はプロジェクトに合わせて入れ直す: cargo install tauri-cli --version 2.11.4 --locked のように演算子なしで書くと、その版がそのまま入ります。
  • CLI と tauri クレートはマイナー版を揃える: 両者は 2.11 系どうしのように同じ番号帯で公開されます。古い CLI は新しく増えた tauri.conf.json の設定項目を知らないので、読ませると設定エラーになります。

CLI・API・プラグインをまとめて最新にする手順は Tauri CLI を最新版にアップグレードする にあります。

動作確認

npm run tauri -- --help でサブコマンドの一覧が出れば、CLI は動いています。Windows の CLI には android はありますが、iOS 用の ios は出てきません。

Commands:
  init         Initialize a Tauri project in an existing directory
  dev          Run your app in development mode
  build        Build your app in release mode and generate bundles and installers
  bundle       Generate bundles and installers for your app (already built by `tauri build`)
  android      Android commands
  migrate      Migrate from v1 to v2
  info         Show a concise list of information about the environment, ...

よくあるエラーと対処法

「'tauri' は、内部コマンドまたは外部コマンド、…認識されていません。」

コマンドプロンプトでの表示です (PowerShell では「用語 'tauri' は、…認識されません。」)。npm 版はプロジェクトの node_modules にしか入らないので、tauri dev と直接打っても見つかりません。npm run tauri dev か npx tauri dev で実行します。

「error: no such command: tauri」

cargo tauri を使ったのに cargo 版が入っていません。cargo install tauri-cli で入れるか、npm 版の入口を使います。

「Cannot find native binding.」

npm 版が今の OS 用のバイナリを見つけられないときのエラーです。別の OS (WSL を含む) で作った node_modules をコピーした、optional dependencies を省いた、などが原因です。案内どおり node_modules と package-lock.json を消して npm install し直します。

「Additional properties are not allowed」で始まる設定エラー

以前に入れた古い cargo 版で、新しい設定項目を使った tauri.conf.json を読んだときに起きます。tauri info で CLI と tauri クレートの版を見比べ、CLI を上げます。

OS ごとの違いと注意点

  • npm 版のバイナリは OS・CPU ごとに別パッケージ: Windows・macOS・Linux の各 CPU 用が optional dependencies として並び、今の環境の分だけが入ります。node_modules を OS 間でコピーしたり、Windows と WSL で共有したりしないでください。
  • cargo 版はソースからビルドするので、C のビルドツール (Windows は C++ Build Tools、macOS は Command Line Tools、Linux は build-essential など) が要ります。
  • モバイル: tauri android はどの OS の CLI にもありますが、tauri ios は macOS の CLI にしかありません。

関連レシピ

参考リンク(公式ドキュメント)

Web Ninja

この記事を書いた人

Web Ninja ウェブエンジニア (Web Engineer)

会社員ネットワークエンジニアから独立してかれこれ 25 年以上 Web エンジニアとして活動中。普段は JavaScript と Node.js を自在に操り、時には C++ や Perl といった古流の技も嗜みます。近年は Tauri × Rust という新たな武器を手に、デスクトップアプリ開発の最前線を駆け抜けています。「作りたい」を「作れる」に変えるための、実践的な「技」をお届けします。

お問い合わせ: tauri.ninja@gmail.com

内容の誤り・動かないコードを報告する