Personalizza la tua area di lavoro IDX

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:

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.*)
  • Messaggistica
    • Emulatore Pub/Sub (services.pubsub.*)
  • Database
    • MySQL (services.mysql.*)
    • Postgres (services.postgres.*)
    • Redis (services.redis.*)
    • Spanner (services.spanner.*)

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.