Project IDX ti consente di personalizzare l'area di lavoro in base alle esigenze specifiche del tuo progetto
definendo un singolo file di configurazione .idx/dev.nix
che descriva:
- Gli strumenti di sistema che devi poter eseguire (ad esempio, dalla come compilatori o altri file binari.
- Le estensioni IDE che devi installare (ad esempio, il linguaggio di programmazione assistenza).
- Come dovrebbero essere visualizzate le anteprime dell'app (ad ad esempio i comandi per eseguire il server web).
- Variabili di ambiente globali disponibili per i server locali in esecuzione in area di lavoro.
Consulta la documentazione di riferimento di dev.nix
per un elenco completo
descrizione di ciò che è disponibile.
Nix e IDX
IDX utilizza Nix per definire la configurazione dell'ambiente per ogni area di lavoro. Nello specifico, IDX utilizza:
Il linguaggio di programmazione Nix per descrivere gli ambienti delle aree di lavoro. Nix è un linguaggio di programmazione funzionale. Gli attributi e le librerie di pacchetti che puoi definire nel file
dev.nix
seguono il set di attributi Nix del linguaggio naturale.Il gestore di pacchetti Nix per gestire di sistema disponibili per la tua area di lavoro. Si tratta di un comportamento simile gestori di pacchetti come APT (
apt
eapt-get
), Homebrew (brew
) edpkg
.
Poiché gli ambienti Nix sono riproducibili e dichiarativi, nel contesto IDX, questo significa che puoi condividere il file di configurazione Nix come parte Repository Git per garantire che tutti coloro che lavorano al progetto abbiano le stesse la configurazione dell'ambiente di gestione.
Esempio di base
L'esempio seguente mostra una configurazione di base dell'ambiente che abilita le anteprime:
{ pkgs, ... }: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [
pkgs.nodejs_18
];
# Sets environment variables in the workspace
env = {
SOME_ENV_VAR = "hello";
};
# Search for the extensions you want on https://open-vsx.org/ and use "publisher.id"
idx.extensions = [
"angular.ng-template"
];
# Enable previews and customize configuration
idx.previews = {
enable = true;
previews = {
web = {
command = [
"npm"
"run"
"start"
"--"
"--port"
"$PORT"
"--host"
"0.0.0.0"
"--disable-host-check"
];
manager = "web";
};
};
};
}
Aggiungi strumenti di sistema
Per aggiungere strumenti di sistema all'area di lavoro, ad esempio compilatori o programmi dell'interfaccia a riga di comando per
dai servizi cloud, trova l'ID pacchetto univoco nel pacchetto Nix
registry e aggiungilo al file dev.nix
Oggetto packages
, preceduto dal prefisso "pkgs.:
{ pkgs, ... }: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [
pkgs.nodejs_18
];
...
}
Questa modalità è diversa da quella di installazione di pacchetti di sistema utilizzando
Gestori di pacchetti specifici del sistema operativo come APT (apt
e apt-get
), Homebrew
(brew
) e dpkg
. Descrivere dichiarativamente quali pacchetti di sistema
le aree di lavoro IDX sono più facili da condividere e riprodurre.
Usa binari dei nodi locali
Proprio come sulla tua macchina locale, i programmi binari relativi ai nodi installati localmente
pacchetti (ovvero quelli definiti in package.json
) possono essere eseguiti in un
Riquadro del terminale richiamandolo con npx
kubectl.
Per praticità, se ti trovi in una directory con un node_modules
(ad esempio la directory radice di un progetto web), file binari installati localmente
può essere richiamato direttamente, senza il prefisso npx
.
Aggiungi gcloud
componenti
Una configurazione predefinita dell'interfaccia a riga di comando di gcloud
per Google
Cloud è disponibile per tutti gli IDX
aree di lavoro.
Se hai bisogno di componenti aggiuntivi, puoi aggiungerli al file dev.nix
come
quindi:
{ pkgs }: {
packages = [
...
(pkgs.google-cloud-sdk.withExtraComponents [
pkgs.google-cloud-sdk.components.cloud-datastore-emulator
])
...
];
}
Aggiungi estensioni IDE
Puoi installare le estensioni in IDX utilizzando del registro delle estensioni OpenVSX in due modi:
Tramite il riquadro Estensioni in IDX per rilevare e installare estensioni. Questo approccio è ideale per le estensioni specifiche per utente, ad esempio:
- Temi cromatici personalizzati
Aggiungendo estensioni al tuo file
dev.nix
. Queste estensioni saranno installati automaticamente quando condividi la configurazione dell'area di lavoro. Questo è l'ideale per le estensioni specifiche del progetto, ad esempio:- Estensioni dei linguaggi di programmazione, inclusi i debugger specifici dei linguaggi
- Estensioni ufficiali per i servizi cloud utilizzati nel progetto
- Formattatori di codice
Per il secondo approccio, puoi includere le estensioni IDE nel file dev.nix
individuando l'ID estensione completo (nel modulo <publisher>.<id>
) e aggiungendolo alla idx.extensions
in questo modo:
{ pkgs, ... }: {
...
# Search for the extensions you want on https://open-vsx.org/ and use the format
# "<publisher>.<id>"
idx.extensions = [
"angular.ng-template"
];
...
}
Aggiungi servizi comuni
IDX offre anche impostazioni e configurazione semplificate per i servizi più comuni che di cui potresti aver bisogno durante lo sviluppo, ad esempio:
- Container
- Docker (
services.docker.*
)
- Docker (
- Messaggistica
- Emulatore Pub/Sub (
services.pubsub.*
)
- Emulatore Pub/Sub (
- Database
- MySQL (
services.mysql.*
) - Postgres (
services.postgres.*
) - Redis (
services.redis.*
) - Spanner (
services.spanner.*
)
- MySQL (
Per maggiori dettagli sull'abilitazione di questi servizi nell'area di lavoro, consulta services.*
del riferimento dev.nix
.
Personalizza le anteprime
Per informazioni dettagliate su come personalizzare le anteprime delle tue app, consulta la documentazione per anteprime.
Imposta l'icona dell'area di lavoro
Puoi scegliere un'icona personalizzata per l'area di lavoro inserendo un file PNG denominato
icon.png
accanto al file dev.nix
, all'interno della directory .idx
. IDX
userà questa icona per rappresentare l'area di lavoro nella dashboard.
Poiché questo file può essere archiviato nel controllo del codice sorgente (come Git), si tratta di un un buon modo per aiutare tutti coloro che lavorano al tuo progetto a vedere la stessa icona per i tuoi progetto quando si utilizza IDX. E poiché il file può variare tra i rami Git, puoi persino distinguere visivamente le aree di lavoro quando lavori nella versione "beta" e "produzione" delle tue app.
Trasforma le tue personalizzazioni in un modello
a trasformare la configurazione dell'ambiente in un "ambiente di base" per tutti con cui creare nuovi progetti, consulta la documentazione per la creazione di un modello modello.
Vedi tutte le opzioni di personalizzazione
Per informazioni dettagliate, consulta la documentazione di riferimento di dev.nix
descrizione dello schema di configurazione dell'ambiente.