Riferimento dev.nix

Questa pagina include i dettagli sullo schema per l'ambiente dell'area di lavoro di configurazione del deployment, che deve sempre trovarsi all'indirizzo .idx/dev.nix.

Per saperne di più sulla lingua Nix, consulta il linguaggio ufficiale Nix di Google Cloud.

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'elemento selezionato Opzione channel per il canale.

Esempio:

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

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

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", "stable-24.05", "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. Ambiente possono essere particolarmente utili se la tua applicazione richiede un insieme specifico di variabili.

Il valore di ogni variabile può essere una stringa o un elenco di stringhe. La Quest'ultimo è concatenato, è interrotto da due punti.

PATH deve essere un elenco, in quanto viene sempre esteso e non viene mai sostituito completamente.

Esempio:

{pkgs, ...}: {
  env = {
    HELLO = "world";
    # append an entry to PATH
    PATH = ["/some/path/bin"];
  };
}

Tipo: set di attributi ((elenco di stringhe) o qualsiasi altro elemento)

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 nella Apri VSX Registry e inseriscile nel tuo file dev.nix entro il giorno ${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à ti consente di eseguire e ricaricare le app automaticamente mentre ti trovi svilupparle.

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>.activity

Attività di lancio su Android

Tipo:stringa

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", "android", "gradle"

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 specifica npm install da eseguire:

{pkgs, ...}: {
  idx.workspace.onCreate = {
    npm-install = "npm install";
    # files to open when the workspace is first opened.
    default.openFiles = [ "src/index.ts" ];
  };
}

Tipo: insieme di attributi di (percorso o stringa o ({ openFiles = [ string ];}))

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 Ci sono due comandi da eseguire:

{pkgs, ...}: {
  idx.workspace.onStart = {
    npm-watch-fe = "npm run watch:frontend";
    npm-watch-be = "npm run watch:backend";
    # files to open when the workspace is (re)opened.
    default.openFiles = [ "src/index.ts" ];
  };
}

Tipo: insieme di attributi di (percorso o stringa o ({ openFiles = [ string ];}))

Predefinita: { }

services.docker.enable

Indica se abilitare il docker senza root.

Tipo: booleano

Predefinita: false

Esempio: true

services.mongodb.enable

Indica se abilitare il server MongoDB.

Tipo: booleano

Predefinita: false

Esempio: true

services.mongodb.package

pacchetto MongoDB da utilizzare.

Tipo:pacchetto

Predefinita: <derivation mongodb-6.0.11>

services.mongodb.port

Configura la porta su cui Mongod rimarrà in ascolto.

Per impostazione predefinita, tcp è disattivato e Mongod ascolta solo su /tmp/mongodb/mongodb.sock. Per eseguire la connessione, utilizza la stringa di connessione "mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock"

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

Predefinita: 0

services.mysql.enable

Indica se abilitare il server MySQL.

Il server è inizializzato con una radice utente senza password. Quindi, per creare altre gli utenti e creare database usano 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.enableTcp

Indica se abilitare Postgres per l'ascolto su TCP.

Tipo: booleano

Predefinita: true

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.

Tipo: elenco di (uno di "age", "apache_datasketches", "cstore_fdw", "hypopg", "jsonb_deep_sum", "periods", "pg_auto_failover", "pg_bigm", "pg_cron", "pg_ed25519", "pg_embedding", "pg_hint_plan", "pg_hll", "pg_ivm", "pg_net", "pg_partman", "pg_rational", "pg_relusage", "pg_repack", "pg_safeupdate", "pg_similarity", "pg_topn", "pg_uuidv7", "pgaudit", "pgjwt", "pgroonga", "pgrouting", "pgsql-http", "pgtap", "pgvector", "plpgsql_check", "plr", "plv8", "postgis", "promscale_extension", "repmgr", "rum", "smlar", "tds_fdw", "temporal_tables", "timescaledb", "timescaledb-apache", "timescaledb_toolkit", "tsearch_extras", "tsja", "wal2json")

Predefinita: [ ]

Esempio: [ "pgvector" "postgis" ];

services.pubsub.enable

Indica se abilitare l'emulatore Google Pub/Sub.

Ulteriori informazioni sull'utilizzo 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; tra 0 e 65535 (entrambi inclusi)

Predefinita: 8085

services.pubsub.project-id

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; 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; 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; tra 0 e 65535 (entrambi inclusi)

Predefinita: 9020