Project IDX vous permet d'adapter votre espace de travail aux besoins uniques de votre projet en définissant un seul fichier de configuration .idx/dev.nix
qui décrit:
- Les outils système que vous devez pouvoir exécuter (par exemple, à partir du terminal), tels que des compilateurs ou d'autres binaires.
- Les extensions IDE dont vous avez besoin (par exemple, compatibilité avec le langage de programmation)
- Mode d'affichage des aperçus d'application (par exemple, les commandes d'exécution de votre serveur Web).
- Des variables d'environnement globales disponibles pour les serveurs locaux exécutés dans votre espace de travail
Consultez la documentation de référence sur dev.nix
pour obtenir une description complète des fonctionnalités disponibles.
Nix et IDX
IDX utilise Nix pour définir la configuration de l'environnement pour chaque espace de travail. Plus précisément, IDX utilise:
Langage de programmation Nix pour décrire les environnements d'espace de travail Nix est un langage de programmation fonctionnel. Les attributs et les bibliothèques de packages que vous pouvez définir dans le fichier
dev.nix
suivent la syntaxe des ensembles d'attributs Nix.Le gestionnaire de packages Nix pour gérer les outils système disponibles pour votre espace de travail Ce fonctionnement est semblable aux gestionnaires de packages spécifiques à un système d'exploitation, tels que APT (
apt
etapt-get
), Homebrew (brew
) etdpkg
.
Étant donné que les environnements Nix sont reproductibles et déclaratifs, dans le contexte d'IDX, cela signifie que vous pouvez partager votre fichier de configuration Nix dans votre dépôt Git pour vous assurer que tous ceux qui travaillent sur votre projet disposent de la même configuration d'environnement.
Exemple de base
L'exemple suivant présente une configuration d'environnement de base activant les aperçus:
{ 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";
};
};
};
}
Ajouter des outils système
Pour ajouter des outils système à votre espace de travail, tels que des compilateurs ou des programmes CLI pour les services cloud, recherchez l'ID de package unique dans le registre de packages Nix et ajoutez-le à l'objet packages
de votre fichier dev.nix
, avec le préfixe "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
];
...
}
Cela diffère de la manière dont vous installez généralement des packages système à l'aide de gestionnaires de packages spécifiques au système d'exploitation, tels que APT (apt
et apt-get
), Homebrew (brew
) et dpkg
. Une description déclarative des packages système nécessaires signifie que les espaces de travail IDX sont plus faciles à partager et à reproduire.
Utiliser des binaires de nœuds locaux
Comme sur votre ordinateur local, les binaires liés aux packages de nœuds installés localement (c'est-à-dire les packages définis dans votre fichier package.json
) peuvent être exécutés dans un panneau de terminal en les appelant avec la commande npx
.
Si vous vous trouvez dans un répertoire comportant un dossier node_modules
(tel que le répertoire racine d'un projet Web), les binaires installés localement peuvent être appelés directement, sans le préfixe npx
.
Ajouter des composants gcloud
Une configuration par défaut de la CLI gcloud
pour Google Cloud est disponible pour tous les espaces de travail IDX.
Si vous avez besoin de composants supplémentaires, vous pouvez les ajouter à votre fichier dev.nix
comme suit:
{ pkgs }: {
packages = [
...
(pkgs.google-cloud-sdk.withExtraComponents [
pkgs.google-cloud-sdk.components.cloud-datastore-emulator
])
...
];
}
Ajouter des extensions IDE
Vous pouvez installer des extensions dans IDX à l'aide du registre d'extensions OpenVSX de deux manières:
En utilisant le panneau Extensions dans IDX pour découvrir et installer des extensions Cette approche est préférable pour les extensions spécifiques à l'utilisateur, telles que:
- Thèmes de couleurs personnalisés
En ajoutant des extensions à votre fichier
dev.nix
. Ces extensions seront automatiquement installées lorsque vous partagerez la configuration de votre espace de travail. Cette approche est idéale pour les extensions spécifiques à un projet, telles que:- Extensions de langage de programmation, y compris les débogueurs spécifiques au langage
- Extensions officielles pour les services cloud utilisés dans votre projet
- Outils de mise en forme du code
Pour cette dernière approche, vous pouvez inclure des extensions IDE dans votre fichier dev.nix
en recherchant l'ID d'extension complet (au format <publisher>.<id>
) et en l'ajoutant à l'objet idx.extensions
comme suit:
{ pkgs, ... }: {
...
# Search for the extensions you want on https://open-vsx.org/ and use the format
# "<publisher>.<id>"
idx.extensions = [
"angular.ng-template"
];
...
}
Ajouter des services courants
IDX propose également une configuration et une configuration simplifiées pour les services courants dont vous pourriez avoir besoin pendant le développement, y compris les suivants:
- Conteneurs
- Docker (
services.docker.*
)
- Docker (
- Messagerie
- Émulateur Pub/Sub (
services.pubsub.*
)
- Émulateur Pub/Sub (
- Bases de données
- MySQL (
services.mysql.*
) - Postgres (
services.postgres.*
) - Redis (
services.redis.*
) - Spanner (
services.spanner.*
)
- MySQL (
Pour en savoir plus sur l'activation de ces services dans votre espace de travail, consultez les parties services.*
de la documentation de référence dev.nix
.
Personnaliser les aperçus
Pour savoir comment personnaliser les aperçus de vos applications, consultez la documentation sur les aperçus.
Voir toutes les options de personnalisation
Consultez la documentation de référence sur dev.nix
pour obtenir une description détaillée du schéma de configuration de l'environnement.