työkalu JavaScript-projektien hallintaan useilla paketeilla.

  • Tietoja
  • Aloittamisesta
  • Miten Se Toimii
  • Vianetsintä
  • Komennot
  • Misc
  • Lerna.json
  • Flags

noin

suurten koodibaasien jakaminen erillisiksi itsenäisesti versioiduiksi paketeiksi on erittäin hyödyllistä koodin jakamisessa. Muutosten tekeminen monissa arkistoissa on kuitenkin sotkuista ja vaikeaa seurata, ja arkistojen testaaminen monimutkaistuu todella nopeasti.

näiden (ja monien muiden) ongelmien ratkaisemiseksi jotkut projektit järjestävät koodipakettinsa monipakettivarastoihin (joita kutsutaan joskus monorepoiksi). Projektit kuten Babel, React, Angular, Ember, Meteor, Jest ja monet muut kehittävät kaikki pakettinsa yhdessä arkistossa.

Lerna on työkalu, joka optimoi työnkulun monipakkausvarastojen hallinnan git: llä ja npm: llä.

Lerna voi myös vähentää useiden pakettien kopioiden aika – ja tilavaatimuksia kehitys-ja rakennusympäristöissä-yleensä huonona puolena on projektin jakaminen useisiin erillisiin NPM-paketteihin. Katso lisätietoja nostoasiakirjoista.

miltä näyttää Lerna repo?

siinä on oikeastaan hyvin vähän. Sinulla on tiedostojärjestelmä, joka näyttää tältä:

my-lerna-repo/ package.json packages/ package-1/ package.json package-2/ package.json

mitä Lerna voi tehdä?

Lernan kaksi ensisijaista käskyä ovat lerna bootstrap ja lerna publish.

bootstrap liittää repon riippuvuudet yhteen. publish auttaa päivitettyjen pakettien julkaisemisessa.

alku

alla olevat ohjeet ovat lernalle 2.X. suosittelemme käyttämään sitä sijasta 1.x uudelle Lerna-projektille. Tarkista wiki, jos haluat nähdä 1.x README.

aloitetaan asentamalla Lerna globaalisti npm: llä.

$ npm install --global lerna

seuraavaksi luodaan uusi git-arkisto:

$ git init lerna-repo$ cd lerna-repo

ja nyt tehdään siitä Lerna repo:

$ lerna init

arkistosi pitäisi nyt näyttää tältä:

lerna-repo/ packages/ package.json lerna.json

tämä luo lerna.json – asetustiedoston sekä packages – kansion.

miten se toimii

Lernan avulla voit hallita projektia käyttämällä jompaakumpaa kahdesta moodista: kiinteää tai itsenäistä.

Fixed/Locked mode (oletusarvo)

Fixed mode Lerna-projektit toimivat yhdellä versiorivillä. Versio säilytetään lerna.json – tiedostossa projektin juuressa version – näppäimen alla. Kun suoritat lerna publish, jos moduulia on päivitetty edellisen julkaisun jälkeen, se päivitetään julkaisemaasi uuteen versioon. Tämä tarkoittaa, että julkaiset uuden version paketista vain silloin, kun sinun tarvitsee.

tätä moodia Babel käyttää tällä hetkellä. Käytä tätä, jos haluat automaattisesti sitoa kaikki pakettiversiot yhteen. Yksi ongelma tässä lähestymistavassa on, että merkittävä muutos missä tahansa paketissa johtaa siihen, että kaikki paketit saavat uuden suuren version.

Independent mode (–independent)

Independent mode Lerna-projektien avulla ylläpitäjät voivat kasvattaa pakettiversioita toisistaan riippumatta. Joka kerta, kun julkaiset, saat kehote kunkin paketin, joka on muuttunut määrittää, onko se laastari, pieni, suuri tai mukautetun muutoksen.

Independent-tilassa voi tarkentaa versioiden päivittämistä jokaiselle paketille ja se on järkevää komponenttiryhmälle. Yhdistämällä tämä tila jotain semanttinen-release tekisi siitä vähemmän tuskallista. (Atlassian/Lerna-semanttinen-julkaisu).

version avain lerna.json jätetään huomiotta itsenäisessä tilassa.

Vianetsintä

