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

Lerna – JavaScript-Projekte mit mehreren Packages managen
Keine 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.

Angular Camp im November 2020

Mit Manfred Steyer (SOFTWAREarchitekt)

Manfred ist Trainer und Berater mit Fokus darauf, im gesamten deutschen Sprachraum Unternehmen bei der Umsetzung webbasierter Geschäftsanwendungen mit Angular zu unterstützen.

Neuer Blogpost zu Angular 10

Angular 10, Ivy und die Zukunft von Angular

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
webinale – the holistic web conference

Diversity matters – Onlinemarketing 2020

mit Astrid Kramer (Astrid Kramer Consulting)

Das Recht auf Privatsphäre – eine Chance für UX

mit Lutz Schmitt (Lutz Schmitt Design & Consulting)

The Revenge of Structured Data

mit Stephan Cifka (Performics Germany GmbH)

IT Security Summit 2020

Zero Trust – why are we having this conversation?

mit Victoria Almazova (Microsoft)

Digitaler Ersthelfer

mit Martin Wundram (DigiTrace GmbH)

Unsere Redaktion empfiehlt:

Relevante Beiträge

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments
X
- Gib Deinen Standort ein -
- or -