egy eszköz kezelésére JavaScript projektek több csomagot.

  • Mintegy
  • Első Lépések
  • Hogyan Működik
  • Hibaelhárítás
  • Parancsok
  • Egyéb
  • Lerna.json
  • Flags

About

a nagy kódbázisok felosztása különálló, függetlenül verziójú csomagokra rendkívül hasznos a kódmegosztáshoz. Azonban a módosítások végrehajtása sok tárolóban rendetlen és nehéz nyomon követni, és a tárolók közötti tesztelés nagyon gyorsan bonyolulttá válik.

ezeknek (és sok más) problémának a megoldására egyes projektek a kódbázisaikat többcsomagos tárolókba (néha monorepos-nak) szervezik. Az olyan projektek, mint a Babel, a React, az Angular, az Ember, a Meteor, A Jest és még sokan mások, minden csomagot egyetlen tárolóban fejlesztenek ki.

a Lerna egy olyan eszköz, amely optimalizálja a többcsomagos tárolók kezelését a git és az npm segítségével.

a Lerna csökkentheti a csomagok számos példányának idő – és térigényét fejlesztési és építési környezetben-általában hátránya, ha egy projektet több különálló NPM csomagra osztunk. A részleteket lásd az emelő dokumentációjában.

hogyan néz ki egy Lerna repo?

valójában nagyon kevés van benne. Van egy fájlrendszer, amely így néz ki:

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

mit tehet Lerna?

a Lerna két elsődleges parancsa a lerna bootstrapés a lerna publish.

bootstrap összekapcsolja a repo függőségeit. publish segít közzétenni a frissített csomagokat.

első lépések

az alábbi utasítások a Lerna 2-re vonatkoznak.x. javasoljuk, hogy használja az 1 helyett.x egy új Lerna projekthez. Ellenőrizze a wikit, ha látnia kell a 1.X README.

kezdjük a Lerna globális telepítésével az npm-Mel.

$ npm install --global lerna

ezután létrehozunk egy új git adattárat:

$ git init lerna-repo$ cd lerna-repo

és most alakítsuk át Lerna repóvá:

$ lerna init

a tárolónak most így kell kinéznie:

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

ez létrehoz egy lerna.json konfigurációs fájlt, valamint egy packages mappát.

hogyan működik

a Lerna lehetővé teszi a projekt kezelését a két mód egyikével: rögzített vagy független.

rögzített/zárolt mód (alapértelmezett)

rögzített módú Lerna projektek egyetlen verzióvonalon működnek. A verzió a lerna.json fájlban marad a projekt gyökerében a version kulcs alatt. A lerna publish futtatásakor, ha egy modult a legutóbbi kiadás óta frissítettek, akkor az új verzióra frissül. Ez azt jelenti, hogy csak akkor tesz közzé egy csomag új verzióját, amikor szüksége van rá.

ezt a módot használja Babel jelenleg. Használja ezt, ha automatikusan össze akarja kötni az összes csomagverziót. Az egyik probléma ezzel a megközelítéssel az, hogy bármely csomag jelentős változása azt eredményezi, hogy minden csomag Új Fő verzióval rendelkezik.

Independent mode (–independent)

Independent mode A Lerna projektek lehetővé teszik a karbantartók számára, hogy egymástól függetlenül növeljék a csomagverziókat. Minden alkalommal, amikor közzéteszi, minden megváltozott csomagra rákérdez, hogy meghatározza, hogy javítás, kisebb, nagyobb vagy egyéni módosításról van-e szó.

a független mód lehetővé teszi az egyes csomagok verzióinak pontosabb frissítését, és értelme van az összetevők egy csoportjának. Ennek a módnak a szemantikai felszabadítással való kombinálása kevésbé fájdalmas lenne. (Ezen már dolgozik az atlassian / lerna-semantic-release).

a version gombot lerna.json független módban figyelmen kívül hagyja.

hibaelhárítás

ha bármilyen probléma merül fel a Lerna használata közben, kérjük, olvassa el hibaelhárítási dokumentumunkat, ahol megtalálhatja a választ a problémára.

Gyakran Ismételt Kérdések

lásd FAQ.md.

parancsok

init

$ lerna init

hozzon létre egy új Lerna repót, vagy frissítsen egy meglévő repót a Lerna aktuális verziójára.

Lerna feltételezi, hogy a repót már inicializálták git init – vel.

