docs: corrige configuração do Deno Deploy
- Atualiza landing/README.md com configuração correta do Deno Deploy - Adiciona DENO_DEPLOY_FIX.md com troubleshooting detalhado - Explica que 'deno install' não existe e deve ser removido - Documenta valores corretos: Install command (vazio), Build Directory (landing) - Adiciona tabela comparativa Deno vs npm/yarn - Inclui workflow GitHub Actions opcional para CI/CD - Corrige erro: 'Executing install command - build failed'
This commit is contained in:
parent
e6d5bef07a
commit
92509d5155
2 changed files with 187 additions and 11 deletions
102
landing/DENO_DEPLOY_FIX.md
Normal file
102
landing/DENO_DEPLOY_FIX.md
Normal file
|
|
@ -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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**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)
|
||||||
|
|
@ -209,19 +209,93 @@ deno fmt
|
||||||
|
|
||||||
### Deno Deploy (Recomendado)
|
### Deno Deploy (Recomendado)
|
||||||
|
|
||||||
**Via GitHub (automático)**:
|
**⚠️ IMPORTANTE - Configuração Correta:**
|
||||||
|
|
||||||
|
No painel do Deno Deploy, configure:
|
||||||
|
|
||||||
|
| 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
|
1. Push para GitHub
|
||||||
2. Conecte repo em https://dash.deno.com
|
2. Conecte repo em https://dash.deno.com
|
||||||
3. Fresh é detectado automaticamente
|
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
|
4. Deploy feito em cada push
|
||||||
|
```
|
||||||
|
|
||||||
**Via CLI**:
|
2. **Via CLI**:
|
||||||
```bash
|
```bash
|
||||||
# Instalar CLI
|
# Instalar CLI
|
||||||
deno install -Arf https://deno.land/x/deploy/deployctl.ts
|
deno install -Arf --global https://deno.land/x/deploy/deployctl.ts
|
||||||
|
|
||||||
# Deploy
|
# Deploy direto
|
||||||
deployctl deploy --project=seu-projeto dev.ts
|
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)
|
### Docker (Self-Hosted)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue