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 dont vous avez besoin pour exécuter (par exemple, à partir du Terminal), par exemple des compilateurs ou d'autres binaires.
- Les extensions IDE dont vous avez besoin (par exemple, le langage de programmation l'assistance technique).
- Comment les aperçus de votre application doivent s'afficher (par exemple, les commandes permettant d'exécuter votre serveur Web).
- Des variables d'environnement globales disponibles pour les serveurs locaux s'exécutant dans votre dans l'espace de travail.
Consultez la documentation de référence sur dev.nix
pour obtenir
de ce qui est disponible.
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:
Le langage de programmation Nix pour décrivent 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
suivez les instructions de l'ensemble d'attributs Nix syntaxe.le gestionnaire de paquets Nix pour gérer outils système disponibles pour votre espace de travail. Cette méthode est semblable à celle spécifique à l'OS gestionnaires de packages tels que APT (
apt
etapt-get
), Homebrew (brew
) etdpkg
Étant donné que les environnements Nix sont reproductibles et déclaratifs, dans le contexte IDX, cela signifie que vous pouvez partager votre fichier de configuration Nix dans le cadre un dépôt Git pour vous assurer que tous les collaborateurs de votre projet disposent des configuration de l'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
services cloud, trouver l'identifiant de package unique dans le package Nix
registre et ajoutez-le au fichier dev.nix
Objet packages
, précédé de `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
];
...
}
Ceci est différent de la façon dont vous pourriez
généralement installer des packages système en utilisant
Gestionnaires de paquets spécifiques au système d'exploitation, tels que APT (apt
et apt-get
), Homebrew
(brew
) et dpkg
. Décrire de manière déclarative exactement quels packages système sont
nécessaires signifie que les espaces de travail IDX sont plus faciles à partager et à reproduire.
Utiliser des binaires de nœuds locaux
Tout comme sur votre machine locale, les binaires liés aux nœuds installés localement
les packages (c'est-à-dire les packages définis dans votre package.json
) peuvent être exécutés dans une
panneau des terminaux en les appelant avec le npx
.
Pour plus de commodité, si vous vous trouvez dans un répertoire avec un élément 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 accessible à tous
des espaces de travail.
Si vous avez besoin de composants supplémentaires, vous pouvez les ajouter à votre fichier dev.nix
comme suit :
Par conséquent:
{ 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 de la OpenVSX de deux manières:
En utilisant le panneau Extensions dans IDX pour découvrir et installer . 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é lorsque vous partagez la configuration de votre espace de travail. Ce est la meilleure 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 d'IDE dans votre fichier dev.nix
en recherchant l'ID d'extension complet (au format <publisher>.<id>
) et en l'ajoutant à 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 installation et une configuration simplifiées pour les services courants que vous nécessaires pendant le développement, par exemple:
- Conteneurs
<ph type="x-smartling-placeholder">
- </ph>
- Docker (
services.docker.*
)
- Docker (
- Messages
<ph type="x-smartling-placeholder">
- </ph>
- Émulateur Pub/Sub (
services.pubsub.*
)
- Émulateur Pub/Sub (
- Bases de données
<ph type="x-smartling-placeholder">
- </ph>
- 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 services.*
de la référence dev.nix
.
Personnaliser les aperçus
Pour plus de détails sur la personnalisation des aperçus de vos applications, consultez la documentation pour aperçus.
Icône Définir votre espace de travail
Vous pouvez choisir une icône personnalisée pour votre espace de travail en plaçant un fichier PNG nommé
icon.png
à côté du fichier dev.nix
, dans le répertoire .idx
. IDX
utilisera ensuite cette icône pour représenter votre espace de travail dans votre tableau de bord.
Comme ce fichier peut être enregistré dans un dépôt source (tel que Git), il s'agit d'un un bon moyen d'aider tous ceux qui travaillent sur votre projet à voir la même icône pour votre lorsque vous utilisez IDX. Comme le fichier peut varier d'une branche Git à l'autre, vous pouvez même distinguer visuellement les espaces de travail lorsque vous travaillez en version "bêta" et "production" versions de votre application, par exemple.
Transformez vos personnalisations en modèle
Transformer la configuration de votre environnement en "environnement de démarrage" pour tout le monde pour la création de projets, consultez la documentation sur la création d'un projet modèle.
Voir toutes les options de personnalisation
Pour en savoir plus, consultez la documentation de référence sur dev.nix
.
du schéma de configuration de l'environnement.