diff --git a/landing/DENO_DEPLOY_FIX.md b/landing/DENO_DEPLOY_FIX.md new file mode 100644 index 0000000..3ddefaa --- /dev/null +++ b/landing/DENO_DEPLOY_FIX.md @@ -0,0 +1,102 @@ +# ⚠️ Erro Comum - Deno Deploy + +## Problema + +``` +❌ Executing install command + Your build has failed to complete this step. +``` + +## Causa + +O campo **Install command** está configurado com `deno install`, mas **esse comando não existe no Deno**! + +## ✅ Solução + +No painel do Deno Deploy (https://dash.deno.com): + +1. Vá em **Settings** → **App Configuration** +2. Localize **Install command** +3. **APAGUE** o conteúdo (deixe vazio) +4. OU coloque: `deno cache main.ts` (opcional) + +### Configuração Correta + +![image](uploaded_image_1_1765494346049.png) + +**Valores que devem estar configurados:** + +``` +Build Directory: landing +Install command: (vazio ou "deno cache main.ts") +Build command: deno task build +Pre-deploy command: (vazio) +Entrypoint: main.ts +``` + +### Por Que Isso Acontece? + +O Deno **não precisa** de `npm install` ou `yarn install`. Ele gerencia dependências automaticamente através do arquivo `deno.json` usando **import maps**. + +Quando você faz o primeiro `deno run` ou `deno task build`, o Deno: +1. Lê os imports em `deno.json` +2. Baixa as dependências automaticamente +3. Cacheia para uso futuro + +### Comandos Deno vs npm/yarn + +| npm/yarn | Deno | +|----------|------| +| `npm install` | ❌ Não existe | +| `npm run build` | `deno task build` | +| `npm start` | `deno task start` | +| `package.json` | `deno.json` | +| `node_modules/` | Cache global do Deno | + +### Troubleshooting + +**Se ainda der erro** após limpar o Install command: + +1. **Verifique o Build Directory**: + - Deve ser `landing` (sem `\`) + - ❌ Errado: `\landing` + - ✅ Certo: `landing` + +2. **Verifique o Entrypoint**: + - Para produção: `main.ts` + - Para dev: `dev.ts` + +3. **Limpe o cache do Deno Deploy**: + ```bash + # Na sua máquina + cd landing + rm -rf _fresh/ + deno task build + git add . + git commit -m "rebuild fresh assets" + git push + ``` + +4. **Redesploy manual**: + - Settings → Deployments → Redeploy latest + +### Logs de Sucesso + +Quando configurado corretamente, você deve ver: + +``` +✅ Cloning repository... +✅ Build directory: landing +✅ Running: deno task build + Task build deno run -A dev.ts build + The manifest has been generated for 5 routes and 2 islands. + Assets written to: _fresh/ +✅ Deploying... +✅ Deployment successful! +``` + +## Mais Informações + +- [Deno Deploy Docs](https://deno.com/deploy/docs) +- [Fresh Deploy Guide](https://fresh.deno.dev/docs/concepts/deployment) +- [Deno Task Runner](https://deno.land/manual/tools/task_runner) diff --git a/landing/README.md b/landing/README.md index af83214..eba58d8 100644 --- a/landing/README.md +++ b/landing/README.md @@ -209,19 +209,93 @@ deno fmt ### Deno Deploy (Recomendado) -**Via GitHub (automático)**: -1. Push para GitHub -2. Conecte repo em https://dash.deno.com -3. Fresh é detectado automaticamente -4. Deploy feito em cada push +**⚠️ IMPORTANTE - Configuração Correta:** -**Via CLI**: -```bash -# Instalar CLI -deno install -Arf https://deno.land/x/deploy/deployctl.ts +No painel do Deno Deploy, configure: -# Deploy -deployctl deploy --project=seu-projeto dev.ts +| Campo | Valor Correto | ❌ Valor Incorreto | +|-------|---------------|-------------------| +| **Build Directory** | `landing` | `\landing` | +| **Install command** | *(deixe vazio)* | ~~`deno install`~~ | +| **Build command** | `deno task build` | ✅ | +| **Entrypoint** | `main.ts` | ✅ | + +**Por que deixar Install command vazio?** + +O Deno **não precisa** de comando install! Ele baixa dependências automaticamente via `deno.json` (import maps). O comando `deno install` não existe e causa erro: + +``` +❌ Executing install command + deno install + Error: Command not found +``` + +**Configuração Detalhada:** + +1. **Via GitHub (automático)**: + ``` + 1. Push para GitHub + 2. Conecte repo em https://dash.deno.com + 3. Configure: + - Framework: Fresh + - Build Directory: landing + - Install command: (DEIXE VAZIO!) + - Build command: deno task build + - Root Directory: / (se o repo inteiro) + 4. Deploy feito em cada push + ``` + +2. **Via CLI**: + ```bash + # Instalar CLI + deno install -Arf --global https://deno.land/x/deploy/deployctl.ts + + # Deploy direto + cd landing + deployctl deploy --project=seu-projeto main.ts + ``` + +**Arquivo de configuração (opcional)**: + +Crie `landing/.github/workflows/deploy.yml`: + +```yaml +name: Deploy to Deno Deploy + +on: + push: + branches: [main] + paths: + - 'landing/**' + +jobs: + deploy: + name: Deploy + runs-on: ubuntu-latest + permissions: + id-token: write + contents: read + + steps: + - name: Clone repository + uses: actions/checkout@v4 + + - name: Setup Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.x + + - name: Build + run: | + cd landing + deno task build + + - name: Deploy to Deno Deploy + uses: denoland/deployctl@v1 + with: + project: seu-projeto + entrypoint: landing/main.ts + root: landing ``` ### Docker (Self-Hosted)