futtatáskor ez a parancs:

  1. Add lerna mint devDependency a package.json, ha még nem létezik.
  2. hozzon létre egy lerna.json konfigurációs fájlt a version szám tárolásához.

példa kimenet egy új git repo:

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

–independent, – I

$ lerna init --independent

ez a zászló azt mondja Lerna használni független verziószámozási mód.

–exact

$ lerna init --exact

alapértelmezés szerint az lerna init caret tartományt fog használni a lernahelyi verziójának hozzáadásakor vagy frissítésekor, csakúgy, mint a npm install --save-dev lerna.

megtartani a lerna 1.x viselkedése “pontos” összehasonlítás, adja át ezt a zászlót. Konfigurálja a lerna.json – et, hogy pontos egyezést kényszerítsen az összes későbbi végrehajtásra.

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

bootstrap

$ lerna bootstrap

Bootstrap a csomagok az aktuális Lerna repo. Telepíti az összes függőségüket, és összekapcsolja a keresztfüggőségeket.

futtatáskor ez a parancs:

  1. npm install az egyes csomagok összes külső függősége.
  2. Symlink együtt minden Lerna packages amelyek függőségek egymástól.
  3. npm prepublish minden bootstrapped csomag.

lerna bootstrap tiszteletben tartja a --ignore, --scope és --include-filtered-dependencies jelzőket (lásd zászlók).

további argumentumok átadása az npm kliensnek azáltal, hogy --:

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

konfigurálható itt is lerna.json:

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

hogyan működik a bootstrap

használjuk a babel példát.

  • babel-generator és source-map(többek között) a babel-core függőségek.
  • babel-core‘s package.json mindkét csomagot kulcsként sorolja fel a dependencies – ben, az alábbiak szerint.
// babel-core package.json{ "name": "babel-core", ... "dependencies": { ... "babel-generator": "^6.9.0", ... "source-map": "^0.5.0" }}
  • Lerna ellenőrzi, hogy minden függőség része-e a Lerna repónak is.
    • ebben a példában a babel-generator lehet belső függőség, míg a source-map mindig külső függőség.
    • a babel-generator verziója package.json babel-core – ben kielégíti packages/babel-generator, átadva egy belső függőséget.
    • source-mapnpm installed (vagy yarn ed), mint a normál.
  • packages/babel-core/node_modules/babel-generator symlinks to packages/babel-generator
  • ez lehetővé teszi a beágyazott könyvtár importálását

Megjegyzések:

  • ha egy csomag függőségi verzióját nem elégíti ki egy azonos nevű csomag a repóban, akkor az npm installed (vagy yarn ed) lesz, mint a normál.
  • a Dist-címkék, mint például a latest, nem felelnek meg a semver tartományoknak.
  • a körkörös függőségek körkörös szimbolikus linkeket eredményeznek, amelyek hatással lehetnek a szerkesztőre/IDE-re.

a Webstorm bezáródik, ha kör alakú szimbolikus linkek vannak jelen. Ennek elkerülése érdekében adja hozzá az node_modules – et a Preferences | Editor | File Types | Ignored files and folders – ben figyelmen kívül hagyott fájlok és mappák listájához.

közzététel

$ lerna publish

csomagok közzététele az aktuális Lerna projektben. Futtatáskor ez a parancs a következőket teszi:

új kiadást hoz létre a frissített csomagokból. Kéri az új verziót. Létrehoz egy új git commit / tag a folyamat közzétételi npm.

pontosabban, ez a parancs:

  1. futtassa a lerna updated megfelelőt annak meghatározásához, hogy mely csomagokat kell közzétenni.
  2. ha szükséges, növelje a version gombot lerna.json.
  3. frissítse az összes frissített csomag package.json – jét az új verziókra.
  4. frissítse a frissített csomagok összes függőségét az új verziókkal, amelyeket egy caret (^) ad meg.
  5. hozzon létre egy új git commit and tag-et az új verzióhoz.
  6. frissített csomagok közzététele az npm-ben.

a Lerna nem teszi közzé azokat a csomagokat, amelyek privátként vannak megjelölve ("private": truea package.json – ben).

–exact

$ lerna publish --exact

ha ezzel a jelzővel fut, a publishpontosan megadja a frissített függőségeket a frissített csomagokban (írásjelek nélkül), ahelyett, hogy semver kompatibilis lenne (^ – vel).

további információkért lásd a csomagot.json függőségek dokumentációja.

–npm-tag

$ lerna publish --npm-tag=next

