---
name: updating-tauri-dependencies
description: "Guides updating Tauri dependencies across the CLI, Rust crates, and JavaScript packages, keeping versions synchronized and checking for outdated releases. USE WHEN upgrading Tauri or its plugins, fixing version-mismatch errors between @tauri-apps/api and the tauri crate, or auditing outdated dependencies."
cluster: tauri
version: 1.0.0
---

# Updating Tauri Dependencies

This skill provides guidance for updating Tauri dependencies across both the JavaScript and Rust ecosystems.

## Version Synchronization (Critical)

The JavaScript `@tauri-apps/api` package and Rust `tauri` crate must maintain matching minor versions. Adding new features requires upgrading both sides to ensure compatibility.

For Tauri plugins, maintain exact version parity (e.g., both `2.2.1`) for the npm package and cargo crate.

---

## Updating JavaScript Dependencies

### Using npm

Update Tauri CLI and API packages:

```bash
npm install @tauri-apps/cli@latest @tauri-apps/api@latest
```

Check for outdated packages:

```bash
npm outdated @tauri-apps/cli
npm outdated @tauri-apps/api
```

### Using yarn

Update Tauri CLI and API packages:

```bash
yarn up @tauri-apps/cli @tauri-apps/api
```

Check for outdated packages:

```bash
yarn outdated @tauri-apps/cli
yarn outdated @tauri-apps/api
```

### Using pnpm

Update Tauri CLI and API packages:

```bash
pnpm update @tauri-apps/cli @tauri-apps/api --latest
```

Check for outdated packages:

```bash
pnpm outdated @tauri-apps/cli
pnpm outdated @tauri-apps/api
```

---

## Updating Rust Dependencies

### Manual Update

1. Check the latest versions on crates.io:
   - [tauri crate versions](https://crates.io/crates/tauri/versions)
   - [tauri-build crate versions](https://crates.io/crates/tauri-build/versions)

2. Edit `src-tauri/Cargo.toml` and update the version numbers:

```toml
[build-dependencies]
tauri-build = "2.0"

[dependencies]
tauri = { version = "2.0", features = [] }
```

3. Run cargo update from the src-tauri directory:

```bash
cd src-tauri && cargo update
```

### Using cargo-edit (Automatic)

Install cargo-edit if not already installed:

```bash
cargo install cargo-edit
```

Upgrade Tauri dependencies automatically:

```bash
cd src-tauri && cargo upgrade tauri tauri-build
```

---

## Checking for Updates

### Check All Tauri Dependencies

JavaScript packages:

```bash
# npm
npm outdated | grep tauri

# yarn
yarn outdated | grep tauri

# pnpm
pnpm outdated | grep tauri
```

Rust crates:

```bash
cd src-tauri && cargo outdated | grep tauri
```

Note: `cargo outdated` requires the cargo-outdated tool:

```bash
cargo install cargo-outdated
```

---

## Updating Tauri Plugins

When updating Tauri plugins, both the npm package and Rust crate must be updated to the same version.

Example for updating a plugin (e.g., shell plugin):

### JavaScript side

```bash
# npm
npm install @tauri-apps/plugin-shell@latest

# yarn
yarn up @tauri-apps/plugin-shell

# pnpm
pnpm update @tauri-apps/plugin-shell --latest
```

### Rust side

Edit `src-tauri/Cargo.toml`:

```toml
[dependencies]
tauri-plugin-shell = "2.0"
```

Then update:

```bash
cd src-tauri && cargo update
```

---

## Complete Update Workflow

To update all Tauri dependencies in a project:

1. Update JavaScript dependencies:

```bash
# Using npm (adjust for your package manager)
npm install @tauri-apps/cli@latest @tauri-apps/api@latest
```

2. Update any Tauri plugins on the JavaScript side:

```bash
npm install @tauri-apps/plugin-shell@latest @tauri-apps/plugin-fs@latest
# Add other plugins as needed
```

3. Update Rust dependencies in `src-tauri/Cargo.toml`

4. Run cargo update:

```bash
cd src-tauri && cargo update
```

5. Rebuild the project to verify compatibility:

```bash
npm run tauri build
# or
cargo tauri build
```

---

## Troubleshooting

### Version Mismatch Errors

If you encounter version mismatch errors between JavaScript and Rust dependencies:

1. Verify both sides use matching minor versions
2. Check `package.json` for `@tauri-apps/api` version
3. Check `src-tauri/Cargo.toml` for `tauri` crate version
4. Ensure they align (e.g., both at 2.x)

### Cargo Lock Conflicts

If `Cargo.lock` has conflicts after updating:

```bash
cd src-tauri && rm Cargo.lock && cargo update
```

### Plugin Version Mismatch

For plugin version mismatches, ensure exact version parity between npm and cargo versions of the same plugin.
