Vai al contenuto principale
Traduzione Beta Non Ufficiale

Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →

Esecuzione di Task

I monorepos possono contenere centinaia o addirittura migliaia di progetti, quindi la capacità di eseguire script npm su tutti (o alcuni) di essi è una funzionalità chiave di uno strumento come Lerna.

Definizioni

  • Comando - qualsiasi istruzione digitata dallo sviluppatore nel terminale (es. lerna run build --scope=header --concurrency=5).

  • Target - il nome di uno script npm (es. build).

  • Task - un'invocazione di uno script npm (es. header:build).

Repository di Esempio

Gli esempi si basano su questo repository, quindi sentiti libero di clonarlo e seguire gli esempi.

Eseguire Tutto

Ogni progetto ha definiti gli script test e build.

Esegui:

npx lerna run build

Questo compilerà i progetti nell'ordine corretto: prima footer e header, poi remixapp.

Terminal Output
    ✔  header:build (501ms)
✔ footer:build (503ms)
✔ remixapp:build (670ms)

—————————————————————————————————————————————————————————————————————————————

Lerna (powered by Nx) Successfully ran target build for 3 projects (1s)

Nota che a Lerna non interessa cosa faccia ciascuno script di build. Anche il nome build non è speciale: è semplicemente il nome dello script npm.

Eseguire Più Task in Concorrenza

Puoi passare un elenco di target separati da virgola che desideri attivare in esecuzione concorrente.

npx lerna run test,build,lint

Se, ad esempio, esistono dipendenze tra i tuoi task, come build che deve essere eseguito prima di test per pacchetti specifici, il task-runner le coordinerà per te purché tu abbia configurato un'appropriata Configurazione della Pipeline dei Task.

Eseguire un Task per un Singolo Pacchetto

Durante lo sviluppo raramente esegui tutte le build o tutti i test. Invece, spesso esegui operazioni solo sui progetti che stai modificando. Ad esempio, puoi eseguire i test di header così:

npx lerna run test --scope=header

Eseguire i Task Influenzati da una PR

Puoi anche eseguire un comando per tutti i progetti interessati dalla tua PR in questo modo:

npx lerna run test --since=origin/main

Scopri di più qui.

Controllare Come Vengono Eseguiti i Task

Per un maggiore controllo sull'ordine di esecuzione dei task, modifica la Configurazione della Pipeline dei Task.

Per velocizzare l'esecuzione dei task, scopri come Memorizzare nella Cache i Risultati dei Task e Distribuire l'Esecuzione dei Task.

Caricamento Automatico dei File .env

Per impostazione predefinita, il moderno task runner basato su Nx caricherà automaticamente i file .env per te. Puoi impostare --load-env-files su false se desideri disabilitare questo comportamento per qualsiasi motivo.

Per maggiori dettagli su quali file .env vengono caricati per impostazione predefinita, consulta: https://nx.dev/recipes/environment-variables/define-environment-variables