420 lines
11 KiB
Markdown
420 lines
11 KiB
Markdown
|
|
# 🎯 Guía Práctica: Usando las Nuevas Funciones
|
|||
|
|
|
|||
|
|
## 📋 Tabla de Contenidos
|
|||
|
|
|
|||
|
|
1. [Usar EnvManager](#1-usar-envmanager)
|
|||
|
|
2. [Eliminar Archivos Correctamente](#2-eliminar-archivos)
|
|||
|
|
3. [Interpretar Logs de Debugging](#3-logs-de-debugging)
|
|||
|
|
4. [Prevenir Errores Comunes](#4-prevenir-errores)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. Usar EnvManager
|
|||
|
|
|
|||
|
|
### Paso 1: Abrir el Manager
|
|||
|
|
|
|||
|
|
1. Click en el botón **"🔐 Variables ENV"** en el sidebar izquierdo
|
|||
|
|
2. Se abrirá el panel del EnvManager
|
|||
|
|
|
|||
|
|
### Paso 2: Escanear Variables
|
|||
|
|
|
|||
|
|
1. Click en **"🔍 Escanear Proyecto"**
|
|||
|
|
2. Espera a que termine (aparecerá notificación)
|
|||
|
|
3. Verás algo como:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
✅ Escaneadas 5 variables del código
|
|||
|
|
➕ Se agregaron 3 variables nuevas
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Paso 3: Ver Ubicaciones
|
|||
|
|
|
|||
|
|
Cada variable mostrará dónde se usa:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
DATABASE_URL
|
|||
|
|
📍 Usada en 2 ubicación(es) ▼
|
|||
|
|
├─ src\core\prisma.ts:12 → const client = new PrismaClient({ datasourceUrl: process.env.DATABASE_URL })
|
|||
|
|
└─ src\commands\admin\setup.ts:8 → if (!process.env.DATABASE_URL) throw new Error('Missing DB')
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Explicación:**
|
|||
|
|
- `src\core\prisma.ts:12` = Archivo y número de línea
|
|||
|
|
- `→ const client = ...` = Código exacto donde se usa
|
|||
|
|
|
|||
|
|
### Paso 4: Editar Variables
|
|||
|
|
|
|||
|
|
**Opción A: Formulario (Recomendado)**
|
|||
|
|
1. Busca la variable en la lista
|
|||
|
|
2. Escribe el valor en el input
|
|||
|
|
3. Click en 👁️ para mostrar/ocultar valores sensibles
|
|||
|
|
4. Click en **"💾 Guardar .env"**
|
|||
|
|
|
|||
|
|
**Opción B: Editor Raw**
|
|||
|
|
1. Scroll hasta **"📝 Editor Raw (.env)"**
|
|||
|
|
2. Edita el texto directamente:
|
|||
|
|
```env
|
|||
|
|
DATABASE_URL=postgres://localhost:5432/mydb
|
|||
|
|
API_KEY=sk_test_123456789
|
|||
|
|
DEBUG=true
|
|||
|
|
```
|
|||
|
|
3. Click en **"🔄 Sincronizar desde Raw"**
|
|||
|
|
4. Click en **"💾 Guardar .env"**
|
|||
|
|
|
|||
|
|
### Paso 5: Agregar Variable Manual
|
|||
|
|
|
|||
|
|
Si necesitas una variable que no está en el código:
|
|||
|
|
|
|||
|
|
1. Click en **"➕ Agregar Variable"**
|
|||
|
|
2. Escribe el nombre (ej: `MY_SECRET_KEY`)
|
|||
|
|
3. Se convierte automáticamente a mayúsculas: `MY_SECRET_KEY`
|
|||
|
|
4. Escribe el valor
|
|||
|
|
5. Guarda
|
|||
|
|
|
|||
|
|
### Paso 6: Eliminar Variable
|
|||
|
|
|
|||
|
|
1. Busca la variable en la lista
|
|||
|
|
2. Click en el botón **"🗑️"**
|
|||
|
|
3. Confirma la eliminación
|
|||
|
|
4. La variable desaparece del formulario Y del editor raw
|
|||
|
|
5. Click en **"💾 Guardar .env"** para aplicar
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. Eliminar Archivos
|
|||
|
|
|
|||
|
|
### Problema: "Permiso Denegado"
|
|||
|
|
|
|||
|
|
**Síntoma:**
|
|||
|
|
```
|
|||
|
|
❌ Error eliminando: Permiso denegado para eliminar: src/test.ts
|
|||
|
|
Ejecuta el editor como administrador
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Solución Windows:**
|
|||
|
|
|
|||
|
|
**Método 1: Ejecutar como Admin**
|
|||
|
|
1. Cierra la aplicación
|
|||
|
|
2. Click derecho en el ejecutable
|
|||
|
|
3. "Ejecutar como administrador"
|
|||
|
|
4. Intenta eliminar de nuevo
|
|||
|
|
|
|||
|
|
**Método 2: PowerShell Elevado**
|
|||
|
|
```powershell
|
|||
|
|
# Abrir PowerShell como Admin
|
|||
|
|
Start-Process -FilePath "C:\ruta\a\tu\editor.exe" -Verb RunAs
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Método 3: Cambiar Permisos**
|
|||
|
|
1. Click derecho en la carpeta del proyecto
|
|||
|
|
2. Propiedades → Seguridad → Editar
|
|||
|
|
3. Tu usuario → Control total ✅
|
|||
|
|
4. Aplicar → OK
|
|||
|
|
|
|||
|
|
### Problema: "Archivo no Encontrado"
|
|||
|
|
|
|||
|
|
**Síntoma:**
|
|||
|
|
```
|
|||
|
|
❌ Archivo no encontrado: src/deleted.ts
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Causa:** Otro programa ya eliminó el archivo (Git, otro editor, etc.)
|
|||
|
|
|
|||
|
|
**Solución:** Refresca el árbol de archivos (F5 o click en "🔄 Refrescar")
|
|||
|
|
|
|||
|
|
### Problema: "No es un Archivo"
|
|||
|
|
|
|||
|
|
**Síntoma:**
|
|||
|
|
```
|
|||
|
|
❌ La ruta no es un archivo: src/commands
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Causa:** Intentaste eliminar una carpeta con el botón de eliminar archivo
|
|||
|
|
|
|||
|
|
**Solución:** Usa el botón de eliminar carpeta (usualmente click derecho → Eliminar carpeta)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. Logs de Debugging
|
|||
|
|
|
|||
|
|
### Dónde Ver los Logs
|
|||
|
|
|
|||
|
|
**Opción 1: Consola del Navegador (Desarrollo)**
|
|||
|
|
1. Presiona **F12**
|
|||
|
|
2. Tab "Console"
|
|||
|
|
3. Verás todos los logs
|
|||
|
|
|
|||
|
|
**Opción 2: Archivo de Log (Producción)**
|
|||
|
|
- Windows: `C:\Users\TuUsuario\AppData\Local\amayo-editor\logs\`
|
|||
|
|
- Linux: `~/.local/share/amayo-editor/logs/`
|
|||
|
|
- Mac: `~/Library/Application Support/amayo-editor/logs/`
|
|||
|
|
|
|||
|
|
### Logs del EnvManager
|
|||
|
|
|
|||
|
|
#### Carga Exitosa
|
|||
|
|
```
|
|||
|
|
📂 Cargando .env desde: C:/Users/Shnimlz/Documents/GitHub/amayo
|
|||
|
|
✅ .env cargado, contenido: DATABASE_URL=postgres://localhost
|
|||
|
|
PORT=3000
|
|||
|
|
API_KEY=sk_test_123
|
|||
|
|
🔍 Parseando .env, líneas: 3
|
|||
|
|
✓ DATABASE_URL=postgres://localhost
|
|||
|
|
✓ PORT=3000
|
|||
|
|
✓ API_KEY=sk_test_123
|
|||
|
|
✅ Variables parseadas: 3
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Interpretación:**
|
|||
|
|
- ✅ Todo bien
|
|||
|
|
- Se cargaron 3 variables correctamente
|
|||
|
|
|
|||
|
|
#### Archivo No Existe
|
|||
|
|
```
|
|||
|
|
📂 Cargando .env desde: C:/Users/Shnimlz/Documents/GitHub/amayo
|
|||
|
|
❌ Error cargando .env: No such file or directory
|
|||
|
|
ℹ️ No se encontró archivo .env, se creará uno nuevo
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Interpretación:**
|
|||
|
|
- ⚠️ Normal en proyectos nuevos
|
|||
|
|
- El archivo se creará cuando guardes
|
|||
|
|
|
|||
|
|
#### Error de Parseo
|
|||
|
|
```
|
|||
|
|
🔍 Parseando .env, líneas: 5
|
|||
|
|
✓ DATABASE_URL=postgres://localhost
|
|||
|
|
✗ Línea inválida: "INVALID LINE WITHOUT EQUALS"
|
|||
|
|
✓ API_KEY=sk_test_123
|
|||
|
|
✅ Variables parseadas: 2
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Interpretación:**
|
|||
|
|
- ⚠️ Una línea no tiene formato válido
|
|||
|
|
- Se ignoró y se cargaron las demás
|
|||
|
|
|
|||
|
|
### Logs del Guardado
|
|||
|
|
|
|||
|
|
#### Guardado Exitoso
|
|||
|
|
```
|
|||
|
|
💾 Guardando .env...
|
|||
|
|
Ruta del proyecto: C:/Users/Shnimlz/Documents/GitHub/amayo
|
|||
|
|
Contenido a guardar: DATABASE_URL=postgres://localhost
|
|||
|
|
PORT=3000
|
|||
|
|
✅ Guardado exitoso
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Interpretación:**
|
|||
|
|
- ✅ Archivo escrito en el disco
|
|||
|
|
- Ubicación: `{projectRoot}/.env`
|
|||
|
|
|
|||
|
|
#### Error de Permisos
|
|||
|
|
```
|
|||
|
|
💾 Guardando .env...
|
|||
|
|
❌ Error guardando .env: Permission denied (os error 13)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Solución:** Ejecutar como administrador
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. Prevenir Errores Comunes
|
|||
|
|
|
|||
|
|
### Error 1: Variables No Se Guardan
|
|||
|
|
|
|||
|
|
**Síntoma:** Editas variables pero al reabrir están en blanco
|
|||
|
|
|
|||
|
|
**Causa:** No hiciste click en "💾 Guardar .env"
|
|||
|
|
|
|||
|
|
**Prevención:**
|
|||
|
|
1. Siempre busca el botón verde "💾 Guardar .env"
|
|||
|
|
2. Debe estar habilitado (no gris)
|
|||
|
|
3. Click y espera la notificación: "✅ Archivo .env guardado correctamente"
|
|||
|
|
|
|||
|
|
### Error 2: Editor Raw y Formulario Desincronizados
|
|||
|
|
|
|||
|
|
**Síntoma:** El formulario muestra valores diferentes al editor raw
|
|||
|
|
|
|||
|
|
**Causa:** Editaste en raw pero no sincronizaste
|
|||
|
|
|
|||
|
|
**Prevención:**
|
|||
|
|
1. Si editas en raw, SIEMPRE click en "🔄 Sincronizar desde Raw"
|
|||
|
|
2. Espera la notificación: "🔄 Sincronizado desde editor raw"
|
|||
|
|
3. Verifica que el formulario se actualizó
|
|||
|
|
4. Ahora sí, guarda
|
|||
|
|
|
|||
|
|
### Error 3: Loop Infinito (Navegador Colgado)
|
|||
|
|
|
|||
|
|
**Síntoma:** El navegador se congela al editar variables
|
|||
|
|
|
|||
|
|
**Causa:** Bug en el código (ya arreglado con `isUpdatingRaw`)
|
|||
|
|
|
|||
|
|
**Si pasa:**
|
|||
|
|
1. Cierra la aplicación
|
|||
|
|
2. Actualiza a la última versión
|
|||
|
|
3. El flag `isUpdatingRaw` previene este problema
|
|||
|
|
|
|||
|
|
### Error 4: Variables Detectadas pero No en el .env
|
|||
|
|
|
|||
|
|
**Síntoma:** "⚠️ Sin definir: 3" pero no aparecen en la lista
|
|||
|
|
|
|||
|
|
**Causa:** No se auto-agregaron
|
|||
|
|
|
|||
|
|
**Solución:**
|
|||
|
|
1. Scroll hasta "⚠️ Variables sin definir encontradas en el código"
|
|||
|
|
2. Click en "➕ Agregar" en cada variable faltante
|
|||
|
|
3. O click en "🔍 Escanear Proyecto" de nuevo
|
|||
|
|
|
|||
|
|
### Error 5: Ubicaciones No Aparecen
|
|||
|
|
|
|||
|
|
**Síntoma:** Las variables no muestran "📍 Usada en X ubicación(es)"
|
|||
|
|
|
|||
|
|
**Causa:** Versión vieja del backend
|
|||
|
|
|
|||
|
|
**Solución:**
|
|||
|
|
1. Verifica que `AEditor/src-tauri/src/lib.rs` tenga la función `scan_env_variables_with_locations`
|
|||
|
|
2. Recompila el backend Rust:
|
|||
|
|
```bash
|
|||
|
|
cd AEditor
|
|||
|
|
npm run tauri build
|
|||
|
|
```
|
|||
|
|
3. Reinicia la aplicación
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. Ejemplos de Casos de Uso
|
|||
|
|
|
|||
|
|
### Caso 1: Proyecto Nuevo
|
|||
|
|
|
|||
|
|
**Escenario:** Acabas de clonar un repo, no tiene .env
|
|||
|
|
|
|||
|
|
**Pasos:**
|
|||
|
|
1. Abre EnvManager
|
|||
|
|
2. Click "🔍 Escanear Proyecto"
|
|||
|
|
3. Se detectan automáticamente todas las variables del código
|
|||
|
|
4. Completa los valores:
|
|||
|
|
```env
|
|||
|
|
DATABASE_URL=postgres://localhost:5432/mydb
|
|||
|
|
JWT_SECRET=supersecret123
|
|||
|
|
API_KEY=sk_live_...
|
|||
|
|
```
|
|||
|
|
5. Guarda
|
|||
|
|
6. ¡Listo! Ya tienes tu .env
|
|||
|
|
|
|||
|
|
### Caso 2: Migración de Variables
|
|||
|
|
|
|||
|
|
**Escenario:** Renombraste una variable en el código
|
|||
|
|
|
|||
|
|
**Pasos:**
|
|||
|
|
1. Cambia en el código:
|
|||
|
|
```typescript
|
|||
|
|
// Antes
|
|||
|
|
const url = process.env.DATABASE_URL;
|
|||
|
|
|
|||
|
|
// Después
|
|||
|
|
const url = process.env.DB_CONNECTION_STRING;
|
|||
|
|
```
|
|||
|
|
2. Abre EnvManager
|
|||
|
|
3. Click "🔍 Escanear Proyecto"
|
|||
|
|
4. Verás:
|
|||
|
|
- ✅ `DB_CONNECTION_STRING` detectada
|
|||
|
|
- ⚠️ `DATABASE_URL` ya no se usa
|
|||
|
|
5. Elimina `DATABASE_URL`
|
|||
|
|
6. Agrega valor a `DB_CONNECTION_STRING`
|
|||
|
|
7. Guarda
|
|||
|
|
|
|||
|
|
### Caso 3: Debugging de Variable Faltante
|
|||
|
|
|
|||
|
|
**Escenario:** Tu app dice "Missing environment variable: API_KEY"
|
|||
|
|
|
|||
|
|
**Pasos:**
|
|||
|
|
1. Abre EnvManager
|
|||
|
|
2. Click "🔍 Escanear Proyecto"
|
|||
|
|
3. Busca `API_KEY` en la lista
|
|||
|
|
4. Mira "📍 Usada en X ubicación(es)" para ver dónde se requiere:
|
|||
|
|
```
|
|||
|
|
src\server\api.ts:15 → headers: { 'Authorization': process.env.API_KEY }
|
|||
|
|
```
|
|||
|
|
5. Agrega el valor correcto
|
|||
|
|
6. Guarda
|
|||
|
|
7. Reinicia la app
|
|||
|
|
|
|||
|
|
### Caso 4: Compartir .env.example
|
|||
|
|
|
|||
|
|
**Escenario:** Quieres compartir un template del .env sin valores sensibles
|
|||
|
|
|
|||
|
|
**Pasos:**
|
|||
|
|
1. Abre EnvManager
|
|||
|
|
2. Copia el contenido del editor raw
|
|||
|
|
3. Crea archivo `.env.example`
|
|||
|
|
4. Pega y reemplaza valores:
|
|||
|
|
```env
|
|||
|
|
DATABASE_URL=postgres://localhost:5432/your_db_name
|
|||
|
|
JWT_SECRET=your_secret_here
|
|||
|
|
API_KEY=your_api_key_here
|
|||
|
|
```
|
|||
|
|
5. Commit `.env.example` a Git
|
|||
|
|
6. **NO** comitees `.env` (debe estar en `.gitignore`)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 6. Atajos de Teclado
|
|||
|
|
|
|||
|
|
| Acción | Atajo |
|
|||
|
|
|--------|-------|
|
|||
|
|
| Guardar .env | `Ctrl+S` (cuando el botón está habilitado) |
|
|||
|
|
| Abrir DevTools | `F12` |
|
|||
|
|
| Refrescar | `F5` |
|
|||
|
|
| Buscar en raw | `Ctrl+F` (dentro del textarea) |
|
|||
|
|
| Seleccionar todo raw | `Ctrl+A` (dentro del textarea) |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 7. Checklist de Verificación
|
|||
|
|
|
|||
|
|
Antes de cerrar EnvManager, verifica:
|
|||
|
|
|
|||
|
|
- [ ] Todas las variables tienen valores (no vacías)
|
|||
|
|
- [ ] No hay "⚠️ Sin definir" (o las agregaste intencionalmente)
|
|||
|
|
- [ ] Guardaste los cambios (botón "💾 Guardar .env" presionado)
|
|||
|
|
- [ ] Viste la notificación: "✅ Archivo .env guardado correctamente"
|
|||
|
|
- [ ] Si editaste en raw, sincronizaste primero
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 8. Troubleshooting Rápido
|
|||
|
|
|
|||
|
|
| Problema | Solución Rápida |
|
|||
|
|
|----------|-----------------|
|
|||
|
|
| No guarda cambios | ¿Hiciste click en "💾 Guardar .env"? |
|
|||
|
|
| Permiso denegado | Ejecutar como administrador |
|
|||
|
|
| Variables no aparecen | Click en "🔍 Escanear Proyecto" |
|
|||
|
|
| Raw y formulario diferentes | Click en "🔄 Sincronizar desde Raw" |
|
|||
|
|
| Ubicaciones no aparecen | Recompila el backend Rust |
|
|||
|
|
| App se congela | Actualiza a última versión (tiene fix) |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 9. Preguntas Frecuentes
|
|||
|
|
|
|||
|
|
**P: ¿Dónde se guarda el .env?**
|
|||
|
|
R: En la raíz del proyecto: `{projectRoot}/.env`
|
|||
|
|
|
|||
|
|
**P: ¿Puedo editar el .env manualmente en otro editor?**
|
|||
|
|
R: Sí, pero después haz "🔄 Refrescar" en el EnvManager para recargar
|
|||
|
|
|
|||
|
|
**P: ¿Las ubicaciones se actualizan en tiempo real?**
|
|||
|
|
R: No, tienes que hacer "🔍 Escanear Proyecto" para actualizar
|
|||
|
|
|
|||
|
|
**P: ¿Puedo agregar comentarios en el .env?**
|
|||
|
|
R: Sí, líneas que empiezan con `#` son comentarios
|
|||
|
|
|
|||
|
|
**P: ¿Qué pasa si elimino una variable que se usa en el código?**
|
|||
|
|
R: El código fallará en runtime. Verifica las ubicaciones antes de eliminar.
|
|||
|
|
|
|||
|
|
**P: ¿Puedo tener múltiples .env?**
|
|||
|
|
R: Sí, pero el EnvManager solo maneja `.env`. Para `.env.local`, `.env.production`, etc., edítalos manualmente.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
¡Eso es todo! Ahora eres un experto en usar el nuevo EnvManager 🎉
|