Riferimento dev.nix

Questa pagina include i dettagli sullo schema per il file di configurazione dell'ambiente Workspace, che deve trovarsi sempre all'indirizzo .idx/dev.nix.

Per saperne di più sulla lingua Nix, guarda il tutorial ufficiale sul linguaggio Nix.

pacchi

Pacchetti da installare nell'ambiente.

Puoi utilizzare l'argomento pkgs per selezionare i pacchetti da installare, ad esempio pkgs.python3. Tieni presente che i contenuti di pkgs dipendono dall'opzione del canale channel selezionata.

Esempio:

{pkgs, ...}: {
  channel = "stable-23.11";
  packages = [pkgs.vim];
}

Puoi cercare i pacchetti disponibili qui: stable-23.11 o unstable.

Tipo:elenco del pacchetto.

Predefinita: [ ]

canale

nixpkgs da usare.

Questo canale definisce i contenuti dell'argomento pkgs.

Tipo: uno tra "stable-23.05", "stable-23.11", "unstable"

Predefinita: "stable-23.11"

env

Variabili di ambiente impostate nell'ambiente di sviluppo.

Queste informazioni vengono propagate a tutte le tue shell e al server di anteprima. Le variabili di ambiente possono essere particolarmente utili se la tua applicazione richiede un insieme specifico di variabili.

Esempio:

{pkgs, ...}: {
  env = {
    HELLO = "world";
  };
}

Tipo: insieme di attributi di qualsiasi cosa

Predefinita: { }

idx.extensions

Estensioni di codice che vuoi installare nell'area di lavoro IDX.

Questo è un elenco di ID estensione completi, ad esempio ${publisherId}.${extensionId}.

Puoi trovare un elenco delle estensioni disponibili in Open VSX Registry e inserirle nel file dev.nix tramite ${publisherId}.${extensionId}.

Tipo: elenco di (stringa o percorso non vuoto)

Predefinita: [ ]

idx.previews.enable

Imposta questo elemento su true per attivare le anteprime IDX.

Questa funzionalità consente di eseguire e ricaricare automaticamente le app durante lo sviluppo.

Tipo: booleano

Predefinita: true

Esempio: true

idx.previews.previews

Anteprima delle configurazioni.

Definisci i comandi che IDX esegue nel tuo ambiente di sviluppo.

Esempio:

{pkgs, ...}: {
  idx.previews = {
    enable = true;
    previews = {
      web = {
        command = ["yes"];
        cwd = "subfolder";
        manager = "web";
        env = {
          HELLO = "world";
        };
      };
    };
  };
}

Tipo: insieme di attributi di (sottomodulo)

Predefinita: { }

idx.previews.previews.<name>.command

Comando da eseguire

Tipo:elenco di stringhe.

Predefinita: [ ]

idx.previews.previews.<name>.cwd

Directory di lavoro

Tipo:stringa

Predefinita: ""

idx.previews.previews.<name>.env

Variabili di ambiente da impostare.

Tipo: set di attributi della stringa

Predefinita: { }

idx.previews.previews.<name>.manager

Gestore

Tipo:uno tra "web", "flutter"

idx.workspace.onCreate

Comandi da eseguire quando l'area di lavoro viene creata e aperta per la prima volta.

Questo può essere utile per configurare l'ambiente di sviluppo. Ad esempio, qui specifichiamo npm install da eseguire:

{pkgs, ...}: {
  idx.workspace.onCreate = {
    npm-install = "npm install";
  };
}

Tipo: insieme di attributi di (percorso o stringa)

Predefinita: { }

idx.workspace.onStart

Comandi da eseguire ogni volta che l'area di lavoro viene aperta.

Questo può essere utile per iniziare a creare watcher. Ad esempio, qui specifichiamo 2 comandi da eseguire:

{pkgs, ...}: {
  idx.workspace.onStart = {
    npm-watch-fe = "npm run watch:frontend";
    npm-watch-be = "npm run watch:backend";
  };
}

Tipo: insieme di attributi di (percorso o stringa)

Predefinita: { }

services.docker.enable

Indica se abilitare il docker senza root.

Tipo: booleano

Predefinita: false

Esempio: true

services.mysql.enable

Indica se abilitare il server MySQL.

Il server è inizializzato con una radice utente senza password. Quindi, per creare utenti aggiuntivi e creare database, utilizza mysql -u root. .

Tipo: booleano

Predefinita: false

Esempio: true

services.mysql.package

pacchetto MySQL da utilizzare.

Tipo:pacchetto

Predefinita: pkgs.mysql

Esempio: pkgs.mysql80

services.postgres.enable

Indica se abilitare il server PostgreSQL.

Tipo: booleano

Predefinita: false

Esempio: true

services.postgres.package

pacchetto PostgreSQL da utilizzare.

Tipo:pacchetto

Predefinita: pkgs.postgresql

Esempio: pkgs.postgresql_15

services.postgres.extensions

Estensioni Postgres da installare.

Type: list of (one of "age", "apache_datasketches", "cstore_fdw", "hypopg", "jsonb_deep_sum", "periods", "pg_auto_failover", "ppmg_bigmgraphicm",

Predefinita: [ ]

Esempio: [ "pgvector" "postgis" ];

services.pubsub.enable

Indica se abilitare l'emulatore Google Pub/Sub.

Ulteriori informazioni sull'uso dell'emulatore sono disponibili qui: https://cloud.google.com/pubsub/docs/emulator#using_the_emulator .

Tipo: booleano

Predefinita: false

Esempio: true

services.pubsub.port

Configura la porta su cui Pub/Sub attenderà.

Tipo: numero intero senza segno a 16 bit; compreso tra 0 e 65535 (entrambi inclusi)

Predefinita: 8085

services.pubsub.id-progetto

ID progetto da utilizzare per eseguire l'emulatore Pub/Sub. Questo progetto è solo a scopo di test, non deve esistere e viene usato solo localmente.

Tipo: stringa corrispondente al motivo [a-z][a-z0-9-]{5,29}

Predefinita: "idx-pubsub-emulator"

services.redis.enable

Indica se abilitare il server Redis.

Tipo: booleano

Predefinita: false

Esempio: true

services.redis.port

Configura la porta su cui Redis dovrà rimanere in ascolto.

Per impostazione predefinita, tcp è disattivato e Redis ascolta solo su /tmp/redis/redis.sock.

Tipo: numero intero senza segno a 16 bit; compreso tra 0 e 65535 (entrambi inclusi)

Predefinita: 0

services.spanner.enable

Indica se abilitare l'emulatore di Google Cloud Spanner.

Tipo: booleano

Predefinita: false

Esempio: true

services.spanner.fault-injection

Indica se abilitare l'inserimento di errore casuale nelle transazioni.

Tipo: booleano

Predefinita: false

Esempio: true

services.spanner.grpc-port

La porta TCP a cui deve essere associato l'emulatore.

Tipo: numero intero senza segno a 16 bit; compreso tra 0 e 65535 (entrambi inclusi)

Predefinita: 9010

services.spanner.rest-port

La porta su cui vengono gestite le richieste REST

Tipo: numero intero senza segno a 16 bit; compreso tra 0 e 65535 (entrambi inclusi)

Predefinita: 9020