ha ezzel a jelzővel fut, a publisha megadott npm dist-címkével fog közzétenni az npm-ben (alapértelmezés szerint latest).

ez az opció prerelease vagy beta verzió közzétételére használható.

Megjegyzés: a latest címke az, amelyet a felhasználó a npm install my-packagefuttatásakor használ. Egy másik címke telepítéséhez a felhasználó futtathatja a npm install [email protected]parancsot.

–canary, – c

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

ha ezzel a jelzővel fut, publish részletesebb módon teszi közzé a csomagokat (elkötelezettségenként). Mielőtt közzétenné az npm-ben, létrehozza az új version címkét az aktuális version felvételével, a következő kisebb verzióhoz csatolva, hozzáadva a megadott meta utótagot (alapértelmezés szerint alpha), és hozzáfűzve az aktuális git sha-t (pl.: 1.0.0 1.1.0-alpha.81e3b443lesz).

ennek a jelzőnek a rendeltetésszerű használata a commit level release vagy nightly release.

–konvencionális-commit

$ lerna publish --conventional-commits

ha ezzel a jelzővel fut, a publish a hagyományos commit specifikációt fogja használni a verzió bump meghatározásához, és létrehoz egy változásnaplót

–git-remote

$ lerna publish --git-remote upstream

ha ezzel a jelzővel fut, a publisha git módosításokat a megadott távvezérlőre nyomja origin helyett.

–skip-git

$ lerna publish --skip-git

ha ezzel a jelzővel fut, a publish közzéteszi az npm-ben a git parancsok futtatása nélkül.

csak az npm-ben tegyen közzé; hagyja ki a GIT-módosítások elkövetését, címkézését és tolását (ez csak a közzétételt érinti).

–skip-npm

$ lerna publish --skip-npm

ha ezzel a jelzővel fut, a publish frissíti az összes package.json csomagverziót és függőségi verziót, de valójában nem teszi közzé a csomagokat az npm-ben.

ez hasznos megoldás volt egy npm-probléma megoldására, amelyet azóta kijavítottak. Amikor a readme változásokkal publikál, használja a --skip-npm – et, és végezze el kézzel az utolsó npm publish – t minden csomaghoz.

ez a jelző kombinálható az --skip-git – vel, hogy csak frissítse a verziókat és a függőségeket, anélkül, hogy elkötelezné, címkézné, megnyomná vagy közzétenné.

csak a verziók és függőségek frissítése; valójában nem tesz közzé (ez csak a közzétételt érinti).

–force-publish

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

ha ezzel a jelzővel fut, a publishkényszeríti a megadott csomagok közzétételét (vesszővel elválasztva) vagy az összes csomagot a * használatával.

ez kihagyja a lerna updated check for changed csomagokat, és arra kényszerít egy csomagot, amely nem rendelkezik git diff változással.

–igen

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

ha ezzel a jelzővel fut, a publish kihagyja az összes megerősítő kérést. Hasznos a folyamatos integrációban (Ci), hogy automatikusan válaszoljon a közzététel megerősítési parancsára.

–cd-version

ha ezzel a jelzővel fut, a publish kihagyja a verzióválasztási parancsot (független módban), és a következő megadott szemantikai verziót használja. Továbbra is használnia kell a --yes jelzőt, hogy elkerülje az összes felszólítást. Ez akkor hasznos, ha építeni rendszereket kell közzétenni parancs nélkül kéri. Működik mind normál, mind független módban.

–pre-id

–repo-version

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

ha ezzel a jelzővel fut, a publish kihagyja a verzióválasztási parancsot, és a megadott verziót használja. Hasznos a felhasználói beviteli parancs megkerüléséhez, ha már tudja, melyik verziót tegye közzé.

–message, -m

ha ezzel a jelzővel fut, a publish a megadott üzenetet fogja használni, amikor a verziófrissítéseket közzéteszi. Hasznos a lerna integrálásához olyan projektekbe, amelyek elvárják, hogy a commit üzenetek betartsanak bizonyos irányelveket, például a commitizen és/vagy szemantikus kiadást használó projekteket.

ha az üzenet %s – et tartalmaz, akkor az új globális verzió verziószáma “v”előtaggal lesz helyettesítve. Vegye figyelembe, hogy ez csak az alapértelmezett “fix” verziószámozási mód használatakor érvényes, mivel a --independenthasználatakor nincs “globális” verzió.

frissítve

$ lerna updated

ellenőrizze, hogy melyik packages változott az utolsó kiadás óta (az utolsó git címke).

