Gestion de dependencias | vasak-desktop

Guía completa para gestionar dependencias del proyecto.

Dependencias del Frontend (JavaScript/TypeScript)

Archivo: package.json

Las dependencias se definen en este archivo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
{
  "dependencies": {
    "vue": "^3.5.26",
    "vue-router": "^4.6.4",
    "pinia": "^3.0.4",
    "@tauri-apps/api": "^2.9.1",
    "@vasakgroup/plugin-bluetooth-manager": "^2.0.0"
  },
  "devDependencies": {
    "typescript": "^5.9.3",
    "vite": "^7.3.0",
    "tailwindcss": "^4.1.18"
  }
}

Instalar Todas las Dependencias

1
bun install

Añadir una Nueva Dependencia

1
2
3
4
bun add nombre-paquete

# dev dependency
bun add -D nombre-paquete

Actualizar Dependencias

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Ver qué paquetes tienen actualizaciones
bun outdated

# Actualizar todos
bun update

# Actualizar paquete específico
bun add nombre-paquete@latest

# Actualizar versión major (cambios incompatibles)
bun add nombre-paquete@^5.0.0  # Si está en v4

Remover Dependencia

1
2
# Bun
bun remove nombre-paquete

Limpiar Dependencias No Utilizadas

1
2
# Bun
bun install --frozen-lockfile  # Después de eliminar de package.json

Dependencias del Backend (Rust)

Archivo: src-tauri/Cargo.toml

Ejemplo de estructura:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
[package]
name = "vasak-desktop"
version = "0.5.2"

[dependencies]
tauri = { version = "2", features = ["protocol-asset"] }
serde = { version = "1", features = ["derive"] }
tokio = { version = "1.0", features = ["full"] }
zbus = { version = "4", features = ["tokio"] }

[dev-dependencies]
tokio-test = "0.4"

Estructura de Versiones

  • 1.0 - Exacto: versión 1.0.0
  • ^1.0 - Compatible: 1.0 a 1.999
  • ~1.0 - Parche: 1.0.x solamente
  • 1.0.* - Parche: 1.0.x solamente
  • >=1.0, <2.0 - Rango: desde 1.0 hasta antes de 2.0

Añadir Dependencia Rust

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
cd src-tauri

# Añadir dependencia
cargo add nombre-crate

# Añadir con features específicos
cargo add nombre-crate --features "feature1,feature2"

# Añadir versión específica
cargo add [email protected]

# Añadir como dev-dependency
cargo add --dev nombre-crate

Actualizar Dependencias Rust

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
cd src-tauri

# Ver qué tiene actualizaciones
cargo outdated

# Actualizar todo
cargo update

# Actualizar crate específico
cargo update -p nombre-crate

# Ver cambios de versión
cargo update --verbose

Remover Dependencia Rust

1
2
3
4
5
6
7
8
cd src-tauri

# Remover
cargo remove nombre-crate

# O editar Cargo.toml directamente
# y ejecutar:
cargo update

Bloqueo de Versiones (Lock Files)

bun.lock (Frontend)

  • Generado automáticamente por Bun
  • Contiene versiones exactas instaladas
  • Debe commitirse a Git
1
2
# Reinstalar versiones exactas del lock file
bun install --frozen-lockfile

Cargo.lock (Backend)

  • Generado automáticamente por Cargo
  • Debe commitirse a Git
1
2
# Para librerías, normalmente no se commitea
# Para aplicaciones ejecutables, sí se commitea

Análisis de Dependencias

Árbol de Dependencias (Frontend)

1
2
3
4
5
# Ver árbol de dependencias
bun ls --depth=10

# Filtrar por paquete
bun ls | grep pinia

Árbol de Dependencias (Backend)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
cd src-tauri

# Ver árbol de dependencias
cargo tree

# Filtrar por dependencia
cargo tree | grep serde

# Ver solo dependencias directas
cargo tree --depth=1

Encontrar Dependencias Duplicadas

1
2
3
4
5
# Frontend
bun ls | grep -E "\s.*@"

# Backend
cargo tree | grep -E "├── |└── " | sort | uniq -d

Auditoría de Seguridad

Frontend

1
2
3
4
5
# Con Bun
bun audit

# Arreglar con Bun
bun audit --fix

Backend

1
2
3
4
5
6
7
cd src-tauri

# Auditar dependencias Rust
cargo audit

# Actualizar crates con vulnerabilidades
cargo update -p vulnerable-crate

Caché y Limpieza

Limpiar Caché de npm/Bun

1
2
# Bun
bun pm cache rm --all

Limpiar Caché de Cargo

1
2
3
4
5
# Cargo
cargo clean

# Caché del registro
rm -rf ~/.cargo/registry/cache

Liberar Espacio

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Ver tamaño de dependencias
du -sh node_modules/
du -sh src-tauri/target/

# Limpiar ambos
rm -rf node_modules/
rm -rf src-tauri/target/

# Reinstalar
bun install
cargo build

Mejores Prácticas

✅ Haz:

  • Committea los archivos lock (bun.lock, Cargo.lock)
  • Usa versiones exactas para producción
  • Audita dependencias regularmente
  • Actualiza dependencias incrementalmente
  • Documenta cambios de dependencias

❌ No hagas:

  • Elimines lock files sin razón
  • Instales directamente versiones * en producción
  • Ignores auditorías de seguridad
  • Actualices todas las dependencias simultáneamente
  • Uses versiones muy antiguas

Scripts Útiles

Actualización Segura

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
# safe-update.sh

set -e

echo "🔄 Actualizando dependencias..."

# Frontend
echo "Frontend..."
bun outdated
bun update
bun install

# Backend
echo "Backend..."
cd src-tauri
cargo outdated
cargo update

# Verificar compilación
echo "Compilando..."
cd ..
bun run build --dry-run
cargo check

echo "✓ Actualización completada"

Vasak group © Todos los derechos reservados