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

# Configurazione dello sviluppo locale

> Configura il dev server di Base44 e collega il tuo frontend

Lo sviluppo locale esegue due processi affiancati: il dev server di Base44 per il tuo backend e il consueto dev server frontend per l'interfaccia utente. Il tuo frontend comunica con il backend locale tramite l'SDK.

## Prerequisiti

Se il tuo progetto ha funzioni backend, devi installare [Deno](https://docs.deno.com/runtime/getting_started/installation/) per eseguirle in locale.

## Configura il client frontend

Se il tuo progetto ha un frontend che usa l'SDK, devi indicargli dove inviare le richieste e dove reindirizzare per l'autenticazione. Per impostazione predefinita, l'SDK usa il backend ospitato da Base44. Per usare il dev server locale in sviluppo, imposta sia `serverUrl` sia `appBaseUrl` su `"http://localhost:4400"` quando chiami `createClient()`. In produzione, omettili in modo che l'SDK usi i valori predefiniti.

Scegli uno dei due pattern qui sotto. Il pattern con variabili d'ambiente è il più semplice se `base44 dev` avvia il tuo frontend tramite `site.serveCommand` e usi una build basata su Vite. Il pattern con rilevamento manuale funziona in qualsiasi configurazione.

### Pattern con variabili d'ambiente

Quando `base44 dev` avvia il tuo frontend tramite `site.serveCommand`, imposta due variabili d'ambiente Vite nel processo frontend: `VITE_BASE44_APP_ID` (l'id della tua app) e `VITE_BASE44_APP_BASE_URL` (l'URL del dev locale). Leggile durante la creazione del client, usando l'URL sia per `serverUrl` sia per `appBaseUrl`:

```javascript theme={null}
import { createClient } from "@base44/sdk";

const base44 = createClient({
  appId: import.meta.env.VITE_BASE44_APP_ID ?? "your-app-id",
  serverUrl: import.meta.env.VITE_BASE44_APP_BASE_URL,
  appBaseUrl: import.meta.env.VITE_BASE44_APP_BASE_URL,
});
```

L'opzione `serverUrl` è dove l'SDK invia le richieste API. L'opzione `appBaseUrl` è dove reindirizza per i flussi di autenticazione come il login. Nello sviluppo locale, entrambi puntano al tuo dev server locale.

Nelle build di produzione, le variabili d'ambiente sono indefinite ed entrambe le opzioni ricadono sui valori predefiniti dell'SDK.

<Note>
  Le app create tramite l'[integrazione GitHub](/developers/app-code/local-development/github) di Base44 usano `@base44/vite-plugin`, che imposta `serverUrl` e `appBaseUrl` automaticamente. Questa configurazione manuale è necessaria solo per progetti che non eseguono il plugin.
</Note>

### Pattern con rilevamento manuale

Usa questo pattern se avvii il tuo frontend in un terminale separato o se il tuo build tool non è Vite. Rileva se il codice è in esecuzione in sviluppo, quindi imposta `serverUrl` in modo condizionale.

<Steps>
  <Step title="Rileva la modalità di sviluppo">
    Usa il pattern che corrisponde al tuo ambiente:

    <CodeGroup>
      ```javascript Vite theme={null}
      const isDev = import.meta.env.DEV;
      ```

      ```javascript Node.js, Webpack, Next.js theme={null}
      const isDev = process.env.NODE_ENV !== "production";
      ```

      ```javascript React Native theme={null}
      const isDev = __DEV__;
      ```

      ```javascript Deno theme={null}
      const isDev = Deno.env.get("DENO_ENV") !== "production";
      ```
    </CodeGroup>
  </Step>

  <Step title="Passa serverUrl in modo condizionale">
    Quando crei il client, includi `serverUrl` solo in sviluppo:

    ```javascript theme={null}
    import { createClient } from "@base44/sdk";

    const base44 = createClient({
      appId: "your-app-id",
      ...(isDev && {
        serverUrl: "http://localhost:4400",
        appBaseUrl: "http://localhost:4400",
      }),
    });
    ```

    * In sviluppo, `isDev` è `true` e sia `serverUrl` sia `appBaseUrl` puntano a `localhost:4400`
    * Nelle build di produzione, `isDev` è `false`, entrambe le opzioni vengono omesse e l'SDK usa i valori predefiniti
  </Step>
</Steps>

## Eseguire i dev server

Il modo in cui avvii l'ambiente di sviluppo dipende dal fatto che il tuo progetto definisca o meno `site.serveCommand` in `base44/config.jsonc`.

### Con `site.serveCommand` (consigliato)

Esegui [`dev`](/developers/references/cli/commands/dev) dalla directory del tuo progetto:

```bash theme={null}
base44 dev
```

Questo avvia il backend locale su `http://localhost:4400`, quindi genera il tuo dev server frontend usando `site.serveCommand`. La CLI inserisce `VITE_BASE44_APP_ID` e `VITE_BASE44_APP_BASE_URL` nell'ambiente del frontend, che il pattern di configurazione client con variabili d'ambiente qui sopra legge per puntare l'SDK al backend locale. L'output di entrambi i processi viene trasmesso allo stesso terminale, con i prefissi `[backend]` e `[frontend]`, e un singolo Ctrl-C li arresta entrambi.

### Senza `site.serveCommand`

Se `site.serveCommand` non è impostato, esegui i due processi in terminali separati.

<Steps>
  <Step title="Avvia il backend">
    In un terminale, esegui [`dev`](/developers/references/cli/commands/dev) dalla directory del tuo progetto:

    ```bash theme={null}
    base44 dev
    ```

    Questo avvia il backend locale su `http://localhost:4400`.
  </Step>

  <Step title="Avvia il frontend">
    In un secondo terminale, avvia il tuo dev server frontend come faresti normalmente. Ad esempio, con Vite:

    ```bash theme={null}
    npm run dev
    ```

    Tutte le chiamate SDK dal tuo frontend ora vanno al dev server Base44 locale.
  </Step>
</Steps>

## Vedi anche

* [Panoramica dello sviluppo locale](/developers/backend/overview/local-dev/local-development-overview): cosa viene eseguito in locale, cosa viene inoltrato e come funziona
* [`dev`](/developers/references/cli/commands/dev): riferimento del comando CLI con i flag
* [`serverUrl`](/developers/references/sdk/docs/functions/createClient): configurazione del client SDK

<Note>Questa pagina è stata tradotta utilizzando l'IA. Per informazioni più accurate e aggiornate, consulta la [versione inglese](/). </Note>
