# Javascript

## 📁 **Preparando os Arquivos**

Antes de fazer upload do seu projeto, você deve **excluir arquivos desnecessários** para otimizar o deploy.

#### ❌ **Arquivos a Excluir**

Certifique-se de que os seguintes arquivos e diretórios **não** sejam incluídos no seu [`.zip`](https://docs.discloud.com/faq/general-questions/em-andamento-como-comprimir):

```diff
- package-lock.json
- node_modules/
- .cache/
- .git/
```

📌 **Use um arquivo** [**`.discloudignore`**](https://docs.discloud.com/configurations/.discloudignore) **para excluir automaticamente esses arquivos.**

🔗 **Precisa de ajuda para configurar seu** [**`package.json`**](https://docs.discloud.com/development-environment/supported-languages/javascript/package-json) **ou encontrar o** [**arquivo principal**](https://docs.discloud.com/faq/general-questions/what-is-the-main-file)**?**

<details>

<summary>📦 Sobre a pasta dist (apenas TYPE=site)</summary>

{% hint style="info" %}
Para apps `TYPE=site`, **`dist/` é reservada** para a saída do `BUILD`. Se você define `BUILD=...` no [`discloud.config`](https://github.com/discloud/docs/blob/portuguese/configurations/discloud.config), nós geramos a pasta `dist/` pra você. **Não compacte `dist/`** ou envie arquivos para lá.
{% endhint %}

**⚙️ Build automático**

1. `BUILD` no `discloud.config` (ex.: `BUILD=npm run build`).
2. Script gera arquivos em `dist/` (Vite, Vue, etc. já fazem isso).
3. Rodamos `BUILD` antes do `START` e servimos `dist/`.

Exemplo:

```properties
TYPE=site
MAIN=server/index.js
BUILD=npm run build
START=npm run start
RAM=512
VERSION=latest
ID=meusite
```

**👜 Pré-build**

1. Gere a saída em **`build/`** (não use `dist/`).
2. Omitir `BUILD` no `discloud.config`.
3. Aponte `MAIN` para a pasta `build/`.

Exemplo:

```properties
TYPE=site
MAIN=build/server.js
RAM=512
VERSION=latest
ID=meusite
```

</details>

***

### 🌐 **Hospedando Websites e APIs com Express**

Antes de fazer deploy do seu website ou API na Discloud, certifique-se de que você atenda aos seguintes **requisitos**:

{% hint style="success" %}
[Plano Platinum ou superior](https://discloud.com/plans) é necessário para hospedar websites ou APIs.
{% endhint %}

{% hint style="success" %}
[Um subdomínio deve ser criado](https://docs.discloud.com/faq/general-questions/how-to-create-a-subdomain) antes do deploy.
{% endhint %}

{% hint style="danger" %}
Porta `8080` é obrigatória – As aplicações devem escutar nesta porta.
{% endhint %}

### ⚙️ **Configurando Express**

```javascript
const express = require("express");
const app = express();

app.get("/", (req, res) => {
  res.send("Olá, Discloud!");
});

const PORT = process.env.PORT || 8080;
app.listen(PORT, () => console.log(`Servidor rodando na porta ${PORT}`));
```

***

## ✍️ Fazendo Deploy **da Sua Aplicação**

Uma vez que seu projeto esteja **configurado e comprimido**, você pode escolher um dos seguintes **métodos de deploy** na Discloud:

<table data-card-size="large" data-view="cards"><thead><tr><th data-card-target data-type="content-ref"></th><th align="center"></th><th data-hidden></th><th data-hidden></th><th data-hidden></th></tr></thead><tbody><tr><td><a href="../../how-to-host-using/dashboard">dashboard</a></td><td align="center">Faça upload e gerencie sua aplicação via interface web.</td><td></td><td></td><td></td></tr><tr><td><a href="../../how-to-host-using/discord-bot">discord-bot</a></td><td align="center">Faça deploy diretamente através dos comandos do bot Discord da Discloud.</td><td></td><td></td><td></td></tr><tr><td><a href="../../how-to-host-using/visual-studio-code">visual-studio-code</a></td><td align="center">Integre com VS Code para gerenciamento contínuo de projetos.</td><td></td><td></td><td></td></tr><tr><td><a href="../../how-to-host-using/cli">cli</a></td><td align="center">Use a interface de linha de comando para deploy rápido e eficiente.</td><td></td><td></td><td></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.discloud.com/development-environment/supported-languages/javascript.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
