# 🔧 CORREÇÃO: Erro EACCES no Cache do NPM + vite: not found

## 🔴 PROBLEMA IDENTIFICADO

### **Erro 1: EACCES no cache do npm**
```
npm error code EACCES
npm error path /var/www/.npm
npm error Your cache folder contains root-owned files
```

### **Erro 2: vite: not found**
```
sh: 1: vite: not found
```

### **Causa:**
1. O diretório `/var/www/.npm` tem arquivos de `root:root` (criados quando npm foi executado como root)
2. O usuário `www-data` não consegue escrever no cache
3. Como `npm install` falhou, as dependências não foram instaladas, incluindo o `vite`

---

## ✅ SOLUÇÃO IMEDIATA

### **Passo 1: Corrigir permissões do cache do npm**

```bash
# Remover cache antigo
sudo rm -rf /var/www/.npm

# Criar novo cache com permissões corretas
sudo mkdir -p /var/www/.npm
sudo chown -R www-data:www-data /var/www/.npm
sudo chmod -R 755 /var/www/.npm
```

### **Passo 2: Corrigir permissões do frontend**

```bash
cd /var/www/gestorstream/frontend

# Ajustar ownership
sudo chown -R www-data:www-data .

# Ajustar permissões
sudo chmod -R 755 .
```

### **Passo 3: Limpar e reinstalar dependências**

```bash
cd /var/www/gestorstream/frontend

# Remover node_modules e package-lock.json
sudo rm -rf node_modules package-lock.json

# Instalar dependências (agora deve funcionar)
sudo -u www-data npm install
```

### **Passo 4: Build do frontend**

```bash
# Build (agora o vite estará disponível)
sudo -u www-data npm run build

# Verificar se funcionou
ls -lh dist/index.html
```

---

## 🚀 SCRIPT AUTOMÁTICO

Execute este script para corrigir tudo automaticamente:

```bash
# 1. Corrigir permissões do cache
sudo bash fix-npm-cache-permissions.sh

# 2. Build completo
sudo bash build-frontend-correto.sh
```

---

## 📋 COMANDOS COMPLETOS (Copia e Cola)

```bash
# 1. Corrigir cache do npm
sudo rm -rf /var/www/.npm
sudo mkdir -p /var/www/.npm
sudo chown -R www-data:www-data /var/www/.npm
sudo chmod -R 755 /var/www/.npm

# 2. Corrigir permissões do frontend
cd /var/www/gestorstream/frontend
sudo chown -R www-data:www-data .
sudo chmod -R 755 .

# 3. Limpar e reinstalar
sudo rm -rf node_modules package-lock.json
sudo -u www-data npm install

# 4. Build
sudo -u www-data npm run build

# 5. Verificar
ls -lh dist/index.html
```

---

## 🔍 DIAGNÓSTICO

### **Verificar permissões do cache:**

```bash
ls -la /var/www/.npm/ | head -5
```

**Deve mostrar `www-data:www-data`**

**Se mostrar `root:root`, corrigir:**
```bash
sudo chown -R www-data:www-data /var/www/.npm
```

### **Verificar se vite está instalado:**

```bash
cd /var/www/gestorstream/frontend
ls -la node_modules/.bin/vite
```

**Se não existir, executar:**
```bash
sudo -u www-data npm install
```

---

## ⚠️ PREVENÇÃO FUTURA

### **NUNCA execute npm como root:**

```bash
# ❌ ERRADO
sudo npm install
sudo npm run build

# ✅ CORRETO
sudo -u www-data npm install
sudo -u www-data npm run build
```

### **Sempre ajuste permissões após comandos manuais:**

```bash
sudo chown -R www-data:www-data /var/www/gestorstream/frontend
sudo chown -R www-data:www-data /var/www/.npm
```

---

## 🎯 RESULTADO ESPERADO

Após executar os comandos:

1. ✅ Cache do npm com permissões corretas
2. ✅ `node_modules` instalado corretamente
3. ✅ `vite` disponível em `node_modules/.bin/vite`
4. ✅ Build executado com sucesso
5. ✅ `dist/index.html` criado

---

## 📞 SE AINDA NÃO FUNCIONAR

**Verificar logs detalhados:**

```bash
# Verificar permissões
ls -la /var/www/.npm/
ls -la /var/www/gestorstream/frontend/node_modules/.bin/vite

# Tentar instalar com logs verbosos
cd /var/www/gestorstream/frontend
sudo -u www-data npm install --loglevel=verbose

# Verificar se node_modules foi criado
ls -la node_modules/ | head -10
```

**Se ainda houver problemas, verifique:**
- Se o usuário `www-data` existe: `id www-data`
- Se há espaço em disco: `df -h`
- Se há problemas de memória: `free -h`