Lerna meghatározza az utoljára létrehozott git címkét, és futtatja a git diff --name-only v6.8.1 – et, hogy az összes fájlt megváltoztassa a címke óta. Ezután egy sor csomagot ad vissza, amelyek frissített fájlt tartalmaznak.

vegye figyelembe, hogy a publish parancs konfigurálása a updated parancsot is érinti. Például config.publish.ignore

–json

$ lerna updated --json

ha ezzel a jelzővel fut, a updated objektumtömböt ad vissza a következő formátumban:

tiszta

$ lerna clean

távolítsa el az node_modules könyvtárat az összes csomagból.

lerna clean tiszteletben tartja a --ignore, --scope és --yes zászlókat (lásd zászlók).

diff

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

Diff minden csomag vagy egyetlen csomag az utolsó kiadás óta.

hasonló a lerna updated – hez. Ez a parancs a git diff parancsot futtatja.

ls

$ lerna ls

sorolja fel az összes nyilvános csomagot a jelenlegi Lerna repóban.

lerna ls tiszteletben tartja a --ignore és --scope zászlókat (lásd zászlók).

— json

$ lerna ls --json

ha ezzel a jelzővel fut, az ls objektumtömböt ad vissza a következő formátumban:

run

futtasson egy NPM parancsfájlt minden olyan csomagban, amely tartalmazza ezt a parancsfájlt. Dupla kötőjel (--) szükséges a szaggatott argumentumok átviteléhez a szkript végrehajtásához.

lerna run tiszteletben tartja a --concurrency, --scope, --ignore, --stream, és --parallel zászlók (lásd zászlók).

$ lerna run --scope my-component test

Megjegyzés: javasoljuk, hogy korlátozza a parancs hatókörét (és a lerna exec alatt) a --parallel jelző használatakor, mivel több tucat alfolyamat ívása káros lehet A shell nyugalmára (vagy például a fájlleíró maximális korlátjára). YMMV

exec

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

futtasson tetszőleges parancsot minden csomagban. Kettős kötőjel (--) szükséges a szaggatott zászlók átadásához az ívott parancshoz, de nem szükséges, ha az összes argumentum pozicionális.

lerna exec tiszteletben tartja a --concurrency, --scope, --ignore, és --parallel zászlók (lásd zászlók).

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

hosszú távú folyamatok létrehozásához adja át a --parallel zászlót:

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

az aktuális csomag nevét a környezeti változón keresztül is megkaphatja LERNA_PACKAGE_NAME:

$ lerna exec -- npm view $LERNA_PACKAGE_NAME

futtathat egy parancsfájlt is, amely a gyökérkönyvtárban található, bonyolult dir struktúrában a környezeti változón keresztülLERNA_ROOT_PATH:

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

tipp: a parancsok párhuzamosan születnek, a megadott egyidejűség használatával (kivéve a --parallel – et). A kimenet átvezetésre kerül, tehát nem determinisztikus. Ha a parancsot egy csomagban szeretné futtatni a másik után, akkor használja ezt:

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

–bail

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

ez a zászló azt jelzi, hogy a exec parancsnak le kell-e állítania a végrehajtást, ha hibát észlel az egyik szült alfolyamat. Alapértelmezett értéke true.

import

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

importálja a csomagot <path-to-external-repository>, a commit történelem, a packages/<directory-name>. Az eredeti commit szerzők, dátumok és üzenetek megmaradnak. A kötelezettségvállalások az aktuális ágra vonatkoznak.

ez akkor hasznos, ha már meglévő önálló csomagokat gyűjt egy Lerna repóba. Minden commit módosul, hogy a csomagkönyvtárhoz képest változtatásokat hajtson végre. Így például a package.json hozzáadott commit ehelyett hozzáadja a packages/<directory-name>/package.jsonértéket.

Egyéb

a Lerna egy lerna-debug.log fájlba fog bejelentkezni (ugyanaz, mint a npm-debug.log), amikor hibát észlel egy parancs futtatásakor.

a Lerna támogatja a hatókörű csomagokat is.

a lerna argumentumok nélküli futtatása megjeleníti az összes parancsot/opciót.

lerna.json

