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