8 个版本 (稳定)

2.0.8 2024年7月17日
2.0.7 2024年6月20日
0.0.5 2024年6月19日
0.0.4 2024年6月19日

208GUI

Download history 500/week @ 2024-06-19 11/week @ 2024-06-26 12/week @ 2024-07-03 141/week @ 2024-07-17 17/week @ 2024-07-24 11/week @ 2024-07-31 10/week @ 2024-08-07

每月下载量 179

MIT 协议

190KB
1.5K SLoC

Rust 1.5K SLoC // 0.0% comments TypeScript 339 SLoC // 0.4% comments JavaScript 27 SLoC // 0.1% comments

Tauri 插件 Shellx

当前此插件仅支持 Tauri v2

Deploy Docs

这是原始官方 Tauri 插件 tauri-plugin-shell 的一个修改版本。

目的是提供移除对 shell 命令限制(每个命令都必须在能力中预定义)的选项。

此插件允许您无限制地自由执行任何 shell 命令。

文档

JS/TS API 文档: https://huakunshen.github.io/tauri-plugin-shellx/

安装

请确保您的 npm 包版本和 rust crate 版本相同,否则您可能会遇到兼容性问题。

npm install tauri-plugin-shellx-api
cargo add tauri-plugin-shellx

用法

https://crates.io/crates/tauri-plugin-shellx 安装 rust crate

像这样初始化插件。函数 init() 接收一个 unlocked 参数。

let unlocked = true;
tauri::Builder::default()
    .plugin(tauri_plugin_shellx::init(unlocked))
...
  • 如果设置为 true,则忽略能力和权限设置。
  • 如果设置为 false,则将像原始 tauri-plugin-shell 一样工作。

示例

示例应用程序可以在 ./examples/tauri-app 中找到。

此示例应用程序是一个简化的终端模拟器。

API

所有 API 函数可以在 API 文档 中找到。

执行

const cmd = Command.create('echo', ['echo', 'Hello, World!'])
const out = await cmd.execute()
const stdout = out.stdout
// stdout === 'Hello, World!'

Spawn

为长时间运行的任务启动进程,并获取 stdout/stderr 流以进行实时输出。

const cmd = Command.create('ffmpeg', [
  '-i',
  '/Users/xxx/input.mp4',
  '/Users/xxx/output.mp4'
])

cmd.on('close', (data) => {
  console.log(
    `command finished with code ${data.code} and signal ${data.signal}`
  )
})
cmd.on('error', (error) => console.error(`command error: "${error}"`))
cmd.stdout.on('data', (line) => console.log(`command stdout: "${line}"`))
cmd.stderr.on('data', (line) => console.log(`command stderr: "${line}"`))

const child = await cmd.spawn()
console.log('pid:', child.pid)
await child.kill()

额外 API

除了原始 API 之外,此插件还提供了一些额外的 API

脚本包装器

这些函数是 execute 函数的简单包装器,可以用于执行脚本。

您还可以构建自己的脚本运行器包装器

const powershellCmd = Command.create('powershell', ['-Command', script])
const bashCmd = Command.create('bash', ['-c', script])
  • makeBashScript
  • makePowershellScript
  • makeAppleScript
  • makePythonScript
  • makeZshScript
  • makeNodeScript
  • executeBashScript
  • 执行PowerShell脚本
  • 执行AppleScript
  • 执行Python脚本
  • 执行Zsh脚本
  • 执行Node脚本

其他实用工具

  • 可能在Windows上
  • 具有命令
  • 修复路径环境变量
    • 如果您运行的命令在PATH环境变量中找不到,您可以使用此函数来修复它。

依赖项

~20–61MB
~1M SLoC