> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# squarecloud.ignore: deixe arquivos fora do deploy

> Use o squarecloud.ignore para deixar arquivos fora dos deploys pela CLI e pelo VS Code: sintaxe do .gitignore, exclusões padrão como node_modules e exemplos.

## O que é o arquivo `squarecloud.ignore`?

O arquivo `squarecloud.ignore` lista os arquivos e pastas que devem ficar de fora quando você envia ou faz commit de uma aplicação. A CLI da Square Cloud (`upload`, `commit` e `zip`) e a extensão da Square Cloud para VS Code leem o mesmo arquivo, com as mesmas regras e os mesmos padrões, então um projeto é empacotado da mesma forma pelas duas.

Ele usa a sintaxe do `.gitignore`: comentários, curingas, regras só para pastas e só para a raiz, e `!` para incluir um arquivo de volta.

## Criando o arquivo

Crie um arquivo chamado `squarecloud.ignore` na raiz do projeto.

```gitignore theme={"system"}
# Saída de testes e logs
coverage/
*.log
!keep.log
```

<Info>O arquivo deve se chamar exatamente `squarecloud.ignore`. O `.gitignore` não é lido no lugar dele: ele costuma listar arquivos que a aplicação precisa para rodar, como o `.env`.</Info>

## Sempre de fora

Estes caminhos são ignorados antes das suas próprias regras, então você não precisa listá-los:

* `node_modules`
* `.git`, `.github` e `.vscode`
* `package-lock.json`, `pnpm-lock.yaml` e `yarn.lock`

Inclua qualquer um deles de volta com uma regra `!`.

### Lockfiles

Os lockfiles ficam fora do zip por padrão, então a Square Cloud instala as suas dependências a partir das faixas de versão do `package.json`. Quando você precisar das versões exatas que o seu lockfile fixa, inclua-o de volta:

```gitignore theme={"system"}
!package-lock.json
```

## Sintaxe

Cada linha é uma regra. O arquivo ou pasta correspondente fica de fora do envio.

| Padrão | Correspondência |
| - | - |
| `file.txt` | Um arquivo ou pasta com esse nome em qualquer nível. |
| `/config.json` | `config.json` apenas na raiz do projeto. |
| `logs/` | Toda pasta chamada `logs` e seu conteúdo, mas não um arquivo chamado `logs`. |
| `*.log` | Nomes que terminam em `.log`. O `*` nunca atravessa uma `/`. |
| `?` | Exatamente um caractere, como em `file?.txt`. |
| `[abc]` | Um dos caracteres listados, como em `backup[12].zip`. |
| `**/cache/`, `logs/**`, `a/**/b` | Qualquer quantidade de pastas, inclusive nenhuma. |
| `!keep.log` | Inclui de volta um arquivo que uma regra anterior deixou de fora. |
| `# comentário` | Um comentário; não exclui nada. |
| `\#notes.txt`, `\!important`, `\*` | Uma `\` torna o próximo caractere literal. |

Como as regras são aplicadas:

* **A última linha que corresponde vence**, então coloque as regras `!` depois das regras que elas desfazem.
* **Um arquivo dentro de uma pasta ignorada não pode ser incluído de volta.** Para manter um arquivo de uma pasta, ignore o conteúdo da pasta (`logs/*`) em vez da pasta (`logs/`) e depois adicione `!logs/keep.log`.
* **A correspondência ignora maiúsculas e minúsculas**: `Dist/` também corresponde a `dist`.
* Apenas os espaços no final de uma regra são removidos, nunca os tabs. Escape um espaço final que você quer manter com `\ `.

<Note>Use `/` como separador de pastas nos padrões, inclusive no Windows.</Note>

## Exemplos comuns

Exclua ferramentas de desenvolvimento e arquivos gerados, mantendo tudo o que a aplicação precisa para rodar:

```gitignore theme={"system"}
# Ferramentas
.idea/

# Arquivos gerados
coverage/
__pycache__/
*.log

# Arquivos temporários
*.tmp
*.cache
```

<Warning>
  Não ignore um arquivo que a sua aplicação lê em tempo de execução. Se o seu código carrega segredos de um arquivo `.env` e você lista o `.env` aqui, a aplicação inicia sem eles e um bot falha com token inválido. Antes, mova esses valores para as [variáveis de ambiente](/pt-br/platform/environment-variables) da aplicação; depois disso, deixar o `.env` fora do upload é seguro.
</Warning>

## Como ele é aplicado

A CLI e a extensão do VS Code leem o `squarecloud.ignore` ao preparar os arquivos para envio ou commit. Os arquivos que correspondem a uma regra ficam de fora do zip enviado para a Square Cloud.

* Um link simbólico para um arquivo é enviado como o arquivo para o qual ele aponta. Links para pastas e links quebrados são ignorados.
* A CLI ainda lê os nomes antigos (`.squareignore`, `.squarecloudignore` e `square.ignore`) quando o `squarecloud.ignore` não existe, e pede que você renomeie o arquivo.

Mantenha fora dos caminhos ignorados os arquivos necessários em tempo de execução, como o arquivo definido em `MAIN` no seu [arquivo de configuração](/pt-br/getting-started/config-file).

O upload pelo dashboard não lê este arquivo: quando você mesmo monta o zip, deixe esses arquivos de fora dele.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.