Skip to content

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
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"
  }
}

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".