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
{
"volta": {
"node": "12.16.1",
"yarn": "1.22.4"
}
}
packages/cli/package.json
{
"volta": {
"extends": "../../package.json"
}
}
packages/utils/package.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"
.