nástroj pro správu projektů JavaScript s více balíčky.
- O
- Začínáme
- Jak To Funguje
- Odstraňování Problémů
- Příkazy
- Různé
- Lerna.json
- Flags
o
rozdělení velkých kódových základen na samostatné nezávisle verzované balíčky je velmi užitečné pro sdílení kódu. Provádění změn v mnoha repozitářích je však chaotické a obtížně sledovatelné a testování napříč repozitáři se velmi rychle komplikuje.
k vyřešení těchto (a mnoha dalších) problémů uspořádají některé projekty své kódové základny do úložišť s více balíčky(někdy nazývaných monorepos). Projekty jako Babel, React, Angular, Ember, Meteor, Jest a mnoho dalších vyvíjejí všechny své balíčky v rámci jednoho úložiště.
Lerna je nástroj, který optimalizuje pracovní postup kolem správy multi-package repozitářů s git a npm.
Lerna může také snížit časové a prostorové požadavky na četné kopie balíčků ve vývojových a sestavovacích prostředích-obvykle nevýhoda rozdělení projektu do mnoha samostatných balíčků NPM. Podrobnosti naleznete v dokumentaci kladkostroje.
jak vypadá repo Lerna?
ve skutečnosti je toho velmi málo. Máte souborový systém, který vypadá takto:
my-lerna-repo/ package.json packages/ package-1/ package.json package-2/ package.json
co může Lerna dělat?
dva primární příkazy v Lerně jsou lerna bootstrap
a lerna publish
.
bootstrap
propojí závislosti v repo dohromady. publish
pomůže publikovat všechny aktualizované balíčky.
Začínáme
níže uvedené pokyny jsou pro Lernu 2.x. doporučujeme jej použít místo 1.x pro nový projekt Lerna. Zkontrolujte wiki, pokud potřebujete vidět 1.x README.
začněme instalací Lerny globálně s npm.
$ npm install --global lerna
dále vytvoříme nový repozitář git:
$ git init lerna-repo$ cd lerna-repo
a teď to přeměníme na repo Lerna:
$ lerna init
vaše úložiště by nyní mělo vypadat takto:
lerna-repo/ packages/ package.json lerna.json
tím se vytvoří konfigurační soubor lerna.json
a složka packages
.
jak to funguje
Lerna umožňuje spravovat svůj projekt pomocí jednoho ze dvou režimů: pevné nebo nezávislé.
pevný / uzamčený režim (výchozí)
projekty Lerna s pevným režimem pracují na jedné verzi. Verze je uložena v souboru lerna.json
v kořenovém adresáři vašeho projektu pod klíčem version
. Když spustíte lerna publish
, pokud byl modul aktualizován od posledního vydání, bude aktualizován na novou verzi, kterou uvolňujete. To znamená, že novou verzi balíčku publikujete pouze tehdy, když potřebujete.
Toto je režim, který Babel aktuálně používá. Použijte to, pokud chcete automaticky spojit všechny verze balíčků dohromady. Jedním z problémů s tímto přístupem je, že zásadní změna v každém balíčku bude mít za následek, že všechny balíčky budou mít novou hlavní verzi.
nezávislý režim (–independent)
nezávislý režim Lerna projects umožňuje správcům zvyšovat verze balíčků nezávisle na sobě. Pokaždé, když publikujete, dostanete výzvu ke každému balíčku, který se změnil, aby určil, zda se jedná o opravu, menší, větší nebo vlastní změnu.
nezávislý režim umožňuje konkrétněji aktualizovat verze pro každý balíček a dává smysl pro skupinu komponent. Kombinace tohoto režimu s něčím, jako je sémantické uvolnění, by bylo méně bolestivé. (Na tom se pracuje již v Atlassian/lerna-sémantic-release).
klíč
version
vlerna.json
je v nezávislém režimu ignorován.
odstraňování problémů
pokud při používání Lerny narazíte na nějaké problémy, podívejte se prosím na náš dokument o odstraňování problémů, kde můžete najít odpověď na Váš problém.
Časté dotazy
viz FAQ.md.
příkazy
init
$ lerna init
vytvořte nové repo Lerny nebo upgradujte existující repo na aktuální verzi Lerny.
Lerna předpokládá, že repo již bylo inicializováno pomocí
git init
.
při spuštění bude tento příkaz:
- přidejte
lerna
jakodevDependency
dopackage.json
, pokud již neexistuje. - Vytvořte konfigurační soubor
lerna.json
pro uložení číslaversion
.
příklad výstupu na novém repozitáři git:
$ lerna initlerna info version v2.0.0lerna info Updating package.jsonlerna info Creating lerna.jsonlerna success Initialized Lerna files
–independent, – i
$ lerna init --independent
tento příznak říká Lerně, aby použila nezávislý režim verzování.
— exact
$ lerna init --exact
ve výchozím nastavení lerna init
použije rozsah stříšky při přidávání nebo aktualizaci místní verze lerna
, stejně jako npm install --save-dev lerna
.
zachovat lerna
1.x chování „přesné“ srovnání, projít tento příznak. Nakonfiguruje lerna.json
tak, aby vynucoval přesnou shodu pro všechny následné popravy.
{ "lerna": "2.0.0", "command": { "init": { "exact": true } }, "version": "0.0.0"}
bootstrap
$ lerna bootstrap
Bootstrap balíčky v aktuálním repo Lerna. Nainstaluje všechny své závislosti a propojí všechny křížové závislosti.
při spuštění bude tento příkaz:
-
npm install
všechny externí závislosti každého balíčku. - Symlink dohromady všechny Lerna
packages
, které jsou závislosti na sobě. -
npm prepublish
všechny zaváděcí balíčky.
lerna bootstrap
respektuje vlajky --ignore
, --scope
a --include-filtered-dependencies
(viz příznaky).
předejte další argumenty klientovi npm jejich umístěním po --
:
$ lerna bootstrap -- --production --no-optional
může být také nakonfigurován v lerna.json
:
{ ... "npmClient": "yarn", "npmClientArgs": }
jak bootstrap
funguje
Použijme jako příklad babel
.
-
babel-generator
asource-map
(mimo jiné) jsou závislostibabel-core
. -
babel-core
‚spackage.json
uvádí oba tyto balíčky jako klíče vdependencies
, jak je znázorněno níže.
// babel-core package.json{ "name": "babel-core", ... "dependencies": { ... "babel-generator": "^6.9.0", ... "source-map": "^0.5.0" }}
- Lerna kontroluje, zda každá závislost je také součástí repo Lerna.
- v tomto příkladu může být
babel-generator
interní závislostí, zatímcosource-map
je vždy externí závislostí. - verze
babel-generator
vpackage.json
zbabel-core
je splněnapackages/babel-generator
a přechází na interní závislost. -
source-map
jenpm install
ed (neboyarn
ed) jako normální.
- v tomto příkladu může být
-
packages/babel-core/node_modules/babel-generator
symbolické odkazy napackages/babel-generator
- to umožňuje import vnořených adresářů
poznámky:
- Pokud verze závislosti v balíčku není v repo splněna balíčkem se stejným názvem, bude
npm install
ed (neboyarn
ed) jako normální. - Dist-tagy, jako
latest
, nesplňují rozsahy semver. - kruhové závislosti vedou k kruhovým symbolickým odkazům, které mohou ovlivnit váš editor / IDE.
Webstorm se zablokuje, když jsou přítomny kruhové symbolické odkazy. Chcete-li tomu zabránit, přidejte node_modules
do seznamu ignorovaných souborů a složek v Preferences | Editor | File Types | Ignored files and folders
.
publikujte
$ lerna publish
Publikujte balíčky v aktuálním projektu Lerna. Při spuštění tento příkaz provede následující:
vytvoří novou verzi balíčků, které byly aktualizovány. Vyzve k nové verzi. Vytvoří nový git commit / tag v procesu publikování na npm.
konkrétněji tento příkaz:
- spusťte ekvivalent
lerna updated
a určete, které balíčky je třeba zveřejnit. - v případě potřeby zvyšte klíč
version
vlerna.json
. - Aktualizujte
package.json
všech aktualizovaných balíčků na nové verze. - aktualizujte všechny závislosti aktualizovaných balíčků s novými verzemi určenými stříškou (^).
- vytvořte nový git commit a tag pro novou verzi.
- Publikujte aktualizované balíčky do npm.
Lerna nezveřejní balíčky, které jsou označeny jako soukromé (
"private": true
vpackage.json
).
–exact
$ lerna publish --exact
při spuštění s tímto příznakem publish
určí aktualizované závislosti v aktualizovaných balíčcích přesně (bez interpunkce) místo jako semver kompatibilní (s ^
).
další informace naleznete v balíčku.dokumentace závislostí json.
–npm-tag
$ lerna publish --npm-tag=next
při spuštění s tímto příznakem publish
publikuje npm s danou npm dist-tag (výchozí hodnota latest
).
tato volba může být použita k publikování verze prerelease
nebo beta
.
Poznámka: značka
latest
je ta, která se používá, když uživatel spustínpm install my-package
. Chcete-li nainstalovat jinou značku, může uživatel spustitnpm install [email protected]
.
–canary, – c
$ lerna publish --canary$ lerna publish --canary=beta
při spuštění s tímto příznakem publish
publikuje balíčky podrobnějším způsobem (podle odevzdání). Před publikováním do npm vytvoří novou značku version
tím, že vezme aktuální version
, naráží na další menší verzi, přidá poskytnutou meta příponu (výchozí hodnota alpha
) a připojí aktuální git sha (ex: 1.0.0
se stává 1.1.0-alpha.81e3b443
).
zamýšleným případem použití tohoto příznaku je vydání na úrovni odevzdání nebo noční vydání.
–conventional-commits
$ lerna publish --conventional-commits
při spuštění s tímto příznakem publish
použije konvenční Commitsovou specifikaci k určení verze bump a vygeneruje CHANGELOG
–git-remote
$ lerna publish --git-remote upstream
při spuštění s tímto příznakem publish
posune změny git na zadané vzdálené místo origin
.
–skip-git
$ lerna publish --skip-git
při spuštění s tímto příznakem publish
publikuje npm bez spuštění některého z příkazů git.
publikujte pouze do npm; přeskočte odevzdání, značkování a tlačení změn git (to se týká pouze publikování).
–skip-npm
$ lerna publish --skip-npm
při spuštění s tímto příznakem bude publish
aktualizovat všechny verze balíčků package.json
a verze závislostí, ale ve skutečnosti nebude publikovat balíčky do npm.
to bylo užitečné jako řešení problému npm, který byl od té doby opraven. Při publikování se změnami README použijte
--skip-npm
a proveďte konečnénpm publish
ručně pro každý balíček.
tento příznak lze kombinovat s --skip-git
pouze pro aktualizaci verzí a závislostí, aniž by došlo k páchání, značkování, tlačení nebo publikování.
pouze aktualizují verze a závislosti; ve skutečnosti nepublikují(to se týká pouze publikování).
–vynutit publikování
$ lerna publish --force-publish=package-2,package-4# force publish all packages$ lerna publish --force-publish=*
při spuštění s tímto příznakem publish
vynutí publikování zadaných balíčků (oddělených čárkami) nebo všech balíčků pomocí *
.
tím přeskočíte
lerna updated
kontrolu změněných balíčků a vynutíte aktualizaci balíčku, který neměl změnugit diff
.
–Ano
$ lerna publish --canary --yes# skips `Are you sure you want to publish the above changes?`
při spuštění s tímto příznakem publish
přeskočí všechny výzvy k potvrzení. Užitečné při kontinuální integraci (CI) pro automatické zodpovězení výzvy k potvrzení publikování.
–cd-version
při spuštění s tímto příznakem publish
přeskočí výzvu pro výběr verze (v nezávislém režimu) a použije další zadanou sémantickou verzi. Stále musíte používat příznak --yes
, abyste se vyhnuli všem výzvám. To je užitečné, když stavět systémy potřebují publikovat bez příkazových výzev. Pracuje v normálním i nezávislém režimu.
–pre-id
–repo-verze
$ lerna publish --repo-version 1.0.1# applies version and skips `Select a new version for...` prompt
při spuštění s tímto příznakem publish
přeskočí výzvu k výběru verze a použije zadanou verzi. Užitečné pro obejití uživatelské vstupní výzvu, pokud již víte, kterou verzi publikovat.
–message, – m
při spuštění s tímto příznakem publish
použije poskytnutou zprávu při odevzdání aktualizací verze k publikaci. Užitečné pro integraci lerny do projektů, které očekávají, že zprávy odevzdání budou dodržovat určité pokyny, jako jsou projekty, které používají commitizen a/nebo sémantické vydání.
pokud zpráva obsahuje %s
, bude nahrazena novým číslem verze globální verze s předponou „v“. Všimněte si, že to platí pouze při použití výchozího režimu“ pevné “ verze, protože při použití --independent
neexistuje žádná „globální“ verze.
Aktualizováno
$ lerna updated
zkontrolujte, které packages
se změnily od posledního vydání (poslední značka git).
Lerna určuje Poslední vytvořenou značku git a spustí git diff --name-only v6.8.1
, aby se od této značky změnily všechny soubory. Poté vrátí řadu balíčků, které mají aktualizovaný soubor.
Všimněte si, že konfigurace příkazu publish
ovlivňuje také příkaz updated
. Například config.publish.ignore
–json
$ lerna updated --json
při spuštění s tímto příznakem updated
vrátí pole objektů v následujícím formátu:
vyčistěte
$ lerna clean
odstraňte adresář node_modules
ze všech balíčků.
lerna clean
respektuje vlajky --ignore
, --scope
a --yes
(viz vlajky).
diff
$ lerna diff $ lerna diff# diff a specific package$ lerna diff package-name
Diff všechny balíčky nebo jeden balíček od posledního vydání.
podobné
lerna updated
. Tento příkaz běžígit diff
.
ls
$ lerna ls
seznam všech veřejných balíčků v aktuálním repo Lerna.
lerna ls
respektuje vlajky --ignore
a --scope
(viz vlajky).
–json
$ lerna ls --json
při spuštění s tímto příznakem ls
vrátí pole objektů v následujícím formátu:
spusťte
spusťte skript npm v každém balíčku, který obsahuje tento skript. Dvojitá pomlčka (--
) je nutná pro předání přerušovaných argumentů spuštění skriptu.
lerna run
respektuje --concurrency
, --scope
, --ignore
, --stream
, a --parallel
vlajky (viz vlajky).
$ lerna run --scope my-component test
Poznámka: Při použití příznaku
--parallel
se doporučuje omezit rozsah tohoto příkazu (alerna exec
níže), protože vytváření desítek podprocesů může být škodlivé pro vyrovnanost shellu (nebo například maximální limit deskriptoru souboru). YMMV
exec
$ lerna exec -- <command> # runs the command in all packages$ lerna exec -- rm -rf ./node_modules$ lerna exec -- protractor conf.js
spusťte libovolný příkaz v každém balíčku. Dvojitá pomlčka (--
) je nutná k předání přerušovaných vlajek příkazu spawned, ale není nutná, pokud jsou všechny argumenty poziční.
lerna exec
respektuje --concurrency
, --scope
, --ignore
, a --parallel
vlajky (viz vlajky).
$ lerna exec --scope my-component -- ls -la
Chcete-li spustit dlouhotrvající procesy, předejte příznak --parallel
:
# transpile all modules as they change in every package$ lerna exec --parallel -- babel src -d lib -w
název aktuálního balíčku můžete také získat prostřednictvím proměnné prostředíLERNA_PACKAGE_NAME
:
$ lerna exec -- npm view $LERNA_PACKAGE_NAME
můžete také spustit skript umístěný v kořenovém adresáři dir, ve složité struktuře dir prostřednictvím proměnné prostředíLERNA_ROOT_PATH
:
$ lerna exec -- node $LERNA_ROOT_PATH/scripts/some-script.js
Tip: příkazy jsou vytvářeny paralelně pomocí dané souběžnosti (s výjimkou
--parallel
). Výstup je veden skrz, takže není deterministický. Pokud chcete příkaz Spustit v jednom balíčku za druhým, použijte jej takto:
$ lerna exec --concurrency 1 -- ls -la
–kauce
$ lerna exec --bail=<boolean> <command>
tento příznak označuje, zda má příkaz exec
zastavit provádění, když narazí na chybu vyvolanou jedním z vytvořených podprocesů. Jeho výchozí hodnota je true
.
import
$ lerna import <path-to-external-repository>
Importujte balíček na <path-to-external-repository>
s historií odevzdání do packages/<directory-name>
. Původní autoři odevzdání, data a zprávy jsou zachovány. Commity se použijí na aktuální větev.
to je užitečné pro shromažďování již existujících samostatných balíčků do repo Lerna. Každé odevzdání je upraveno tak, aby provedlo změny ve vztahu k adresáři balíků. Například commit, který přidal package.json
, místo toho přidá packages/<directory-name>/package.json
.
různé
Lerna se přihlásí do souboru lerna-debug.log
(stejně jako npm-debug.log
), když narazí na chybu při spuštění příkazu.
Lerna má také podporu pro rozsahy balíčků.
spuštění lerna
bez argumentů zobrazí všechny příkazy/volby.
lerna.json
{ "lerna": "2.0.0", "version": "1.1.3", "commands": { "publish": { "ignore": }, "bootstrap": { "ignore": "component-*" } }, "packages": }
-
lerna
: aktuální verze Lerny se používá. -
version
: aktuální verze úložiště. -
commands.publish.ignore
: pole globů, které nebudou zahrnuty dolerna updated/publish
. Použijte to, abyste zabránili zbytečnému publikování nové verze pro změny, jako je oprava překlepuREADME.md
. -
commands.bootstrap.ignore
: pole globů, které nebudou zaváděny při spuštění příkazulerna bootstrap
. -
commands.bootstrap.scope
: pole globs, které omezuje, které balíčky budou zaváděny při spuštění příkazulerna bootstrap
. -
packages
: pole globs použít jako umístění balíčku.
běžné devdependence
většinu devDependencies
lze vytáhnout až ke kořenu repo Lerna.
to má několik výhod:
- všechny balíčky používají stejnou verzi dané závislosti
- mohou udržovat závislosti v kořenovém adresáři aktuální s automatizovaným nástrojem, jako je GreenKeeper
- doba instalace závislosti je snížena
- méně úložiště je potřeba
Všimněte si, že devDependencies
poskytování „binárních“ spustitelných souborů, které jsou používány skripty npm, je stále třeba nainstalovat přímo do každého balíčku, kde jsou používány.
například závislost nsp
je v tomto případě nezbytná pro správnou funkci lerna run nsp
(a npm run nsp
v adresáři balíku:
{ "scripts": { "nsp": "nsp" }, "devDependencies": { "nsp": "^2.3.3" }}
příznaky
volby do Lerny mohou pocházet z konfigurace (lerna.json
) nebo z příkazového řádku. Navíc volby v config může žít na nejvyšší úrovni, nebo mohou být použity na konkrétní příkazy.
příklad:
{ "lerna": "x.x.x", "version": "1.2.0", "exampleOption": "foo", "command": { "init": { "exampleOption": "bar", } },}
v tomto případě exampleOption
bude „foo“ pro všechny příkazy kromě init
, kde bude „bar“. Ve všech případech může být přepsán na “ baz “ na příkazovém řádku s --example-option=baz
.
–concurrency
kolik podprocesů použít, když Lerna paralelizuje úlohy (výchozí hodnota 4
)
$ lerna publish --concurrency 1
–rozsah
zahrnuje příkaz na podmnožinu balíčků.
$ lerna exec --scope my-component -- ls -la
$ lerna run --scope toolbar-* test
–vzhledem k tomu, že
při provádění skriptu nebo příkazu omezte operaci na balíčky, které byly aktualizovány od zadaného ref
. Pokud ref
není zadáno, je výchozí pro nejnovější značku.
seznam obsahu balíčků, které se změnily od poslední značky:
$ lerna exec --since -- ls -la
spusťte testy pro všechny balíčky, které se změnily od master
:
$ lerna run test --since master
seznam všech balíčků, které se od té doby změnily some-branch
:
$ lerna ls --since some-branch
to může být zvláště užitečné při použití v CI, pokud můžete získat cílovou větev, do které bude PR směřovat, protože ji můžete použít jako ref
k volbě --since
. To funguje dobře pro PRs jít do master, stejně jako funkce větve.
— ignore
vylučuje podmnožinu balíčků při spuštění příkazu.
$ lerna bootstrap --ignore component-*
příznak ignore
, pokud je použit s příkazem bootstrap
, lze také nastavit v lerna.json
pod klíčem commands.bootstrap
. Příznak příkazového řádku bude mít přednost před touto volbou.
příklad
{ "lerna": "2.0.0", "version": "0.0.0", "commands": { "bootstrap": { "ignore": "component-*" } }}
Tip: glob je porovnán s názvem balíčku definovaným v
package.json
, nikoli s názvem adresáře, ve kterém balíček žije.
–zahrnout-filtrované závislosti
Poznámka: tím se přepíše příznaky
--scope
a--ignore
.tj. balíček odpovídající příznaku
--ignore
bude stále zaváděn, pokud je závislý na jiném balíčku, který je zaváděn.
to je užitečné pro situace, kdy chcete „nastavit“ jeden balíček, který se spoléhá na nastavení jiných balíčků.
$ lerna bootstrap --scope my-component --include-filtered-dependencies# my-component and all of its dependencies will be bootstrapped
–loglevel
jakou úroveň protokolů nahlásit. Při selhání jsou všechny protokoly zapsány do Lerna-debug.přihlaste se do aktuálního pracovního adresáře.
jsou zobrazeny všechny protokoly vyšší úrovně, než je nastavení. Výchozí hodnota je „info“.
–max-buffer
Nastavte maximální délku bufferu pro každé volání procesu. Užitečné například, když někdo chce importovat repo s větším množstvím commitů při spuštění lerna import
. V takovém případě nemusí být vestavěná délka vyrovnávací paměti dostatečná.
–no-sort
ve výchozím nastavení se všechny úlohy provádějí na balíčcích v topologicky seřazeném pořadí, aby respektovaly vztahy závislostí dotyčných balíků. Cykly jsou rozděleny na základě nejlepšího úsilí způsobem, který není zaručen, že bude konzistentní napříč Lerna invocations.
topologické třídění může způsobit úzká místa souběžnosti, pokud existuje malý počet balíčků s mnoha závislými osobami nebo pokud některé balíčky trvají neúměrně dlouho. Volba --no-sort
zakáže třídění, místo toho provádí úlohy v libovolném pořadí s maximální souběžností.
tato volba může také pomoci, pokud spustíte více příkazů „watch“. Protože lerna run
provede příkazy v topologicky seřazeném pořadí, může skončit čekáním na příkaz před pokračováním. Tím se zablokuje provádění při spuštění příkazů „watch“, protože obvykle nikdy nekončí. Příklad příkazu „watch“ je spuštěn babel
s příznakem --watch
CLI.
–hoist
nainstalujte externí závislosti odpovídající glob
v kořenovém adresáři repo, aby byly k dispozici všem balíčkům. Všechny binární soubory z těchto závislostí budou propojeny do závislých adresářů node_modules/.bin/
, takže jsou k dispozici pro skripty npm. Pokud je volba přítomna, ale není zadáno glob
, výchozí hodnota je **
(vše zvedněte). Tato volba ovlivňuje pouze příkaz bootstrap
.
$ lerna bootstrap --hoist
pozadí na --hoist
naleznete v dokumentaci kladkostroje.
Poznámka: Pokud balíčky závisí na různých verzích externí závislosti, nejčastěji používaná verze bude zvednuta a bude vydáno varování.
–nohoist
neinstalujte externí závislosti odpovídající glob
v kořenovém adresáři repo. To lze použít k odhlášení od zvedání pro určité závislosti.
$ lerna bootstrap --hoist --nohoist=babel-*
–npm-client
nainstalujte externí závislosti pomocí install
. Musí to být spustitelný soubor, který ví, jak nainstalovat závislosti npm.
$ lerna bootstrap --npm-client=yarn
může být také nakonfigurován v lerna.json
:
{ ... "npmClient": "yarn"}
–use-pracovní prostory
umožňuje integraci s pracovními prostory příze (k dispozici od [email protected]+).
hodnoty v poli jsou příkazy, ve kterých Lerna deleguje operaci na Yarn (v současné době pouze bootstrapping).
pokud --use-workspaces
je pravda, pak packages
bude přepsán hodnotou z package.json/workspaces.
může být také nakonfigurován v lerna.json
:
{ ... "npmClient": "yarn", "useWorkspaces": true}
–stream
Streamujte výstup z podřízených procesů okamžitě, s předponou původního názvu balíčku. To umožňuje prokládat výstup z různých balíčků.
$ lerna run watch --stream
–paralelní
podobné --stream
, ale zcela ignoruje souběžnost a topologické třídění, spuštění daného příkazu nebo skriptu okamžitě ve všech odpovídajících balíčcích s prefixovaným streamovacím výstupem. Toto je preferovaný příznak pro dlouhodobé procesy, jako je babel src -d lib -w
, běh přes mnoho balíčků.
$ lerna exec --parallel -- babel src -d lib -w
–registry
při spuštění s tímto příznakem budou příkazy forwarded npm používat zadaný registr pro vaše balíčky.
to je užitečné, pokud nechcete explicitně nastavit konfiguraci registru ve všech balíčcích.json soubory jednotlivě, když např. pomocí soukromých registrů.
–temp-tag
po předání změní tento příznak výchozí proces publikování tak, že nejprve publikuje všechny změněné balíčky na dočasnou dist-tag (lerna-temp
) a poté přesune novou verzi(Y) na výchozí dist-tag (latest
).
to není obecně nutné, protože Lerna bude ve výchozím nastavení publikovat balíčky v topologickém pořadí (všechny závislosti před závislými osobami).
Wizard
pokud preferujete nějaké pokyny pro cli (v případě, že se chystáte začít používat lernu nebo ji představit novému týmu), mohlo by se vám líbit Lerna-wizard. Provede vás řadou dobře definovaných kroků: