Tauri使您的应用能够通过 clap—一个强大的命令行参数解析器,来获得一个 CLI 。
在您的 tauri.conf.json 中使用简单的 CLI 定义, 您可以定义您的接口并在JavaScript 和/或Rust上读取它的参数匹配图。

基本配置

在 tauri.conf.json 中,您可以使用以下的结构来配置接口:
{ “tauri”: { “cli”: { “description”: “”, // command description that’s shown on help “longDescription”: “”, // command long description that’s shown on help “beforeHelp”: “”, // content to show before the help text “afterHelp”: “”, // content to show after the help text “args”: [], // list of arguments of the command, we’ll explain it later “subcommands”: { “subcommand-name”: { // configures a subcommand that is accessible // with $ ./app subcommand-name --arg1 --arg2 --etc // configuration as above, with “description”, “args”, etc. } } } } }
所有JSON在这里的配置都只是样本,为了更加明确,还省去了许多其他字段。

添加参数

args 数组代表其命令或子命令接受的参数列表。
您可以在这里找到更多关于配置 的详细信息。

位置参数

位置参数定义在它自己的位置
具有以下配置:
{ “args”: [ { “name”: “source”, “index”: 1 }, { “name”: “destination”, “index”: 2 } ] }
用户可以以 $ ./app tauri.txt dest.txt 的形式运行您的应用程序。 和箭头匹配将定义 source 为 “tauri”.txt” 和 destination 为 “dest.txt”.

命名参数

命名的参数是一对(键值),键值指明值。
具有以下配置:
{ “args”: [ { “name”: “type”, “short”: “t”, “takesValue”: true, “multiple”: true, “possibleValues”: [“foo”, “bar”] } ] }
用户可以使用如下命令运行应用:$ ./app —type foo bar、$ ./app -t foo -t bar 或 $ ./app —type=foo,bar,此时的参数 type 将会是 [“foo”, “bar”]。

标记参数

一个标记(flag)参数是一个独立的键,用“存在”或“不存在”来为你的应用提供信息。
具有以下配置:
{ “args”: [ “name”: “verbose”, “short”: “v”, “multipleOccurrences”: true ] }
用户可以使用如下命令运行应用:$ ./app -v -v -v、$ ./app —verbose —verbose —verbose 或 $ ./app -vvv,此时的 verbose 将会是 true,且 occurrences = 3。

子命令

一些 CLI 应用有作为子命令提供的额外接口。

例如, git CLI 有 git branch, git commit 和 git push.

您可以使用 subcommands 数组定义附加嵌套接口:
{ “cli”: { … “subcommands”: { “branch”: { “args”: [] }, “push”: { “args”: [] } } } }
其配置与主应用的配置相同,包含 description、longDescription 和 args 等等。

读取参数

Rust

use tauri::cli::get_matches; fn main() { match get_matches() { Some(matches) => { // matches 是一个结构体,类似 { args, subcommand } //参数是一个HashMap,它的每个参数类似{ value, occurrences } //它的子命令参数类似 { name, matches } } } }

JavaScript

import { getMatches } from ‘tauri/api/cli’ getMatches().then((matches) => { // 使用参数{ args, subcommand }来完成你的程序 })

完整文档

您可以在这里找到更多关于配置的详细信息。