Referencia de dev.nix

En esta página, se incluyen detalles sobre el esquema del entorno de tu lugar de trabajo de Terraform, que siempre debe estar ubicado en .idx/dev.nix.

Para obtener más información sobre el idioma Nix, consulta el idioma oficial de Nix .

paquetes

Paquetes para instalar en el entorno.

Puedes usar el argumento pkgs para seleccionar los paquetes que deseas instalar, por ejemplo. pkgs.python3 Ten en cuenta que el contenido de pkgs depende del contenido seleccionado Opción de canal channel.

Ejemplo:

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

Puedes buscar los paquetes disponibles aquí: stable-23.11 o estable.

Tipo: lista de paquetes

Valor predeterminado: [ ]

canal

nixpkgs para usar.

Este canal define el contenido del argumento pkgs.

Tipo: Una de las siguientes opciones: "stable-23.05", "stable-23.11", "stable-24.05", "unstable"

Valor predeterminado: "stable-23.11"

env

Variables de entorno que se establecen dentro del entorno de desarrollador.

Estas se propagan a todas tus shells y al servidor de vista previa. Medioambiente variables pueden ser especialmente útiles si tu aplicación requiere un conjunto específico de variables.

El valor de cada variable puede ser una cadena o una lista de cadenas. El la última está concatenada, intercalada con dos puntos.

PATH debe ser una lista, ya que siempre se extiende y nunca se reemplaza por completo.

Ejemplo:

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

Tipo: Conjunto de atributos de ((lista de cadenas) o cualquier elemento)

Valor predeterminado: { }

idx.extensions

Extensiones de código que quieres instalar en tu lugar de trabajo de IDX.

Es una lista de IDs de extensiones completamente calificados, por ejemplo ${publisherId}.${extensionId}

Puedes encontrar una lista de las extensiones disponibles en la Abre VSX Registry y, luego, ingrésalos en tu archivo dev.nix por ${publisherId}.${extensionId}

Tipo: Lista de (string o ruta no vacía)

Valor predeterminado: [ ]

idx.previews.enable

Configúralo como true para habilitar las vistas previas de IDX.

Esta función te permite ejecutar y volver a cargar tus apps automáticamente mientras lo haces. desarrollarlas.

Tipo: booleano

Valor predeterminado: true

Ejemplo: true.

idx.previews.previews

Vista previa de los parámetros de configuración.

Define los comandos que IDX ejecuta en tu entorno de desarrollador.

Ejemplo:

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

Tipo: Conjunto de atributos de (submódulo)

Valor predeterminado: { }

idx.previews.previews.<name>.activity

Actividad de inicio de Android

Tipo: string

Valor predeterminado: ""

idx.previews.previews.<name>.command

Comando para ejecutar

Tipo: lista de cadenas

Valor predeterminado: [ ]

idx.previews.previews.<name>.cwd

Directorio de trabajo

Tipo: string

Valor predeterminado: ""

idx.previews.previews.<name>.env

Variables de entorno que se deben configurar.

Tipo: Conjunto de atributos de cadena

Valor predeterminado: { }

idx.previews.previews.<name>.manager

Administrador

Tipo: "web", "flutter", "android" o "gradle"

idx.workspace.onCreate

Comandos que se ejecutan cuando se crea y se abre el lugar de trabajo por primera vez.

Esto puede ser útil para configurar el entorno de desarrollo. Por ejemplo, aquí que especifican npm install para ejecutarse:

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

Tipo: conjunto de atributos de (ruta o string o ({ openFiles = [ string ];}))

Valor predeterminado: { }

idx.workspace.onStart

Comandos que se ejecutarán cuando se abra el lugar de trabajo.

Esto puede ser útil para comenzar a crear observadores. Por ejemplo, aquí especificamos 2 comandos para ejecutar:

