

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Referência de especificação de compilação
<a name="yml-specification-syntax"></a>

A especificação de compilação (buildspec) de uma aplicação do Almplify é coleção de comandos de compilação e configurações do YAML que o Amplify usa para executar sua compilação. A lista a seguir descreve essas configurações e como elas são usadas.

**version**  
O número da versão YAML do Amplify.

**appRoot**  
O caminho dentro do repositório em que esse aplicativo reside em. *Ignorado, a menos que vários aplicativos sejam definidos.*

**env**  
Adicione variáveis de ambiente a essa seção. Também é possível adicionar variáveis de ambiente usando o console.

**backend**  
Execute comandos da Amplify CLI para provisionar um backend, atualizar funções do Lambda ou esquemas do GraphQL como parte da implantação contínua.

**frontend**  
Executa comandos de compilação de frontend.

**teste**  
Execute comandos durante uma fase de teste. Saiba como [adicionar testes ao seu aplicativo](running-tests.md).

**fases da compilação**  
O frontend, o backend e o teste têm três *fases* que representam os comandos executados durante cada sequência da compilação.  
+  **preBuild** – O script preBuild é executado antes que a compilação em si seja iniciada, mas depois que o Amplify instala as dependências.
+  **build (criação)** – Seus comandos de criação.
+  **postBuild** – O script pós-compilação é executado depois que a compilação tiver sido concluída e o Amplify copiou todos os artefatos necessários para o diretório de saída.

**buildpath**  
O caminho a ser usado para executar a compilação. O Amplify usa esse caminho para localizar seus artefatos de compilação. Se você não especificar um caminho, o Amplify usa a raiz do aplicativo monorepo, por exemplo `apps/app`.

**artifacts>base-directory**  
O diretório no qual os artefatos de compilação existem.

**artifacts>files**  
Especifique os arquivos dos artefatos que você deseja implantar. Digite `**/*` para incluir todos os arquivos.

**cache**  
Especifica dependências de tempo de compilação, como a pasta *node\$1modules*. Durante a primeira compilação, os caminhos fornecidos aqui são armazenados em cache. Nas compilações subsequentes, o Amplify restaura o cache nos mesmos caminhos antes de executar seus comandos.  
O Amplify considera que todos os caminhos de cache fornecidos são relativos à raiz do seu projeto. Contudo, o Amplify não permite a navegação fora da raiz do projeto. Por exemplo, se você especificar um caminho absoluto, a compilação terá êxito sem nenhum erro, mas o caminho não será armazenado em cache.

## Sintaxe de referência do YAML de especificação de compilação
<a name="build-yaml-syntax"></a>

O exemplo de especificação de compilação a seguir demonstra a sintaxe básica do YAML.

```
version: 1
env:
  variables:
    key: value
backend:
  phases:
    preBuild:
      commands:
        - *enter command*
    build:
      commands:
        - *enter command*
    postBuild:
        commands:
        - *enter command*
frontend:
  buildpath:
  phases:
    preBuild:
      commands:
        - cd react-app
        - npm ci
    build:
      commands:
        - npm run build
  artifacts:
    files:
        - location
        - location
    discard-paths: yes
    baseDirectory: location
  cache:
    paths:
        - path # A cache path relative to the project root
        - path # Traversing outside of the project root is not allowed
test:
  phases:
    preTest:
      commands:
        - *enter command*
    test:
      commands:
        - *enter command*
    postTest:
      commands:
        - *enter command*
  artifacts:
    files:
        - location
        - location
    configFilePath: *location*
    baseDirectory: *location*
```