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)
|
||||
|
||||
**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)
|
||||
|
|
|
|||
Loading…
Reference in a new issue