jos kohtaat ongelmia Lernan käytön aikana, tutustu Vianetsintäasiakirjaamme, josta saatat löytää vastauksen ongelmaasi.

Usein kysyttyä

KS. FAQ.md.

komennot

init

$ lerna init

Luo uusi Lerna repo tai päivitä olemassa oleva repo nykyiseen Lernan versioon.

Lerna olettaa, että repo on jo alustettu git init.

suoritettaessa tämä komento:

  1. lisää lerna nimellä devDependency package.json, jos sitä ei ole jo olemassa.
  2. luo lerna.json asetustiedosto version numeron tallentamiseen.

esimerkki uudesta git-reposta:

$ lerna initlerna info version v2.0.0lerna info Updating package.jsonlerna info Creating lerna.jsonlerna success Initialized Lerna files

–independent, – I

$ lerna init --independent

tämä lippu käskee Lernaa käyttämään itsenäistä versiointitapaa.

— exact

$ lerna init --exact

oletusarvoisesti lerna init käyttää huolellisuusaluetta lisätessään tai päivittäessään lerna: n paikallista versiota, aivan kuten npm install --save-dev lerna.

säilyttää lerna 1.X käyttäytyminen ”tarkka” vertailu, pass tämä lippu. Se määrittää lerna.json: n valvomaan tarkasti kaikkien myöhempien teloitusten vastaavuutta.

{ "lerna": "2.0.0", "command": { "init": { "exact": true } }, "version": "0.0.0"}

bootstrap

$ lerna bootstrap

Bootstrap nykyisen Lernan repon pakkaukset. Asentaa kaikki riippuvuudet ja yhdistää kaikki ristiin riippuvuudet.

suoritettaessa tämä komento:

  1. npm install kaikki ulkoiset riippuvuudet kunkin paketin.
  2. symboloivat kaikki lernat packages, jotka ovat toistensa riippuvuuksia.
  3. npm prepublish kaikki bootstraped-pakkaukset.

