

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Modifica delle specifiche di compilazione
<a name="edit-build-settings"></a>

Puoi personalizzare le impostazioni di build di un'applicazione modificando le specifiche di build (buildspec) nella console Amplify. Le impostazioni di build vengono applicate a tutti i rami dell'app, ad eccezione dei rami che hanno un `amplify.yml` file salvato nel repository Git.

**Per modificare le impostazioni di build nella console Amplify**

1. Accedi Console di gestione AWS e apri la console [Amplify.](https://console.aws.amazon.com/amplify/)

1. Scegli l'app per cui desideri modificare le impostazioni di build.

1. Nel pannello di navigazione, scegli **Hosting**, quindi scegli **Crea impostazioni**.

1. Nella pagina **delle impostazioni di build**, nella sezione **Specifiche di build dell'app**, scegli **Modifica**.

1. Nella finestra **Modifica le specifiche di build**, inserisci gli aggiornamenti.

1. Scegli **Save** (Salva).

Puoi utilizzare gli esempi descritti nei seguenti argomenti per aggiornare le impostazioni di build per scenari specifici.

**Topics**
+ [Impostazione delle impostazioni di build specifiche del ramo con script](#branch-specific-build-settings)
+ [Impostazione di un comando per accedere a una sottocartella](#navigating-to-a-subfolder)
+ [Implementazione del backend con il front-end per un'app di prima generazione](#frontend-with-backend)
+ [Impostazione della cartella di output](#setting-the-output-folder)
+ [Installazione di pacchetti come parte di una build](#installing-packages-as-part-of-your-build)
+ [Utilizzo di un registro npm privato](#using-a-private-npm-registry)
+ [Installazione di pacchetti del sistema operativo](#installing-os-packages)
+ [Impostazione dell'archiviazione chiave-valore per ogni build](#key-value-storage-for-every-build)
+ [Saltare la build per un commit](#skip-build-for-a-commit)
+ [Disattivazione delle build automatiche su ogni commit](#disable-automatic-builds)
+ [Configurazione della compilazione e della distribuzione del frontend basato su diff](#enable-diff-deploy)
+ [Configurazione di build di backend basate su diff per un'app di prima generazione](#enable-diff-backend)

## Impostazione delle impostazioni di build specifiche del ramo con script
<a name="branch-specific-build-settings"></a>

Puoi utilizzare lo scripting della shell Bash per specificare le impostazioni di compilazione specifiche per il ramo. *Ad esempio, lo script seguente utilizza la variabile di ambiente di sistema *\$1 AWS\$1BRANCH* per eseguire un set di comandi se il nome del ramo è *main* e un set diverso di comandi se il nome del ramo è dev.*

```
frontend:
  phases:
    build:
      commands:
        - if [ "${AWS_BRANCH}" = "main" ]; then echo "main branch"; fi
        - if [ "${AWS_BRANCH}" = "dev" ]; then echo "dev branch"; fi
```

## Impostazione di un comando per accedere a una sottocartella
<a name="navigating-to-a-subfolder"></a>

Per monorepos, gli utenti vogliono poter `cd` accedere a una cartella per eseguire la build. Dopo aver eseguito il `cd` comando, questo si applica a tutte le fasi della build, quindi non è necessario ripetere il comando in fasi separate.

```
version: 1
env:
  variables:
    key: value
frontend:
  phases:
    preBuild:
      commands:
        - cd react-app
        - npm ci
    build:
      commands:
        - npm run build
```

## Implementazione del backend con il front-end per un'app di prima generazione
<a name="frontend-with-backend"></a>

**Nota**  
Questa sezione si applica solo alle applicazioni Amplify Gen 1. Un backend di prima generazione viene creato utilizzando Amplify Studio e l'interfaccia a riga di comando (CLI) Amplify.

Il `amplifyPush` comando è uno script di supporto che ti aiuta con le implementazioni di backend. Le impostazioni di compilazione riportate di seguito determinano automaticamente l'ambiente back-end corretto da distribuire per il ramo corrente.

```
version: 1
env:
  variables:
    key: value
backend:
  phases:
    build:
      commands:
        - amplifyPush --simple
```

## Impostazione della cartella di output
<a name="setting-the-output-folder"></a>

Le seguenti impostazioni di compilazione impostano la directory di output per la cartella pubblica.

```
frontend:
  phases:
    commands:
      build:
        - yarn run build
  artifacts:
    baseDirectory: public
```

## Installazione di pacchetti come parte di una build
<a name="installing-packages-as-part-of-your-build"></a>

È possibile utilizzare i `yarn` comandi `npm` o per installare i pacchetti durante la compilazione.

```
frontend:
  phases:
    build:
      commands:
        - npm install -g <package>
        - <package> deploy
        - yarn run build
  artifacts:
    baseDirectory: public
```

## Utilizzo di un registro npm privato
<a name="using-a-private-npm-registry"></a>

Si possono aggiungere riferimenti a un registro privato nelle impostazioni di compilazione oppure come variabile d'ambiente.

```
build:
  phases:
    preBuild:
      commands:
        - npm config set <key> <value>
        - npm config set registry https://registry.npmjs.org
        - npm config set always-auth true
        - npm config set email hello@amplifyapp.com
        - yarn install
```

## Installazione di pacchetti del sistema operativo
<a name="installing-os-packages"></a>

 AL2023 L'immagine di Amplify esegue il codice con un utente non privilegiato denominato. `amplify` Amplify concede a questo utente i privilegi per eseguire i comandi del sistema operativo utilizzando il comando Linux. `sudo` Se desideri installare pacchetti del sistema operativo per le dipendenze mancanti, puoi usare comandi come e with. `yum` `rpm` `sudo`

La sezione build di esempio seguente mostra la sintassi per l'installazione di un pacchetto del sistema operativo utilizzando il comando. `sudo`

```
build:
  phases:
    preBuild:
      commands:
        - sudo yum install -y <package>
```

## Impostazione dell'archiviazione chiave-valore per ogni build
<a name="key-value-storage-for-every-build"></a>

`envCache`Fornisce l'archiviazione dei valori chiave in fase di compilazione. I valori memorizzati in `envCache` possono essere modificati solo durante una build e possono essere riutilizzati nella build successiva. Utilizzando`envCache`, possiamo archiviare informazioni sull'ambiente distribuito e renderle disponibili al contenitore di build nelle build successive. A differenza dei valori memorizzati in`envCache`, le modifiche alle variabili di ambiente durante una build non vengono mantenute nelle build future.

Esempio di utilizzo:

```
envCache --set <key> <value>
envCache --get <key>
```

## Saltare la build per un commit
<a name="skip-build-for-a-commit"></a>

Per saltare una compilazione automatica su un particolare commit, includi il testo **[skip-cd]** alla fine del messaggio di commit.

## Disattivazione delle build automatiche su ogni commit
<a name="disable-automatic-builds"></a>

Puoi configurare Amplify per disattivare le build automatiche su ogni commit di codice. Per effettuare la configurazione, scegli **Impostazioni app, Impostazioni** **Branch**, quindi individua la sezione Branches che elenca **i rami** collegati. Seleziona un ramo, quindi scegli **Azioni**, **Disabilita la creazione automatica**. I nuovi commit verso quel ramo non daranno più inizio a una nuova build.

## Configurazione della compilazione e della distribuzione del frontend basato su diff
<a name="enable-diff-deploy"></a>

Puoi configurare Amplify per utilizzare build di frontend basate su diff. Se abilitato, all'inizio di ogni build Amplify tenta di eseguire un diff sulla `appRoot` tua cartella o `/src/` sulla cartella per impostazione predefinita. Se Amplify non rileva alcuna differenza, salta i passaggi di compilazione, test (se configurato) e distribuzione del frontend e non aggiorna l'app ospitata.

**Per configurare un frontend basato su diff, compila e distribuisci**

1. Accedi Console di gestione AWS e apri la console [Amplify.](https://console.aws.amazon.com/amplify/)

1. Scegli l'app per cui configurare la creazione e la distribuzione del frontend basato su diff.

1. Nel pannello di navigazione, scegli **Hosting, Variabili di** **ambiente.**

1. Nella sezione **Variabili di ambiente**, scegli **Gestisci variabili**.

1. La procedura per configurare la variabile di ambiente varia a seconda che stiate abilitando o disabilitando la creazione e la distribuzione del frontend basato su diff.
   + Per abilitare la creazione e la distribuzione di frontend basati su differenze

     1. Nella sezione **Gestisci variabili**, sotto **Variabile, inserisci**. `AMPLIFY_DIFF_DEPLOY`

     1. In **Valore**, specifica `true`.
   + Per disabilitare la creazione e la distribuzione del frontend basato su diff

     1. Esegui una delle seguenti operazioni:
       + Nella sezione **Gestisci le variabili**, individua. `AMPLIFY_DIFF_DEPLOY` In **Valore**, specifica `false`.
       + Rimuovi la variabile di `AMPLIFY_DIFF_DEPLOY` ambiente.

1. Scegli **Save** (Salva).

Facoltativamente, puoi impostare la variabile di `AMPLIFY_DIFF_DEPLOY_ROOT` ambiente per sovrascrivere il percorso predefinito con un percorso relativo alla radice del repository, ad esempio. `dist`

## Configurazione di build di backend basate su diff per un'app di prima generazione
<a name="enable-diff-backend"></a>

**Nota**  
Questa sezione si applica solo alle applicazioni Amplify Gen 1. Un backend di prima generazione viene creato utilizzando Amplify Studio e l'interfaccia a riga di comando (CLI) Amplify.

Puoi configurare Amplify Hosting per utilizzare build di backend basate su diff utilizzando la variabile di ambiente. `AMPLIFY_DIFF_BACKEND` Quando abiliti le build di backend basate su diff, all'inizio di ogni build Amplify tenta di eseguire un diff nella cartella del tuo repository. `amplify` Se Amplify non rileva alcuna differenza, salta la fase di creazione del backend e non aggiorna le risorse del backend. Se il progetto non ha una `amplify` cartella nel repository, Amplify ignora il valore della variabile di ambiente. `AMPLIFY_DIFF_BACKEND`

Se al momento hai dei comandi personalizzati specificati nelle impostazioni di compilazione della fase di backend, le build condizionali di backend non funzioneranno. Se desideri che questi comandi personalizzati vengano eseguiti, devi spostarli nella fase di frontend delle impostazioni di build nel file dell'app. `amplify.yml`

**Per configurare build di backend basate su diff**

1. Accedi Console di gestione AWS e apri la console [Amplify.](https://console.aws.amazon.com/amplify/)

1. Scegli l'app per cui configurare le build di backend basate su diff.

1. Nel pannello di navigazione, scegli **Hosting, Variabili di** **ambiente.**

1. Nella sezione **Variabili di ambiente**, scegli **Gestisci variabili**.

1. La procedura per configurare la variabile di ambiente varia a seconda che si stiano abilitando o disabilitando le build di backend basate su diff.
   + Per abilitare le build di backend basate su diff

     1. Nella sezione **Gestisci variabili**, sotto **Variabile, inserisci**. `AMPLIFY_DIFF_BACKEND`

     1. In **Valore**, specifica `true`.
   + Per disabilitare le build di backend basate su diff

     1. Esegui una delle seguenti operazioni:
       + Nella sezione **Gestisci le variabili**, individua. `AMPLIFY_DIFF_BACKEND` In **Valore**, specifica `false`.
       + Rimuovi la variabile di `AMPLIFY_DIFF_BACKEND` ambiente.

1. Scegli **Save** (Salva).