Documentation de référence sur dev.nix

Cette page fournit des informations sur le schéma de votre environnement d'espace de travail de configuration, qui doit toujours se trouver dans .idx/dev.nix.

Pour en savoir plus, consultez la langue officielle Nix tutoriel.

colis

Packages à installer dans l'environnement.

Vous pouvez utiliser l'argument pkgs pour sélectionner les packages à installer, par exemple pkgs.python3 Notez que le contenu de pkgs dépend de la sélection Option de canal channel.

Exemple :

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

Vous pouvez rechercher les packages disponibles ici: stable-23.11 ou instable.

Type:liste des packages

Par défaut:[ ]

chaîne

nixpkgs à utiliser.

Ce canal définit le contenu de l'argument pkgs.

Type : "stable-23.05", "stable-23.11", "stable-24.05", "unstable"

Par défaut:"stable-23.11"

env

Variables d'environnement définies dans l'environnement de développement.

Ils sont propagés à tous vos shells et au serveur de prévisualisation. Environnement peuvent être particulièrement utiles si votre application nécessite un ensemble spécifique de variables.

La valeur de chaque variable peut être une chaîne ou une liste de chaînes. La la deuxième est concaténée et insérée par deux-points.

PATH doit être une liste, car elle est toujours étendue et n'est jamais complètement remplacée.

Exemple :

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

Type:ensemble d'attributs de ((liste de chaîne) ou tout autre élément)

Par défaut:{ }

idx.extensions

Extensions de code que vous souhaitez installer dans votre espace de travail IDX.

Il s'agit d'une liste d'ID d'extension complets, par exemple ${publisherId}.${extensionId}

Vous trouverez la liste des extensions disponibles sur le Ouvrez VSX Registry et saisissez-les dans votre fichier dev.nix. par ${publisherId}.${extensionId}.

Type:liste de (chaîne ou chemin d'accès non vides)

Par défaut:[ ]

idx.previews.enable

Définissez ce paramètre sur true pour activer les aperçus IDX.

Cette fonctionnalité vous permet d'exécuter et d'actualiser automatiquement vos applications au fur et à mesure. les développer.

Type:booléen

Par défaut:true

Exemple : true

idx.previews.previews

Prévisualisez les configurations.

Définissez les commandes que IDX exécute dans votre environnement de développement.

Exemple :

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

Type:ensemble d'attributs de (sous-module)

Par défaut:{ }

idx.previews.previews.<name>.activity

Activité de lancement Android

Type:chaîne

Par défaut:""

idx.previews.previews.<name>.command

Commande à exécuter

Type:liste de chaînes

Par défaut:[ ]

idx.previews.previews.<name>.cwd

Répertoire de travail

Type:chaîne

Par défaut:""

idx.previews.previews.<name>.env

Variables d'environnement à définir.

Type:ensemble d'attributs de chaîne

Par défaut:{ }

idx.previews.previews.<name>.manager

Gestionnaire

Type : "web", "flutter", "android", "gradle"

idx.workspace.onCreate

Commandes à exécuter lorsque l'espace de travail est créé et ouvert pour la première fois.

Cela peut être utile pour configurer l'environnement de développement. Par exemple, ici, spécifient npm install à exécuter:

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

Type:ensemble d'attributs de (chemin ou chaîne ou ({ openFiles = [ string ];}))

Par défaut:{ }

idx.workspace.onStart

Commandes à exécuter chaque fois que l'espace de travail est ouvert.

Cela peut être utile pour commencer à créer des observateurs. Par exemple, ici, nous spécifions 2 commandes à exécuter:

{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" ];
  };
}

Type:ensemble d'attributs de (chemin ou chaîne ou ({ openFiles = [ string ];}))

Par défaut:{ }

services.docker.enable

Activer ou non Docker sans racine.

Type:booléen

Par défaut:false

Exemple : true

services.mongodb.enable

Activer ou non le serveur MongoDB.

Type:booléen

Par défaut:false

Exemple : true

services.mongodb.package

MongoDB à utiliser.

Type:package

Par défaut:<derivation mongodb-6.0.11>

services.mongodb.port

Configure le port sur lequel Mongod écoutera.

Par défaut, tcp est désactivé et Mongod n'écoute que sur /tmp/mongodb/mongodb.sock. Pour vous connecter, utilisez la chaîne de connexion "mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock"

Type:entier non signé de 16 bits ; entre 0 et 65 535 (inclus)

Par défaut:0

services.mysql.enable

Activer ou non le serveur MySQL.

Le serveur est initialisé avec une racine d'utilisateur sans mot de passe. Donc, pour créer des utilisateurs et créer des bases de données utilisent mysql -u root. .

Type:booléen

Par défaut:false

Exemple : true

services.mysql.package

package MySQL à utiliser.

Type:package

Par défaut:pkgs.mysql

Exemple : pkgs.mysql80

services.postgres.enable

Indique si le serveur PostgreSQL doit être activé.

Type:booléen

Par défaut:false

Exemple : true

services.postgres.enableTcp

Permet d'activer ou non Postgres pour écouter sur TCP.

Type:booléen

Par défaut:true

Exemple : true

services.postgres.package

package PostgreSQL à utiliser.

Type:package

Par défaut:pkgs.postgresql

Exemple : pkgs.postgresql_15

services.postgres.extensions

Extensions Postgres à installer.

Type:liste de (une des valeurs "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")

Par défaut:[ ]

Exemple : [ "pgvector" "postgis" ];

services.pubsub.enable

Activer ou non l'émulateur Google Pub/Sub.

Pour en savoir plus sur l'utilisation de l'émulateur, consultez cette page: https://cloud.google.com/pubsub/docs/emulator#using_the_emulator

Type:booléen

Par défaut:false

Exemple : true

services.pubsub.port

Configure le port sur lequel Pub/Sub écoutera.

Type:entier non signé de 16 bits ; entre 0 et 65 535 (inclus)

Par défaut:8085

services.pubsub.project-id

ID du projet à utiliser pour exécuter l'émulateur Pub/Sub. Ce projet est destiné à des tests uniquement, il n'a pas besoin d'exister et il n'est utilisé qu'en local.

Type:chaîne correspondant au format [a-z][a-z0-9-]{5,29}

Par défaut:"idx-pubsub-emulator"

services.redis.enable

Activer ou non le serveur Redis.

Type:booléen

Par défaut:false

Exemple : true

services.redis.port

Configure le port sur lequel Redis écoutera.

Par défaut, tcp est désactivé et Redis n'écoute que sur /tmp/redis/redis.sock.

Type:entier non signé de 16 bits ; entre 0 et 65 535 (inclus)

Par défaut:0

services.spanner.enable

Activer ou non l'émulateur Google Cloud Spanner.

Type:booléen

Par défaut:false

Exemple : true

services.spanner.fault-injection

Activer ou non l'injection aléatoire de pannes dans les transactions.

Type:booléen

Par défaut:false

Exemple : true

services.spanner.grpc-port

Port TCP auquel l'émulateur doit être lié.

Type:entier non signé de 16 bits ; entre 0 et 65 535 (inclus)

Par défaut:9010

services.spanner.rest-port

Port sur lequel les requêtes REST sont traitées

Type:entier non signé de 16 bits ; entre 0 et 65 535 (inclus)

Par défaut:9020