Workflow beim Managing von Multi-Package-Repositories mit Git und npm optimieren

Lerna – JavaScript-Projekte mit mehreren Packages managen
Kommentare

Große Codebases in separate, voneinander unabhängig versionierte Packages aufzuteilen, ist durchaus sinnvoll – insbesondere, wenn es um das Teilen von Code geht. Will man jedoch zum Beispiel Tests über mehrere Repositories hinweg durchführen, wird es schnell kompliziert. Abhilfe schaffen soll dabei zum Beispiel Lerna, ein Tool zum Managen von JavaScript-Projekten mit mehreren Packages.

Eigentlich ist das Aufteilen von großen Codebases in mehrere Packages eine gute Idee, um die Arbeit mit selbigen zu vereinfachen und das Teilen von Code zu erleichtern. Sind jedoch Änderungen über mehrere Repositories hinweg nötig, wird es schnell kompliziert – insbesondere, weil sich in vielen Fällen Änderungen nur schwer nachverfolgen lassen. So ist wenig überraschend, dass einige Projekte ihre Codebasis in Multi-Package-Repositories organisieren, während andere all ihre Packages innerhalb eines einzigen Repositories entwickeln.

Lerna ist ein Tool, das den Workflow beim Managing von Multi-Package-Repositories mit Git und npm optimieren will. Aktuell wird an Version 2.0 des Tools gearbeitet, die sich derzeit noch in der Beta-Phase befindet. Allerdings empfiehlt das Entwickler-Team auf GitHub für ein neues Projekt die Nutzung von Lerna 2.x Beta.

API Summit 2017

Moderne Web APIs mit Node.js – volle Power im Backend

mit Manuel Rauber (Thinktecture), Sven Kölpin (Open Knowledge)

API First mit Swagger & Co.

mit Thilo Frotscher (Freiberufler)

Arbeit mit Lerna

Lerna will bei der Verwaltung von Multi-Package-Repositories behilflich sein. Dafür bringt das Tool vor allem zwei Befehle mit sich: lerna bootstrap und lerna publish. Mithilfe von lerna bootstrap können Dependencies in einem Repo miteinander verbunden werden, während lerna publish dabei hilft, alle aktualisierten Packages zu veröffentlichen.

Der Einstieg in die Arbeit mit dem Tool ist denkbar einfach. Es kann über npm global installiert werden; anschließend lässt sich ein neues Git-Repository erstellen und dieses in ein Lerna-Repo umwandeln. Projekte können dann entweder im „Fixed“- oder im „Independent“-Modus verwaltet werden. Für beide Modi stehen zudem einige nützliche Optionen zur Verfügung.

Die Nutzung des Fixed-Modus empfiehlt sich für Nutzer, die automatisch alle Package-Versionen miteinander verknüpfen wollen; er ist zudem der Default-Modus. User sollten allerdings bedenken, dass bei diesem Ansatz eine Major-Änderung in einem Package automatisch in der Aktualisierung aller Packages zu einer neuen Major-Version resultiert.

Wer stattdessen lieber Updates für einzelne Package-Versionen ausspielen möchte, sollte auf den Independent-Modus zurückgreifen. Er erlaubt es, so das Entwickler-Team, „to increment package versions independently of each other“. Vor allem für eine Gruppe von Komponenten sei das sinnvoll, erklärt das Entwickler-Team weiter.

Mehr Informationen dazu sowie zu den einzelnen Optionen, die das Tool bietet, finden sich auf GitHub sowie der Projektwebsite.

Name Lerna
Projektwebsite https://lernajs.io/
GitHub https://github.com/lerna/lerna#readme
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -