Skip to content

Espaces de travail

Détails sur l'utilisation de Volta dans un environnement d'espace de travail, où vous avez plusieurs projets dans un seul dépôt qui souhaitent tous partager les paramètres Volta.

TIP

Cette fonctionnalité a été ajoutée dans Volta 0.8.2 et ne fonctionnera pas dans les versions antérieures.

Configuration étendue

Dans la section "volta" de package.json, vous pouvez spécifier une entrée avec la clé "extends". La valeur de cette entrée doit être le chemin vers un autre fichier JSON qui a également une section "volta". Les chemins relatifs seront résolus par rapport au fichier qui les définit. Tous les paramètres Volta (par exemple les versions "node" ou "yarn") seront fusionnés avec les paramètres du fichier pointé par "extends", la priorité étant donnée au fichier actuel. Ainsi, si vous voulez utiliser une seule version Node pour tous les projets, vous pouvez définir ces versions à la racine, puis chaque projet n'a besoin que de "extends": "../path/to/root/package.json".

Exemple

Étant donné la structure de dossiers et le contenu package.json suivants :

.
├── package.json
└── packages
    ├── cli
    │   └── package.json
    └── utils
        └── package.json
  • package.json
json
{
  "volta": {
    "node": "12.16.1",
    "yarn": "1.22.4"
  }
}
  • packages/cli/package.json
json
{
  "volta": {
    "extends": "../../package.json"
  }
}
  • packages/utils/package.json
json
{
  "volta": {
    "extends": "../../package.json"
  }
}

Exécuter node n'importe où dans l'espace de travail vous fera utiliser Node 12.16.1. Si vous mettez à jour cette version dans le package.json racine, elle sera automatiquement utilisée dans tous les projets, sans avoir besoin de dupliquer les paramètres dans chaque sous-projet.

Épingler des outils

Quand vous exécutez volta pin pour choisir les versions d'outils dans un espace de travail, Volta ajoutera toujours ces paramètres au package.json le plus proche qu'il trouve. Ainsi, dans l'exemple ci-dessus, si vous exécutez volta pin node@14 dans le sous-projet packages/utils, la nouvelle version Node sera écrite dans packages/utils/package.json et s'appliquera uniquement au sous-projet utils, pas aux autres projets. Cela vous permet de personnaliser facilement les versions d'outils par projet.

Si vous voulez utiliser volta pin pour faire des changements à la configuration racine, cd d'abord vers la racine de l'espace de travail, puis exécutez volta pin de là.

Hooks

Si votre projet utilise des hooks de projet, vous pouvez les placer soit dans le répertoire .volta du sous-projet, soit dans le répertoire .volta de la racine. Volta recherchera des hooks à chaque emplacement pointé par une clé "extends", de sorte que les paramètres peuvent être personnalisés à n'importe quel niveau nécessaire.

Binaires locaux de projet

En plus de rechercher des hooks à chaque niveau, Volta recherchera également à chaque niveau pour détecter les dépendances locales de projet à utiliser lors de l'exécution d'outils tiers. Il essaiera de les trouver dans node_modules/.bin relatif à chaque fichier référencé par "extends".