{ "lerna": "2.0.0", "version": "1.1.3", "commands": { "publish": { "ignore": }, "bootstrap": { "ignore": "component-*" } }, "packages": }
  • lerna: a Lerna jelenlegi verziója.
  • version: az adattár jelenlegi verziója.
  • commands.publish.ignore: olyan gömbök tömbje, amelyek nem szerepelnek a lerna updated/publish – ban. Ezzel megakadályozhatja az új verzió szükségtelen közzétételét módosítások, például README.md elírás kijavítása miatt.
  • commands.bootstrap.ignore: a lerna bootstrap parancs futtatásakor nem bootstrappolt gömbök tömbje.
  • commands.bootstrap.scope: globs tömb, amely korlátozza, hogy mely csomagok lesznek bootstrapolva a lerna bootstrap parancs futtatásakor.
  • packages: tömb globs használni, mint a csomag helyeken.

közös devdependenciák

a legtöbb devDependencies a Lerna repo gyökeréig húzható.

ennek néhány előnye van:

  • minden csomag egy adott függőség azonos verzióját használja
  • képes a függőségeket a gyökérben naprakészen tartani egy olyan automatizált eszközzel, mint a GreenKeeper
  • a függőség telepítési ideje csökken
  • kevesebb tárhely szükséges

vegye figyelembe, hogy devDependencies olyan “bináris” futtatható fájlokat biztosít, amelyek által használt npm szkriptek is kell telepíteni közvetlenül minden csomagot, ahol ők használják.

például a nsp függőség szükséges ebben az esetben a lerna run nsp (és npm run nsp a csomag könyvtárában), hogy megfelelően működjön:

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

Flags

a Lerna beállításai a konfigurációból (lerna.json) vagy a parancssorból származhatnak. Ezenkívül a config beállításai a legfelső szinten élhetnek, vagy alkalmazhatók bizonyos parancsokra.

példa:

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

ebben az esetben a exampleOption minden parancsnál “foo” lesz, kivéve a init parancsot, ahol “bar”lesz. Minden esetben felülírható” baz ” a parancssorban --example-option=baz.

— konkurencia

hány szálat kell használni, ha a Lerna párhuzamosítja a feladatokat (alapértelmezés szerint 4)

$ lerna publish --concurrency 1

–scope

egy parancs hatóköre a csomagok egy részhalmazára.

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

–mivel

parancsfájl vagy parancs végrehajtásakor a műveletet olyan csomagokra kell kiterjeszteni, amelyek a megadott refóta frissültek. Ha ref nincs megadva, akkor alapértelmezés szerint a legújabb címke.

sorolja fel a legutóbbi címke óta megváltozott csomagok tartalmát:

$ lerna exec --since -- ls -la

futtassa a teszteket az összes csomagra, amelyek masteróta megváltoztak:

$ lerna run test --since master

sorolja fel az összes azóta megváltozott csomagotsome-branch:

$ lerna ls --since some-branch

ez különösen akkor lehet hasznos, ha CI-ben használják, ha meg tudja szerezni azt a célágat, amelybe a PR megy, mert ezt ref – től --since opcióig használhatja. Ez jól működik a PRS megy mester, valamint a funkció ágak.

–ignore

parancs futtatásakor kizárja a csomagok egy részhalmazát.

$ lerna bootstrap --ignore component-*

a ignore zászló, ha a bootstrap paranccsal együtt használják, a lerna.json – ben is beállítható a commands.bootstrap kulcs alatt. A parancssori zászló megelőzi ezt az opciót.

példa

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

tipp: a glob a package.json – ben definiált csomagnévhez illeszkedik, nem pedig a csomag könyvtárnevéhez.

–include-filtered-dependencies

Megjegyzés: ez felülírja a --scope és --ignore jelzőket.

azaz a --ignore jelzővel párosított csomag továbbra is Bootstrap lesz, ha egy másik csomagtól függ, amelyet bootstrappolnak.

ez olyan helyzetekben hasznos, amikor egyetlen csomagot szeretne “beállítani”, amely más csomagok beállítására támaszkodik.

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

–loglevel

milyen szintű naplókat kell jelenteni. Hiba esetén az összes naplót a lerna-debug-ra írják.jelentkezzen be az aktuális munkakönyvtárba.

a beállításnál magasabb szintű naplók jelennek meg. Az alapértelmezett érték az “info”.

–max-buffer

állítson be egy maximális pufferhosszt minden mögöttes folyamathíváshoz. Hasznos például, ha valaki azt akarja, hogy importálni egy repo egy nagyobb mennyiségű elköveti futás közben lerna import. Ebben az esetben a beépített puffer hossza nem elegendő.

–no-sort

