コマンド実行時に特定の環境変数を設定する方法を解説します。
前提条件
プラグインのインストールが必要です。
npm run tauri add shell
Permissions (権限) の設定
src-tauri/capabilities/default.json に以下の権限を追加します。
{
"permissions": [
...,
"shell:allow-open",
{
"identifier": "shell:allow-execute",
"allow": [
{
"name": "node",
"cmd": "node",
"args": true
}
]
}
]
}
1. フロントエンドから作成する (TypeScript)
Command.create() の第3引数(オプション)にある env プロパティで環境変数を指定します。
オブジェクト形式で KEY: VALUE のペアを渡します。
import { Command } from '@tauri-apps/plugin-shell';
async function runWithEnv() {
const cmd = Command.create('node', ['-e', 'console.log(process.env.MY_VAR)'], {
env: { 'MY_VAR': 'Hello from Tauri' }
});
const output = await cmd.execute();
console.log(output.stdout);
}
2. バックエンドから作成する (Rust)
Command::env() メソッドを使用します。
use std::process::Command;
#[tauri::command]
fn run_with_env() -> String {
let output = Command::new("node")
.args(["-e", "console.log(process.env.MY_VAR)"])
.env("MY_VAR", "Hello from Rust")
.output()
.expect("failed to execute process");
String::from_utf8_lossy(&output.stdout).to_string()
}
※ 実際に node コマンドなどを実行するには、適切な Permissions 設定(shell:allow-execute)が必要です。