lerna bootstrap kunnioittaa --ignore, --scope ja --include-filtered-dependencies lippuja(KS.

siirrä ylimääräiset argumentit npm-asiakkaalle sijoittamalla ne jälkeen --:

$ lerna bootstrap -- --production --no-optional

voidaan määrittää myös lerna.json:

{ ... "npmClient": "yarn", "npmClientArgs": }

miten bootstrap toimii

käytetään babel esimerkkinä.

  • babel-generator ja source-map (mm.) ovat riippuvuuksia babel-core.
  • babel-core’s package.json listaa molemmat paketit avaimiksi kohdassa dependencies, kuten alla on esitetty.
// babel-core package.json{ "name": "babel-core", ... "dependencies": { ... "babel-generator": "^6.9.0", ... "source-map": "^0.5.0" }}
  • lerna tarkistaa, onko jokainen riippuvuus myös osa Lernan Repoa.
    • tässä esimerkissä babel-generator voi olla sisäinen riippuvuus, kun taas source-map on aina ulkoinen riippuvuus.
    • babel-generator package.json babel-core packages/babel-generator tyytyy packages/babel-generator sisäiseen riippuvuuteen.
    • source-map on npm install ed (tai yarned) kuin normaali.
  • packages/babel-core/node_modules/babel-generator symlinks to packages/babel-generator
  • This allowing sisäkkäinen directory imports

Notes:

  • kun paketissa oleva riippuvuusversio ei tyydy repossa olevaan samannimiseen pakettiin, se on npm installed (tai yarned) kuten normaali.
  • Dist-tagit, kuten latest, eivät täytä semver-alueita.
  • ympyränmuotoiset riippuvuudet johtavat ympyränmuotoisiin symlinkkeihin, jotka voivat vaikuttaa editoriin/IDE: hen.

Webstorm lukkiutuu, kun ympyränmuotoiset symlinkit ovat läsnä. Voit estää tämän lisäämällä node_modules ohitettujen tiedostojen ja kansioiden luetteloon Preferences | Editor | File Types | Ignored files and folders.

julkaise

$ lerna publish

Julkaise paketteja nykyisessä Lerna-projektissa. Suoritettaessa tämä komento tekee seuraavasti:

luo päivitetyistä paketeista uuden version. Pyytää uutta versiota. Luo uuden git commit/tagin julkaistaessa npm: ään.

tarkemmin sanottuna tämä komento:

  1. Suorita lerna updated vastaava arvo määrittääksesi, mitkä paketit on julkaistava.
  2. tarvittaessa korotetaan version avain lerna.json.
  3. Päivitä package.json kaikki päivitetyt paketit uusiksi versioikseen.
  4. Päivitä kaikki päivitettyjen pakettien riippuvuudet uusilla versioilla, tarkennettuna (^).
  5. Luo uusi git-toimitus ja tagi uudelle versiolle.
  6. Julkaise päivitetyt paketit npm: ään.

Lerna ei julkaise paketteja, jotka on merkitty yksityisiksi ("private": true package.json).

–tarkka

$ lerna publish --exact

ajettaessa tällä lipulla, publish määrittää päivitetyt riippuvuudet päivitetyissä paketeissa tarkasti (ilman välimerkkejä) sen sijaan, että ne olisivat semver-yhteensopivia (kanssa ^).

lisätietoja on pakkauksessa.JSON riippuvuuksien dokumentointi.

–npm-tagi

$ lerna publish --npm-tag=next

kun ajetaan tällä lipulla, publish julkaisee npm: ään annetulla npm dist-tagilla (oletusarvo latest).

tällä valinnalla voidaan julkaista prerelease tai beta versio.

Huom.: latest tagi on se, jota käytetään, kun käyttäjä suorittaa npm install my-package. Toisen tunnisteen asentamiseksi käyttäjä voi suorittaa npm install [email protected].

–kanarialintu, – c

$ lerna publish --canary$ lerna publish --canary=beta

tällä lipulla ajettaessa publish julkaisee paketteja rakeisemmin (per toimitus). Ennen npm: ään julkaisemista se luo uuden version – tägin ottamalla nykyisen version, siirtämällä sen seuraavaan pienempään versioon, lisäämällä siihen metaliitteen (oletusarvo alpha) ja lisäämällä nykyisen git sha: n (ex: 1.0.0 tulee 1.1.0-alpha.81e3b443).

tämän lipun käyttötapaus on toimituskohtainen julkaisu tai iltajulkaisu.

–tavanomainen-toimitukset

$ lerna publish --conventional-commits

kun suoritus suoritetaan tällä lipulla, publish käyttää tavanomaisen Toimituspäätöksen määritystä version bumpin määrittämiseen ja luo MUUTOSLOGIN

–git-kauko

$ lerna publish --git-remote upstream

kun suoritus suoritetaan tällä lipulla, publish työntää git-muutokset määrättyyn kauko-ohjaimeen originsijasta.

— skip-git

$ lerna publish --skip-git

kun ajetaan tällä lipulla, publish julkaisee npm: lle ajamatta yhtään git-komentoa.

julkaise vain npm: ään; ohita toimittaminen, merkitseminen ja GIT-muutosten työntäminen (tämä vaikuttaa vain julkaisemiseen).

–kun skip-npm

$ lerna publish --skip-npm

ajetaan tällä lipulla, publish päivittää kaikki package.json pakettiversiot ja riippuvuusversiot, mutta se ei varsinaisesti julkaise paketteja npm: ään.

tämä oli hyödyllinen korjausliike npm-ongelmalle, joka on sittemmin korjattu. Kun julkaiset Readme-muutoksilla, käytä --skip-npm ja tee lopullinen npm publish käsin jokaiselle paketille.

tämä lippu voidaan yhdistää --skip-git: n kanssa vain versioiden ja riippuvuuksien päivittämiseen ilman, että siihen liitetään, merkitään, työnnetään tai julkaistaan.

vain päivitysversiot ja riippuvuudet; eivät varsinaisesti julkaise (tämä koskee vain julkaisemista).

–pakota julkaisemaan

$ lerna publish --force-publish=package-2,package-4# force publish all packages$ lerna publish --force-publish=*

kun suoritetaan tällä lipulla, publish pakottaa julkaisemaan määritellyt paketit (pilkulla erotellut) tai kaikki paketit käyttäen *.

tämä ohittaa muuttuneiden pakettien tarkistamisen lerna updated ja pakottaa päivitettäväksi paketin, jossa ei ollut git diff muutosta.

–Kyllä

$ lerna publish --canary --yes# skips `Are you sure you want to publish the above changes?`

kun ajetaan tällä lipulla, publish ohittaa kaikki vahvistuskutsut. Hyödyllinen jatkuvassa integroinnissa (Ci), jotta voit automaattisesti vastata julkaisuvahvistuspyyntöön.

— cd-versio

kun ajetaan tällä lipulla, publish ohittaa versionvalintakehotteen (itsenäisessä tilassa) ja käyttää seuraavaa määrättyä semanttista versiota. Sinun täytyy silti käyttää lippua --yes välttääksesi kaikki kehotteet. Tämä on hyödyllistä, kun rakentamisjärjestelmät on julkaistava ilman komentokehotteita. Toimii sekä normaaleissa että itsenäisissä tiloissa.

–pre-id

— repo-versio

$ lerna publish --repo-version 1.0.1# applies version and skips `Select a new version for...` prompt

kun ajetaan tällä lipulla, publish ohittaa versionvalintayhteyden ja käyttää määritettyä versiota. Hyödyllinen käyttäjän syötekehotteen ohittamiseen, jos tiedät jo minkä version julkaista.

— message, – m

kun ajetaan tällä lipulla, publish käyttää annettua viestiä toimittaessaan versiopäivityksiä julkaistavaksi. Hyödyllinen integroitaessa lernaa hankkeisiin, jotka odottavat commit Messagesin noudattavan tiettyjä ohjeita, kuten hankkeisiin, joissa käytetään commitizenia ja/tai semanttista julkaisua.

jos viestissä on %s, se korvataan uudella maailmanlaajuisella versionumerolla, jonka etuliitteenä on ”v”. Huomaa, että tämä koskee vain oletusversiotilaa ”kiinteä” käytettäessä, koska --independentkäytettäessä ei ole ”yleistä” versiota.

päivitetty

$ lerna updated

tarkista, mitkä packages ovat muuttuneet edellisen julkaisun jälkeen (viimeinen git-merkintä).

Lerna määrittää viimeisen luodun git-tunnisteen ja ajaa git diff --name-only v6.8.1 saadakseen kaikki tiedostot muutettua tunnisteen jälkeen. Sen jälkeen se palauttaa joukon paketteja, joilla on päivitetty tiedosto.

huomaa, että publish – komennon konfigurointi vaikuttaa myös updated – käskyyn. Esimerkiksi config.publish.ignore

–json

$ lerna updated --json

kun ajetaan tällä lipulla, updated palauttaa joukon kohteita seuraavassa muodossa:

puhdista

$ lerna clean

Poista node_modules – kansio kaikista paketeista.

lerna clean kunnioittaa --ignore, --scope ja --yes lippuja(KS.

diff

$ lerna diff $ lerna diff# diff a specific package$ lerna diff package-name

Vertaa kaikkia pakkauksia tai yhtä pakkausta edellisen julkaisun jälkeen.

samanlainen kuin lerna updated. Tämä komento kulkee git diff.

ls

$ lerna ls

listaa kaikki nykyisen Lerna repon julkiset paketit.

lerna ls kunnioittaa --ignore ja --scope lippuja(KS.

–json

$ lerna ls --json

kun ajetaan tällä lipulla, ls palauttaa joukon esineitä seuraavassa muodossa:

aja

aja npm-skripti jokaiseen pakettiin, joka sisältää kyseisen skriptin. Kaksoisviiva (--) tarvitaan, jotta murretut argumentit voidaan siirtää skriptin suoritukseen.

lerna run kunnioittaa --concurrency, --scope, --ignore, --stream, ja --parallel liput (katso Liput).

$ lerna run --scope my-component test

Huomautus: on suositeltavaa rajoittaa tämän komennon (ja lerna exec alla) soveltamisalaa käytettäessä --parallel – lippua, koska kymmenet aliprosessit voivat olla haitallisia komentorivin rauhallisuudelle (tai esimerkiksi tiedostokuvauksen enimmäisrajalle). YMMV

exec

$ lerna exec -- <command> # runs the command in all packages$ lerna exec -- rm -rf ./node_modules$ lerna exec -- protractor conf.js

Suorita mielivaltainen komento jokaisessa paketissa. Kaksoisviiva (--) on välttämätön rikottujen lippujen välittämiseksi syntyneelle komennolle, mutta se ei ole tarpeen, kun kaikki argumentit ovat asemallisia.

lerna exec kunnioittaa --concurrency, --scope, --ignore, ja --parallel liput (katso Liput).

$ lerna exec --scope my-component -- ls -la

kutemaan pitkäjänteisesti, ohittaa --parallel lipun:

# transpile all modules as they change in every package$ lerna exec --parallel -- babel src -d lib -w

voit myös saada nykyisen paketin nimen ympäristömuuttujan kautta LERNA_PACKAGE_NAME:

$ lerna exec -- npm view $LERNA_PACKAGE_NAME

voit myös suorittaa skriptin, joka sijaitsee juuri dir, monimutkaisessa dir-rakenteessa ympäristömuuttujan kauttaLERNA_ROOT_PATH:

$ lerna exec -- node $LERNA_ROOT_PATH/scripts/some-script.js

Vihje: komennot syntyvät rinnakkain käyttäen annettua samanaikaisuutta (paitsi jos --parallel). Lähtö on putkitettu läpi, joten ei deterministinen. Jos haluat suorittaa komennon paketissa toisensa jälkeen, käytä sitä näin:

$ lerna exec --concurrency 1 -- ls -la

–bail

$ lerna exec --bail=<boolean> <command>

tämä lippu merkitsee sitä, pitäisikö exec – komennon keskeyttää täytäntöönpano, jos siihen tulee virhe, jonka on heittänyt jokin syntyneistä aliprosesseista. Sen oletusarvo on true.

import

$ lerna import <path-to-external-repository>

Import the package at <path-to-external-repository>, with commit history, into packages/<directory-name>. Alkuperäiset toimitusohjeet, päivämäärät ja viestit säilyvät. Toimituksia sovelletaan nykyiseen haaraan.

tämä on hyödyllinen koottaessa olemassa olevia itsenäisiä paketteja Lerna repoksi. Jokaista toimitusta muokataan tekemään muutoksia pakettihakemistoon. Niinpä esimerkiksi toimitus, joka lisäsi package.json, lisää sen sijaan packages/<directory-name>/package.json.

Misc

Lerna kirjautuu lerna-debug.log – tiedostoon (sama kuin npm-debug.log) kohdatessaan komennossa virheen.

Lernalla on myös tuki scopatuille paketeille.

ajaminen lerna ilman argumentteja näyttää kaikki komennot / valitsimet.

lerna.json

{ "lerna": "2.0.0", "version": "1.1.3", "commands": { "publish": { "ignore": }, "bootstrap": { "ignore": "component-*" } }, "packages": }
  • lerna: Lernan nykyinen versio on käytössä.
  • version: arkiston nykyinen versio.
  • commands.publish.ignore: joukko Globeja, jotka eivät sisälly lerna updated/publish. Käytä tätä estääksesi uuden version julkaisemisen tarpeettomasti muutosten, kuten README.md kirjoitusvirheen korjaamisen, vuoksi.
  • commands.bootstrap.ignore: joukko Globeja, joita ei bootstrapata ajettaessa lerna bootstrap – komentoa.
  • commands.bootstrap.scope: joukko globs, joka rajoittaa mitkä paketit käynnistetään suoritettaessa lerna bootstrap – komentoa.
  • packages: joukko globs käyttää paketti sijainnit.

Yleiset devdependenssit

useimmat devDependencies voidaan vetää Lerna repon juureen asti.

tästä on muutamia etuja:

  • kaikki paketit käyttävät samaa versiota tietystä riippuvuudesta
  • voi pitää riippuvuudet juurella ajan tasalla automatisoidulla työkalulla, kuten GreenKeeper
  • riippuvuus asennusaika lyhenee
  • vähemmän tallennustilaa tarvitaan

huomaa, että devDependencies tarjoaa ”binäärisiä” suoritettavia tiedostoja, jotka käytetään npm-skriptejä, jotka on edelleen asennettava suoraan jokaiseen pakettiin, jossa niitä käytetään.

esimerkiksi nsp riippuvuus on tässä tapauksessa välttämätön, jotta lerna run nsp (ja npm run nsp paketin hakemistossa) toimisi oikein:

{ "scripts": { "nsp": "nsp" }, "devDependencies": { "nsp": "^2.3.3" }}

Liput

vaihtoehdot Lernalle voivat tulla konfiguraatiosta (lerna.json) tai komentoriviltä. Lisäksi config-asetukset voivat elää ylätasolla tai niitä voidaan käyttää tiettyihin komentoihin.

esimerkki:

{ "lerna": "x.x.x", "version": "1.2.0", "exampleOption": "foo", "command": { "init": { "exampleOption": "bar", } },}

tällöin exampleOption on ”foo ”kaikilla komennoilla paitsi init, jossa se on”bar”. Kaikissa tapauksissa se voidaan ohittaa komentorivillä” baz ” merkillä --example-option=baz.

— concurrency

kuinka monta säiettä käytetään, kun Lerna parallelizes tehtävät (oletusarvo 4)

$ lerna publish --concurrency 1

–scope

scope a command to a subset of packages.

$ lerna exec --scope my-component -- ls -la
$ lerna run --scope toolbar-* test

–koska

suoritettaessa skriptiä tai komentoa, laajenna toiminto paketeille, jotka on päivitetty määritetyn refjälkeen. Jos ref ei ole määritetty, se oletusarvoisesti siirtyy viimeisimmälle tunnisteelle.

luetteloi viimeisimmän merkinnän jälkeen muuttuneiden pakkausten sisältö:

$ lerna exec --since -- ls -la

suorita testit kaikille pakkauksille, jotka ovat muuttuneet masterjälkeen:

$ lerna run test --since master

listaa kaikki sittemmin muuttuneet pakkaukset some-branch:

$ lerna ls --since some-branch

tämä voi olla erityisen hyödyllistä käytettäessä CI, jos voit saada kohdehaaran PR menee, koska voit käyttää sitä kuin ref --since vaihtoehto. Tämä toimii hyvin PRs menee master sekä ominaisuus oksat.

— ohita

ei sisällä pakettien osajoukkoa komennon suorittamisessa.

$ lerna bootstrap --ignore component-*

ignore lippu, kun sitä käytetään bootstrap – komennon kanssa, voidaan myös asettaa lerna.json commands.bootstrap – näppäimen alle. Komentorivilippu ohittaa tämän vaihtoehdon.

esimerkki

{ "lerna": "2.0.0", "version": "0.0.0", "commands": { "bootstrap": { "ignore": "component-*" } }}

Vihje: glob täsmää kohdassa package.json määriteltyyn paketin nimeen, ei hakemiston nimeen, jossa paketti asuu.

–sisällytä suodatetut riippuvuudet

Huom: Tämä ohittaa --scope ja --ignore liput.

eli --ignore lippua vastaava paketti on edelleen bootstrapattu, jos se on riippuvainen toisesta paketista, jota bootstrapataan.

tämä on hyödyllinen tilanteissa, joissa haluat ”perustaa” yhden paketin, joka perustuu muiden pakettien määrittämiseen.

$ lerna bootstrap --scope my-component --include-filtered-dependencies# my-component and all of its dependencies will be bootstrapped

–log level

What level of logs to report. Epäonnistuessa kaikki lokit kirjoitetaan Lerna-debugiin.Kirjaudu nykyiseen työhakemistoon.

kaikki asetusta korkeammat lokit on esitetty. Oletusarvo on ”info”.

— max-puskuri

Aseta puskurin enimmäispituus jokaiselle taustalla olevalle prosessipuhelulle. Hyödyllinen esimerkiksi silloin, kun joku haluaa tuoda repon suuremmalla määrällä toimituksia ajettaessa lerna import. Siinä tapauksessa sisäänrakennettu puskurin pituus ei välttämättä riitä.

— no-sort

oletuksena kaikki tehtävät suoritetaan paketeille topologisessa järjestyksessä kyseisten pakettien riippuvuussuhteiden mukaisesti. Syklit rikotaan parhaan työn perusteella tavalla, joka ei takaa johdonmukaisuutta Lernan invocationeissa.

topologinen lajittelu voi aiheuttaa samanaikaisia pullonkauloja, jos on pieni määrä paketteja, joista on paljon riippuvaisia, tai jos joidenkin pakettien toteuttaminen kestää suhteettoman kauan. Valitsin --no-sort poistaa lajittelun käytöstä ja suorittaa sen sijaan tehtäviä mielivaltaisessa järjestyksessä maksimaalisella samanaikaisuudella.

tämä asetus voi auttaa myös, jos suoritat useita ”watch” – komentoja. Koska lerna run suorittaa komennot topologisessa järjestyksessä, se voi päätyä odottamaan komentoa ennen siirtymistä eteenpäin. Tämä estää suorituksen, kun suoritat ”watch” – komentoja, koska ne eivät yleensä koskaan lopu. Esimerkki ”watch” – komennosta on käynnissä babel --watch CLI-lipulla.

–hoist

Asenna glob vastaavat ulkoiset riippuvuudet repo-juureen, jotta ne ovat kaikkien pakettien käytettävissä. Kaikki näiden riippuvuuksien binäärit linkitetään riippuvaiseen pakettiin node_modules/.bin/ hakemistoihin, joten ne ovat käytettävissä npm-skripteille. Jos valinta on olemassa, mutta ei glob annetaan oletusarvo on ** (hoist everything). Tämä asetus vaikuttaa vain bootstrap – komentoon.

$ lerna bootstrap --hoist

--hoist taustatiedot löytyvät hoist-dokumentaatiosta.

Huomautus: Jos paketit riippuvat ulkoisen riippuvuuden eri versioista, yleisimmin käytetty versio nostetaan ylös ja annetaan varoitus.

–nohoist

älä asenna glob vastaavia ulkoisia riippuvuuksia repojuureen. Tätä voidaan käyttää tiettyjen riippuvuuksien nostamisen kieltämiseen.

$ lerna bootstrap --hoist --nohoist=babel-*

–npm-asiakas

Asenna ulkoiset riippuvuudet käyttäen install. Täytyy olla suoritustiedosto, joka osaa asentaa npm-riippuvuudet.

$ lerna bootstrap --npm-client=yarn

voidaan konfiguroida myös lerna.json:

{ ... "npmClient": "yarn"}

–käyttö-työtilat

mahdollistaa integroinnin Lankatyötiloihin (saatavilla vuodesta [email protected]+).
taulukon arvot ovat komentoja, joissa Lerna delegoi toiminnan langalle (nykyisin vain bootstrapping).
jos --use-workspaces on totta, packages korvataan arvolla package.json/workspaces.
voidaan määrittää myös lerna.json:

{ ... "npmClient": "yarn", "useWorkspaces": true}

–stream

Stream output from child processs immediately, prefixed with the origining package name. Näin eri pakettien ulostulo voidaan lomittaa.

$ lerna run watch --stream

–rinnakkainen

samanlainen kuin --stream, mutta jättää täysin huomiotta samanaikaisuuden ja topologisen lajittelun, ajaen tietyn komennon tai komentosarjan välittömästi kaikissa vastaavissa paketeissa, joissa on etuliite streamaustuloksesta. Tämä on ensisijainen lippu pitkille prosesseille, kuten babel src -d lib -w ajaa monien pakettien yli.

$ lerna exec --parallel -- babel src -d lib -w

–Rekisteri

ajettaessa tällä lipulla eteenpäin lähetetyt npm-komennot käyttävät paketillesi määrättyä rekisteriä.

tästä on hyötyä, jos et halua määrittää rekisterikonfiguraatiota kaikkiin paketteihisi.JSON-tiedostot yksittäin, kun käytetään esimerkiksi yksityisiä rekistereitä.

— temp-tag

läpäistyään tämä lippu muuttaa oletusjulkaisuprosessia julkaisemalla ensin kaikki muutetut paketit väliaikaiseen dist-tagiin (lerna-temp) ja siirtämällä sitten uudet versiot dist-tagiin (latest).

tämä ei ole yleensä tarpeen, sillä Lerna julkaisee oletusarvoisesti paketit topologisessa järjestyksessä (kaikki riippuvuudet ennen riippuvuuksia).

Wizard

jos haluat Cli: lle opastusta (jos olet aloittamassa Lernan käyttöä tai esittelemässä sitä uudelle tiimille), saatat pitää lerna-wizardista. Se johtaa sinut läpi sarjan hyvin määriteltyjä vaiheita:

nykyiset tagit

Vastaa

Sähköpostiosoitettasi ei julkaista.