{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: conjunto de atributos de (ruta o string o ({ openFiles = [ string ];}))

Valor predeterminado: { }

services.docker.enable

Especifica si se habilita o no Docker sin raíz.

Tipo: booleano

Valor predeterminado: false

Ejemplo: true.

services.mongodb.enable

Establece si se habilita el servidor de MongoDB.

Tipo: booleano

Valor predeterminado: false

Ejemplo: true.

services.mongodb.package

Es el paquete de MongoDB que se usará.

Tipo: paquete

Valor predeterminado: <derivation mongodb-6.0.11>

services.mongodb.port

Configura el puerto en el que escuchará Mongod.

De manera predeterminada, tcp está inhabilitado y Mongod solo escucha en /tmp/mongodb/mongodb.sock. Para conectarte, usa el string de conexión. “mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock”

Tipo: Número de 16 bits sin firma; entre 0 y 65,535 (ambos inclusive)

Valor predeterminado: 0

services.mysql.enable

Establece si se habilita el servidor MySQL.

El servidor se inicializa con una raíz de usuario sin contraseña. Por lo tanto, para crear usuarios nuevos y crear bases de datos usan mysql -u root. .

Tipo: booleano

Valor predeterminado: false

Ejemplo: true.

services.mysql.package

Es el paquete de MySQL que se usará.

Tipo: paquete

Valor predeterminado: pkgs.mysql

Ejemplo: pkgs.mysql80.

services.postgres.enable

Indica si se habilita el servidor de PostgreSQL.

Tipo: booleano

Valor predeterminado: false

Ejemplo: true.

services.postgres.enableTcp

Establece si se habilita Postgres para escuchar en TCP.

Tipo: booleano

Valor predeterminado: true

Ejemplo: true.

services.postgres.package

Es el paquete de PostgreSQL que se usará.

Tipo: paquete

Valor predeterminado: pkgs.postgresql

Ejemplo: pkgs.postgresql_15.

services.postgres.extensions

Extensiones de Postgres para instalar

Tipo: Lista de (uno de "age", "apache_datasketches", "cstore_fdw", "hypopg", "jsonb_deep_sum", "períodos", "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”, “ron”, “smlar”, “tds_fdw”, "tablas_temporal", "timescaledb", "timescaledb-apache", "timescaledb_toolkit", “tsearch_extras”, “tsja”, “wal2json”)

Valor predeterminado: [ ]

Ejemplo: [ "pgvector" "postgis" ];.

services.pubsub.enable

Establece si se habilita el emulador de Google Pub/Sub.

Puedes encontrar más documentación sobre el uso del emulador aquí: https://cloud.google.com/pubsub/docs/emulator#using_the_emulator .

Tipo: booleano

Valor predeterminado: false

Ejemplo: true.

services.pubsub.port

Configura el puerto en el que escuchará Pub/Sub.

Tipo: Número de 16 bits sin firma; entre 0 y 65,535 (ambos inclusive)

Valor predeterminado: 8085

services.pubsub.project-id

ID del proyecto que se usará para ejecutar el emulador de Pub/Sub. Este proyecto es solo para realizar pruebas, no es necesario que exista y solo se usa a nivel local.

Tipo: string que coincide con el patrón [a-z][a-z0-9-]{5,29}

Valor predeterminado: "idx-pubsub-emulator"

services.redis.enable

Establece si se habilita el servidor de Redis.

Tipo: booleano

Valor predeterminado: false

Ejemplo: true.

services.redis.port

Configura el puerto en el que escuchará Redis.

De forma predeterminada, tcp está inhabilitado y redis solo escucha en /tmp/redis/redis.sock.

Tipo: Número de 16 bits sin firma; entre 0 y 65,535 (ambos inclusive)

Valor predeterminado: 0

services.spanner.enable

Establece si se habilita el emulador de Google Cloud Spanner.

Tipo: booleano

Valor predeterminado: false

Ejemplo: true.

services.spanner.fault-injection

Establece si se habilita la inserción de errores aleatorios en las transacciones.

Tipo: booleano

Valor predeterminado: false

Ejemplo: true.

services.spanner.grpc-port

El puerto TCP al que se debe vincular el emulador.

Tipo: Número de 16 bits sin firma; entre 0 y 65,535 (ambos inclusive)

Valor predeterminado: 9010

services.spanner.rest-port

El puerto en el que se entregan las solicitudes de REST.

Tipo: Número de 16 bits sin firma; entre 0 y 65,535 (ambos inclusive)

Valor predeterminado: 9020