alapértelmezés szerint minden feladat a csomagokon topológiailag rendezett sorrendben fut, a kérdéses csomagok függőségi viszonyainak tiszteletben tartása mellett. Ciklusok vannak törve a legjobb erőfeszítés alapján oly módon nem garantált, hogy következetes legyen az egész Lerna invokations.

a topológiai rendezés párhuzamos szűk keresztmetszeteket okozhat, ha kevés számú csomag van sok eltartottal, vagy ha egyes csomagok végrehajtása aránytalanul hosszú időt vesz igénybe. A --no-sort opció letiltja a rendezést, ehelyett tetszőleges sorrendben hajtja végre a feladatokat, maximális párhuzamossággal.

ez az opció akkor is segíthet, ha több “watch” parancsot futtat. Mivel a lerna run topológiailag rendezett sorrendben hajtja végre a parancsokat, végül várhat egy parancsra, mielőtt továbblépne. Ez blokkolja a végrehajtást a” watch ” parancsok futtatásakor, mivel ezek általában soha nem érnek véget. A “watch” parancsra példa a babel futtatása a --watch CLI jelzővel.

–hoist

telepítse a glob – nek megfelelő külső függőségeket a repo gyökérre, hogy azok minden csomag számára elérhetők legyenek. Az ezekből a függőségekből származó bináris fájlok node_modules/.bin/ függő csomag könyvtárakba lesznek csatolva, így elérhetőek az npm szkriptek számára. Ha az opció jelen van, de nem glob van megadva az alapértelmezett ** (emel mindent). Ez az opció csak a bootstrap parancsot érinti.

$ lerna bootstrap --hoist

a --hoist hátterét lásd az emelő dokumentációjában.

Megjegyzés: Ha a csomagok egy külső függőség különböző verzióitól függenek, akkor a leggyakrabban használt verziót emelik fel, és figyelmeztetést adnak ki.

–nohoist

ne telepítsen glob – nek megfelelő külső függőségeket a repo gyökérre. Ezt fel lehet használni, hogy kilépjen emelő bizonyos függőségek.

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

–npm-client

külső függőségek telepítése a install használatával. Futtathatónak kell lennie, amely tudja, hogyan kell telepíteni az npm függőségeket.

$ lerna bootstrap --npm-client=yarn

is konfigurálható lerna.json:

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

–use-munkaterületek

lehetővé teszi a fonal munkaterületekkel való integrációt (azóta elérhető [email protected]+).
a tömb értékei azok a parancsok, amelyekben a Lerna átruházza a műveletet a Yarn-ra (jelenleg csak bootstrapping).
ha --use-workspaces igaz, akkor packages felülírja az értéket package.json/workspaces.
is konfigurálható lerna.json:

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

–stream

stream kimenet gyermek folyamatok azonnal, előtaggal az eredeti csomag nevét. Ez lehetővé teszi a különböző csomagok kimenetét.

$ lerna run watch --stream

–párhuzamos

hasonló a --stream – hez, de teljesen figyelmen kívül hagyja a párhuzamosságot és a topológiai rendezést, egy adott parancsot vagy szkriptet azonnal futtat az összes megfelelő csomagban, előtagos streaming kimenettel. Ez az előnyben részesített zászló hosszú futású folyamatokhoz, például babel src -d lib -w sok csomagon fut át.

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

–registry

ha ezzel a jelzővel fut, a továbbított npm parancsok a megadott beállításjegyzéket fogják használni a csomag(ok) hoz.

ez akkor hasznos, ha nem szeretné kifejezetten beállítani a beállításjegyzék konfigurációját az összes csomagban.json fájlokat külön-külön, ha például a privát nyilvántartások.

–temp-tag

az átadáskor ez a jelző megváltoztatja az alapértelmezett közzétételi folyamatot azáltal, hogy először az összes módosított csomagot ideiglenes dist-címkére (lerna-temp) teszi közzé, majd az új verzió(oka) t az alapértelmezett dist-címkére (latest) helyezi át.

ez általában nem szükséges, mivel a Lerna alapértelmezés szerint topológiai sorrendben teszi közzé a csomagokat (az összes függőséget az eltartottak előtt).

Wizard

ha inkább néhány útmutatást cli (abban az esetben, ha hamarosan elkezdi használni lerna vagy bemutatjuk, hogy egy új csapat), lehet, hogy tetszik lerna-wizard. Ez egy jól meghatározott lépések sorozatán keresztül vezet:

aktuális címkék

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.