Workspace
Dettagli su come utilizzare Volta in un ambiente workspace, dove un singolo repository contiene più progetti che desiderano tutti condividere le impostazioni di Volta.
TIP
Questa funzionalità è stata aggiunta in Volta 0.8.2 e non funziona nelle versioni precedenti.
Configurazione estesa
Nella sezione "volta"
del package.json
, puoi specificare una voce con la chiave "extends"
. Il valore di quella voce dovrebbe essere il percorso di un altro file JSON che ha anche una sezione "volta"
. I percorsi relativi saranno risolti relativamente al file che li imposta. Qualsiasi impostazione di Volta (ad esempio versioni "node"
o "yarn"
) sarà unita con le impostazioni nel file puntato da "extends"
, con priorità data al file corrente. Quindi, se vuoi usare una singola versione di Node per tutti i progetti, puoi impostare quelle versioni nella directory root, e poi ogni progetto ha solo bisogno di "extends": "../path/to/root/package.json"
.
Esempio
Dato la seguente struttura di cartelle e contenuto di package.json
:
.
├── 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"
}
}
Eseguire node
ovunque nel workspace ti farà usare Node 12.16.1
. Se aggiorni quella versione nel package.json
root, verrà automaticamente utilizzata in tutti i progetti senza dover copiare le impostazioni in ogni sottoprogetto.
Fissare strumenti
Quando esegui volta pin
all'interno di un workspace per selezionare le versioni degli strumenti, Volta aggiungerà sempre quelle impostazioni al package.json
più vicino che trova. Quindi, nell'esempio sopra, se esegui volta pin node@14
nel sottoprogetto packages/utils
, la nuova versione di Node sarà scritta in packages/utils/package.json
e si applicherà solo al sottoprogetto utils
, non a nessun altro progetto. Questo ti permette di personalizzare facilmente le versioni degli strumenti per progetto.
Se desideri che volta pin
faccia modifiche alla configurazione root, prima cd
nella directory root del workspace, poi esegui volta pin
da lì.
Hooks
Se il tuo progetto usa hooks di progetto, puoi metterli nella directory .volta
del sottoprogetto, o nella directory .volta
della root. Volta cercherà hooks in ogni posizione puntata dalle chiavi "extends"
, in modo che le impostazioni possano essere personalizzate a qualsiasi livello necessario.
Binari locali del progetto
Oltre a cercare hooks a ogni livello, Volta cercherà anche a ogni livello per rilevare le dipendenze locali del progetto da utilizzare quando esegue strumenti di terze parti. Tenterà di trovarle in node_modules/.bin
relativamente a ogni file referenziato da "extends"
.