et værktøj til styring af JavaScript-projekter med flere pakker.
- Om
- Kom Godt I Gang
- Sådan Fungerer Det
- Fejlfinding
- Kommandoer
- Misc
- Lerna.json
- flag
om
opdeling af store kodebaser i separate uafhængigt versionerede pakker er yderst nyttigt til kodedeling. Imidlertid, at foretage ændringer på tværs af mange arkiver er rodet og vanskeligt at spore, og test på tværs af arkiver bliver kompliceret virkelig hurtigt.
for at løse disse (og mange andre) problemer, vil nogle projekter organisere deres kodebaser i multi-pakke repositories (undertiden kaldet monorepos). Projekter som Babel, React, Angular, Ember, Meteor, Jest og mange andre udvikler alle deres pakker inden for et enkelt lager.
Lerna er et værktøj, der optimerer arbejdsgangen omkring styring af multi-pakke repositories med git og npm.
Lerna kan også reducere tid og rum krav til talrige kopier af pakker i udvikling og bygge miljøer – normalt en ulempe ved at opdele et projekt i mange separate NPM pakke. Se hejsedokumentationen for detaljer.
hvordan ser en Lerna repo ud?
der er faktisk meget lidt til det. Du har et filsystem, der ser sådan ud:
my-lerna-repo/ package.json packages/ package-1/ package.json package-2/ package.json
Hvad kan Lerna gøre?
de to primære kommandoer i Lerna er lerna bootstrap
og lerna publish
.
bootstrap
vil forbinde afhængigheder i repo sammen. publish
hjælper med at offentliggøre opdaterede pakker.
Kom godt i gang
instruktionerne nedenfor er til Lerna 2.vi anbefaler at bruge det i stedet for 1.til et nyt Lerna-projekt. Se efter, hvis du har brug for at se 1.readme.
lad os starte med at installere Lerna globalt med npm.
$ npm install --global lerna
næste opretter vi et nyt git-arkiv:
$ git init lerna-repo$ cd lerna-repo
og lad os nu gøre det til en Lerna repo:
$ lerna init
dit lager skal nu se sådan ud:
lerna-repo/ packages/ package.json lerna.json
dette vil skabe en lerna.json
konfigurationsfil samt en packages
mappe.
Sådan fungerer det
Lerna giver dig mulighed for at styre dit projekt ved hjælp af en af to tilstande: fast eller uafhængig.
fast/låst tilstand (standard)
fast tilstand Lerna-projekter fungerer på en enkelt versionslinje. Versionen opbevares i filen lerna.json
ved roden af dit projekt under tasten version
. Når du kører lerna publish
, hvis et modul er blevet opdateret siden sidste gang en udgivelse blev lavet, vil det blive opdateret til den nye version, du frigiver. Det betyder, at du kun udgiver en ny version af en pakke, når du har brug for det.
dette er den tilstand, som Babel i øjeblikket bruger. Brug dette, hvis du automatisk vil binde alle pakkeversioner sammen. Et problem med denne tilgang er, at en større ændring i enhver pakke vil resultere i, at alle pakker har en ny større version.
uafhængig tilstand (–uafhængig)
uafhængig tilstand Lerna projects giver vedligeholdere mulighed for at øge pakkeversioner uafhængigt af hinanden. Hver gang du udgiver, får du en prompt for hver pakke, der er ændret for at angive, om det er en patch, mindre, større eller brugerdefineret ændring.
uafhængig tilstand giver dig mulighed for mere specifikt at opdatere versioner for hver pakke og giver mening for en gruppe af komponenter. At kombinere denne tilstand med noget som semantisk frigivelse ville gøre det mindre smertefuldt. (Der er arbejde på dette allerede på atlassian / lerna-semantisk-release).
version
– tasten ilerna.json
ignoreres i uafhængig tilstand.
fejlfinding
hvis du støder på problemer, mens du bruger Lerna, bedes du tjekke vores Fejlfindingsdokument, hvor du muligvis finder svaret på dit problem.
ofte stillede spørgsmål
se FAQ.md.
kommandoer
init
$ lerna init
Opret en ny Lerna repo eller opgrader en eksisterende repo til den aktuelle version af Lerna.
Lerna antager, at repo allerede er initialiseret med
git init
.
når den køres, vil denne kommando:
- Tilføj
lerna
som endevDependency
ipackage.json
hvis den ikke allerede findes. - Opret en
lerna.json
konfigurationsfil for at gemmeversion
nummeret.
eksempel output på en ny git repo:
$ lerna initlerna info version v2.0.0lerna info Updating package.jsonlerna info Creating lerna.jsonlerna success Initialized Lerna files
–uafhængig, – i
$ lerna init --independent
dette flag fortæller Lerna at bruge uafhængig versionsfunktion.
–eksakt
$ lerna init --exact
som standard bruger lerna init
et caret-interval, når du tilføjer eller opdaterer den lokale version af lerna
, ligesom npm install --save-dev lerna
.
for at bevare lerna
1.”eksakt” sammenligning, passere dette flag. Det konfigurerer lerna.json
for at håndhæve nøjagtigt match for alle efterfølgende henrettelser.
{ "lerna": "2.0.0", "command": { "init": { "exact": true } }, "version": "0.0.0"}
bootstrap
$ lerna bootstrap
Bootstrap pakkerne i den nuværende Lerna repo. Installerer alle deres afhængigheder og forbinder eventuelle Cross-afhængigheder.
når den køres, vil denne kommando:
-
npm install
alle eksterne afhængigheder af hver pakke. - Symlink sammen alle Lerna
packages
der er afhængigheder af hinanden. -
npm prepublish
alle bootstrapped pakker.
lerna bootstrap
respekterer --ignore
, --scope
og --include-filtered-dependencies
flagene (se flag).
send ekstra argumenter til npm-klient ved at placere dem efter --
:
$ lerna bootstrap -- --production --no-optional
kan også konfigureres i lerna.json
:
{ ... "npmClient": "yarn", "npmClientArgs": }
hvordan bootstrap
virker
lad os bruge babel
som et eksempel.
-
babel-generator
ogsource-map
(blandt andre) er afhængigheder afbabel-core
. -
babel-core
‘spackage.json
viser begge disse pakker som nøgler idependencies
, som vist nedenfor.
// babel-core package.json{ "name": "babel-core", ... "dependencies": { ... "babel-generator": "^6.9.0", ... "source-map": "^0.5.0" }}
- Lerna kontrollerer, om hver afhængighed også er en del af Lerna repo.
- i dette eksempel kan
babel-generator
være en intern afhængighed, menssource-map
altid er en ekstern afhængighed. - versionen af
babel-generator
ipackage.json
afbabel-core
er tilfreds medpackages/babel-generator
, der passerer for en intern afhængighed. -
source-map
ernpm install
ed (elleryarn
ed) som normalt.
- i dette eksempel kan
-
packages/babel-core/node_modules/babel-generator
symlinks tilpackages/babel-generator
- dette tillader indlejrede mappe import
noter:
- når en afhængighedsversion i en pakke ikke opfyldes af en pakke med samme navn i repoen, vil den være
npm install
ed (elleryarn
ed) som normalt. - Dist-tags, som
latest
, opfylder ikke semver-intervaller. - cirkulære afhængigheder resulterer i cirkulære symlinks, som kan påvirke din editor/IDE.
Storm låser op, når cirkulære symlinks er til stede. For at forhindre dette skal du tilføje node_modules
til listen over ignorerede filer og mapper i Preferences | Editor | File Types | Ignored files and folders
.
Udgiv
$ lerna publish
Udgiv pakker i det aktuelle Lerna-projekt. Når du kører, gør denne kommando følgende:
opretter en ny udgivelse af de pakker, der er blevet opdateret. Beder om en ny version. Opretter en ny git commit / tag i processen med at udgive til npm.
mere specifikt vil denne kommando:
- Kør ækvivalenten
lerna updated
for at bestemme, hvilke pakker der skal offentliggøres. - Forøg om nødvendigt
version
– tasten ilerna.json
. - Opdater
package.json
af alle opdaterede pakker til deres nye versioner. - Opdater alle afhængigheder af de opdaterede pakker med de nye versioner, angivet med en caret (^).
- Opret en ny Git commit og tag for den nye version.
- Udgiv opdaterede pakker til npm.
Lerna offentliggør ikke pakker, der er markeret som private (
"private": true
ipackage.json
).
–præcis
$ lerna publish --exact
når du kører med dette flag, vil publish
angive opdaterede afhængigheder i opdaterede pakker nøjagtigt (uden tegnsætning) i stedet for som semver kompatibel (med en ^
).
For mere information, se pakken.JSON afhængigheder dokumentation.
–npm-tag
$ lerna publish --npm-tag=next
når den køres med dette flag, publish
publiceres til npm med det givne npm dist-tag (som standard latest
).
denne indstilling kan bruges til at udgive en prerelease
eller beta
version.
Bemærk: tagget
latest
er det, der bruges, når en bruger kørernpm install my-package
. For at installere et andet tag kan en bruger kørenpm install [email protected]
.
–canary, – C
$ lerna publish --canary$ lerna publish --canary=beta
når den køres med dette flag, publish
udgiver pakker på en mere detaljeret måde (pr. Før den udgives til npm, opretter den det nye version
tag ved at tage den aktuelle version
, bumpe den til den næste mindre version, tilføje det medfølgende meta-suffiks (som standard alpha
) og tilføje den aktuelle git sha (eks: 1.0.0
bliver 1.1.0-alpha.81e3b443
).
den tilsigtede brugssag for dette flag er en frigivelse pr.
–konventionel-forpligter
$ lerna publish --conventional-commits
når den køres med dette flag, publish
bruger den konventionelle Forpligtelsesspecifikation til at bestemme versionsstødet og generere CHANGELOG
–git-remote
$ lerna publish --git-remote upstream
når den køres med dette flag, publish
skubber git-ændringerne til den angivne fjernbetjening i stedet for origin
.
–skip-git
$ lerna publish --skip-git
når du kører med dette flag, publish
publiceres til npm uden at køre nogen af git-kommandoerne.
offentliggør kun til npm; spring over at begå, tagge og skubbe git-ændringer (dette påvirker kun publish).
–skip-npm
$ lerna publish --skip-npm
når den køres med dette flag, publish
opdaterer alle package.json
pakkeversioner og afhængighedsversioner, men det offentliggør faktisk ikke pakkerne til npm.
dette var nyttigt som en løsning på et npm-problem, som siden er blevet rettet. Når du udgiver med readme-ændringer, skal du bruge
--skip-npm
og gøre det endeligenpm publish
for hånd for hver pakke.
dette flag kan kombineres med --skip-git
for blot at opdatere versioner og afhængigheder uden at begå, tagge, skubbe eller offentliggøre.
Opdater kun versioner og afhængigheder; offentliggør faktisk ikke (dette påvirker kun publish).
–force-publish
$ lerna publish --force-publish=package-2,package-4# force publish all packages$ lerna publish --force-publish=*
når den køres med dette flag, vil publish
tvinge publicere de angivne pakker (kommasepareret) eller alle pakker ved hjælp af *
.
dette vil springe
lerna updated
check for ændrede pakker over og tvinger en pakke, der ikke havde engit diff
ændring, der skal opdateres.
–Ja
$ lerna publish --canary --yes# skips `Are you sure you want to publish the above changes?`
når du kører med dette flag, vil publish
springe alle bekræftelsesanmodninger over. Nyttig i kontinuerlig integration (CI) til automatisk at besvare bekræftelsesprompten for offentliggørelse.
–cd-version
når den køres med dette flag, vil publish
springe versionsvalgsprompten over (i uafhængig tilstand) og bruge den næste specificerede semantiske version. Du skal stadig bruge --yes
– flaget for at undgå alle meddelelser. Dette er nyttigt, når build-systemer skal offentliggøre uden kommandoprompter. Fungerer i både normale og uafhængige tilstande.
–pre-id
–repo-version
$ lerna publish --repo-version 1.0.1# applies version and skips `Select a new version for...` prompt
når køre med dette flag, publish
vil springe versionen udvælgelse prompt og bruge den angivne version. Nyttigt til at omgå brugerinputprompten, hvis du allerede ved, hvilken version du skal offentliggøre.
–message, -m
når køre med dette flag, publish
vil bruge den medfølgende besked, når begå versionen opdateringer til offentliggørelse. Nyttigt til at integrere lerna i projekter, der forventer, at commit-meddelelser overholder visse retningslinjer, såsom projekter, der bruger borger og/eller semantisk frigivelse.
hvis meddelelsen indeholder %s
, erstattes den med det nye globale versionsversionsnummer forud for et “v”. Bemærk, at dette kun gælder, når du bruger standard “fast” versionstilstand, da der ikke er nogen “global” version, når du bruger --independent
.
opdateret
$ lerna updated
Kontroller, hvilke packages
der er ændret siden den sidste udgivelse (det sidste git-tag).
Lerna bestemmer det sidste Git-tag, der er oprettet, og kører git diff --name-only v6.8.1
for at få alle filer ændret siden det tag. Det returnerer derefter en række pakker, der har en opdateret fil.
Bemærk, at konfigurationen for kommandoen publish
også påvirker kommandoen updated
. For eksempel config.publish.ignore
–json
$ lerna updated --json
når du kører med dette flag, updated
returnerer en række objekter i følgende format:
rens
$ lerna clean
Fjern mappen node_modules
fra alle pakker.
lerna clean
respekterer flagene --ignore
, --scope
og --yes
(se flag).
diff
$ lerna diff $ lerna diff# diff a specific package$ lerna diff package-name
Diff alle pakker eller en enkelt pakke siden sidste udgivelse.
svarende til
lerna updated
. Denne kommando kørergit diff
.
ls
$ lerna ls
liste alle de offentlige pakker i den aktuelle Lerna repo.
lerna ls
respekterer flagene --ignore
og --scope
(se flag).
–json
$ lerna ls --json
når du kører med dette flag, ls
returnerer en række objekter i følgende format:
Kør
Kør et npm-script i hver pakke, der indeholder scriptet. En dobbelt bindestreg (--
) er nødvendig for at videregive stiplede argumenter til scriptudførelsen.
lerna run
respekterer --concurrency
, --scope
, --ignore
, --stream
, og --parallel
flag (se flag).
$ lerna run --scope my-component test
Bemærk: Det tilrådes at begrænse omfanget af denne kommando (og
lerna exec
, nedenfor), når du bruger--parallel
– flaget, da gydning af snesevis af underprocesser kan være skadeligt for din Skals ligevægt (eller for eksempel maksimal filbeskrivelsesgrænse). YMMV
udfør
$ lerna exec -- <command> # runs the command in all packages$ lerna exec -- rm -rf ./node_modules$ lerna exec -- protractor conf.js
Kør en vilkårlig kommando i hver pakke. En dobbelt-dash (--
) er nødvendig for at passere stiplede flag til den skabte kommando, men er ikke nødvendig, når alle argumenterne er positionelle.
lerna exec
respekterer --concurrency
, --scope
, --ignore
, og --parallel
flag (se flag).
$ lerna exec --scope my-component -- ls -la
for at gyde langvarige processer skal du passere --parallel
flag:
# transpile all modules as they change in every package$ lerna exec --parallel -- babel src -d lib -w
du kan også få navnet på den aktuelle pakke gennem miljøvariablen LERNA_PACKAGE_NAME
:
$ lerna exec -- npm view $LERNA_PACKAGE_NAME
du kan også køre et script placeret i root dir, i en kompliceret dir struktur gennem miljøvariablen LERNA_ROOT_PATH
:
$ lerna exec -- node $LERNA_ROOT_PATH/scripts/some-script.js
tip: kommandoerne gydes parallelt ved hjælp af den givne samtidighed (undtagen med
--parallel
). Udgangen ledes igennem, så ikke deterministisk. Hvis du vil køre kommandoen i den ene pakke efter den anden, skal du bruge den sådan:
$ lerna exec --concurrency 1 -- ls -la
–bail
$ lerna exec --bail=<boolean> <command>
dette flag betyder, om kommandoen exec
skal standse udførelsen, når der opstår en fejl, der kastes af en af de opfostrede underprocesser. Dens standardværdi er true
.
Importer
$ lerna import <path-to-external-repository>
Importer pakken på <path-to-external-repository>
, med commit historie, til packages/<directory-name>
. Oprindelige begå forfattere, datoer og meddelelser bevares. Forpligtelser anvendes på den nuværende filial.
dette er nyttigt til at samle allerede eksisterende enkeltstående pakker i en Lerna repo. Hver forpligtelse ændres for at foretage ændringer i forhold til pakkekataloget. Så for eksempel vil den forpligtelse, der tilføjede package.json
, i stedet tilføje packages/<directory-name>/package.json
.
Misc
Lerna logger på en lerna-debug.log
fil (samme som npm-debug.log
), når den støder på en fejl, der kører en kommando.
Lerna har også støtte til scoped pakker.
kører lerna
uden argumenter viser alle kommandoer/indstillinger.
lerna.json
{ "lerna": "2.0.0", "version": "1.1.3", "commands": { "publish": { "ignore": }, "bootstrap": { "ignore": "component-*" } }, "packages": }
-
lerna
: den aktuelle version af Lerna bliver brugt. -
version
: den aktuelle version af lageret. -
commands.publish.ignore
: en række globs, der ikke vil blive inkluderet ilerna updated/publish
. Brug dette til at forhindre publicering af en ny version unødigt for ændringer, såsom fastsættelse af enREADME.md
skrivefejl. -
commands.bootstrap.ignore
: en række globs, der ikke vil blive bootstrapped, når du kører kommandoenlerna bootstrap
. -
commands.bootstrap.scope
: en række globs, der begrænser, hvilke pakker der vil blive bootstrapped, når du kører kommandoenlerna bootstrap
. -
packages
: vifte af globs til brug som pakke steder.
fælles devDependencies
mest devDependencies
kan trækkes op til roden af en Lerna repo.
dette har et par fordele:
- alle pakker bruger den samme version af en given afhængighed
- kan holde afhængigheder ved roden opdateret med et automatiseret værktøj som GreenKeeper
- Afhængighedsinstallationstiden reduceres
- mindre lagerplads er nødvendig
Bemærk, at devDependencies
tilvejebringelse af “binære” eksekverbare filer, der er bruges af NPM-scripts skal stadig installeres direkte i hver pakke, hvor de bruges.
for eksempel er afhængigheden nsp
nødvendig i dette tilfælde for lerna run nsp
(og npm run nsp
i pakkens mappe) for at fungere korrekt:
{ "scripts": { "nsp": "nsp" }, "devDependencies": { "nsp": "^2.3.3" }}
flag
indstillinger til Lerna kan komme fra konfiguration (lerna.json
) eller på kommandolinjen. Derudover muligheder i config kan leve på det øverste niveau eller kan anvendes til bestemte kommandoer.
eksempel:
{ "lerna": "x.x.x", "version": "1.2.0", "exampleOption": "foo", "command": { "init": { "exampleOption": "bar", } },}
i dette tilfælde exampleOption
vil være ” foo “for alle kommandoer undtagen init
, hvor det vil være”bar”. I alle tilfælde kan det tilsidesættes til” base ” på kommandolinjen med --example-option=baz
.
–samtidighed
hvor mange tråde der skal bruges, når Lerna paralleliserer opgaverne (standard til 4
)
$ lerna publish --concurrency 1
–scope
Scopes en kommando til en delmængde af pakker.
$ lerna exec --scope my-component -- ls -la
$ lerna run --scope toolbar-* test
–siden
når du udfører et script eller en kommando, skal du omfatte handlingen til pakker, der er blevet opdateret siden den angivne ref
. Hvis ref
ikke er angivet, er det som standard det nyeste tag.
liste indholdet af pakker, der er ændret siden den seneste tag:
$ lerna exec --since -- ls -la
Kør testene for alle pakker, der er ændret siden master
:
$ lerna run test --since master
liste over alle pakker, der er ændret siden some-branch
:
$ lerna ls --since some-branch
dette kan være særligt nyttigt, når det bruges i CI, hvis du kan få den målgren, en PR vil gå ind i, fordi du kan bruge det som ref
til --since
mulighed. Dette fungerer godt for PR ‘ er, der går ind i master såvel som funktionsgrene.
–Ignorer
ekskluderer en delmængde af pakker, når du kører en kommando.
$ lerna bootstrap --ignore component-*
ignore
– flaget, når det bruges med kommandoen bootstrap
, kan også indstilles i lerna.json
under commands.bootstrap
– tasten. Kommandolinjeflagget vil tage præcendence over denne mulighed.
eksempel
{ "lerna": "2.0.0", "version": "0.0.0", "commands": { "bootstrap": { "ignore": "component-*" } }}
tip: glob matches med pakkenavnet defineret i
package.json
, ikke det mappenavn, pakken lever i.
–Inkluder-filtrerede-afhængigheder
Bemærk: Dette vil tilsidesætte flagene
--scope
og--ignore
.dvs.en pakke, der matches af
--ignore
– flaget, vil stadig blive bootstrapped, hvis den er afhængig af en anden pakke, der bliver bootstrapped.
dette er nyttigt i situationer, hvor du vil “konfigurere” en enkelt pakke, der er afhængig af, at andre pakker konfigureres.
$ lerna bootstrap --scope my-component --include-filtered-dependencies# my-component and all of its dependencies will be bootstrapped
–loglevel
hvilket niveau af logfiler at rapportere. Ved fejl er alle logfiler skrevet til lerna-debug.log ind i den aktuelle arbejdsmappe.
alle logfiler på et højere niveau end indstillingen vises. Standard er “info”.
–maks-buffer
Indstil en maks.bufferlængde for hvert underliggende procesopkald. Nyttigt, for eksempel når nogen vil importere en repo med en større mængde forpligtelser, mens de kører lerna import
. I så fald er den indbyggede bufferlængde muligvis ikke tilstrækkelig.
–ingen sortering
som standard udføres alle opgaver på pakker i topologisk sorteret rækkefølge for at respektere afhængighedsforholdene for de pågældende pakker. Cyklusser brydes på en bedst mulig måde på en måde, der ikke garanteres at være konsistente på tværs af Lerna-påkaldelser.
topologisk sortering kan forårsage flaskehalse i samtidighed, hvis der er et lille antal pakker med mange afhængige, eller hvis nogle pakker tager uforholdsmæssigt lang tid at udføre. Indstillingen --no-sort
deaktiverer sortering og udfører i stedet opgaver i vilkårlig rækkefølge med maksimal samtidighed.
denne indstilling kan også hjælpe, hvis du kører flere “se” kommandoer. Da lerna run
vil udføre kommandoer i topologisk sorteret rækkefølge, kan det ende med at vente på en kommando, før du går videre. Dette vil blokere udførelsen, når du kører “se” kommandoer, da de typisk aldrig slutter. Et eksempel på en “ur” kommando kører babel
med --watch
CLI flag.
–hoist
installer eksterne afhængigheder, der matcher glob
ved repo-roden, så de er tilgængelige for alle pakker. Eventuelle binære filer fra disse afhængigheder vil blive knyttet til dependent package node_modules/.bin/
mapper, så de er tilgængelige for npm-scripts. Hvis indstillingen er til stede, men ingen glob
er givet, er standard **
(hejs alt). Denne indstilling påvirker kun kommandoen bootstrap
.
$ lerna bootstrap --hoist
for baggrund på --hoist
, se hejsedokumentationen.
Bemærk: Hvis pakker afhænger af forskellige versioner af en ekstern afhængighed, vil den mest anvendte version blive hejst, og en advarsel vil blive udsendt.
–nohoist
installer ikke eksterne afhængigheder, der matcher glob
ved repo-roden. Dette kan bruges til at fravælge hejsning for visse afhængigheder.
$ lerna bootstrap --hoist --nohoist=babel-*
–npm-klient
installer eksterne afhængigheder ved hjælp af install
. Skal være en eksekverbar, der ved, hvordan man installerer npm-afhængigheder.
$ lerna bootstrap --npm-client=yarn
kan også konfigureres i lerna.json
:
{ ... "npmClient": "yarn"}
–brug-arbejdsområder
muliggør integration med Garnarbejdsområder (tilgængelig siden [email protected]+).
værdierne i arrayet er de kommandoer, hvor Lerna vil delegere operation til garn (i øjeblikket kun bootstrapping).
hvis --use-workspaces
er sandt, vil packages
blive tilsidesat af værdien fra package.json/workspaces.
kan også konfigureres i lerna.json
:
{ ... "npmClient": "yarn", "useWorkspaces": true}
–stream
Stream output fra underordnede processer med det samme, forud for det oprindelige Pakkenavn. Dette gør det muligt at Interleaved output fra forskellige pakker.
$ lerna run watch --stream
–parallel
svarende til --stream
, men fuldstændig ignorerer samtidighed og topologisk sortering, kører en given kommando eller script straks i alle matchende pakker med præfikset streaming output. Dette er det foretrukne flag for langvarige processer som babel src -d lib -w
Kør over mange pakker.
$ lerna exec --parallel -- babel src -d lib -w
–registry
når du kører med dette flag, vil videresendte npm-kommandoer bruge det angivne register til din pakke(er).
dette er nyttigt, hvis du ikke eksplicit vil konfigurere din registreringsdatabasekonfiguration i hele din pakke.json filer individuelt, når f.eks. ved hjælp af private registre.
–temp-tag
når det er bestået, ændrer dette flag standardudgivelsesprocessen ved først at offentliggøre alle ændrede pakker til et midlertidigt dist-tag (lerna-temp
) og derefter flytte den eller de nye versioner til standard dist-tag (latest
).
dette er generelt ikke nødvendigt, da Lerna vil offentliggøre pakker i topologisk rækkefølge (alle afhængigheder før afhængige) som standard.
guiden
hvis du foretrækker vejledning til cli (hvis du er ved at begynde at bruge lerna eller introducere det til et nyt hold), kan du måske lide Lerna-guiden. Det vil føre dig gennem en række veldefinerede trin: