Abhangigkeitsverwaltung
Abhangigkeitsverwaltung
Abschnitt betitelt „Abhangigkeitsverwaltung“Wippy verwendet ein Lock-Datei-basiertes Abhangigkeitssystem. Module werden im Hub veroffentlicht, als Abhangigkeiten in Ihrem Quellcode deklariert und in einer wippy.lock-Datei aufgelost, die exakte Versionen verfolgt.
Projektdateien
Abschnitt betitelt „Projektdateien“wippy.lock
Abschnitt betitelt „wippy.lock“Die Lock-Datei verfolgt die Verzeichnisstruktur Ihres Projekts und die fixierten Abhangigkeiten:
directories: modules: .wippy src: ./srcmodules: - name: acme/http version: v1.2.0 hash: 4ea816fe84ca58a1f0869e5ca6afa93d6ddd72fa09e1162d9e600a7fbf39f0a2 - name: acme/sql version: v2.0.1 hash: b3f9c8e12a456d7890abcdef1234567890abcdef1234567890abcdef12345678| Feld | Beschreibung |
|---|---|
directories.modules | Speicherort fur heruntergeladene Module (Standard: .wippy) |
directories.src | Speicherort Ihres Quellcodes (Standard: ./src) |
modules[].name | Modulbezeichner im Format org/module |
modules[].version | Fixierte semantische Version |
modules[].hash | Inhalts-Hash zur Integritatsprufung |
wippy.yaml
Abschnitt betitelt „wippy.yaml“Modul-Metadaten fur die Veroffentlichung. Nur erforderlich, wenn Sie ein eigenes Modul veroffentlichen:
organization: acmemodule: httpversion: 1.2.0description: HTTP utilities for Wippylicense: MITrepository: https://github.com/acme/wippy-httpkeywords: - http - web| Feld | Erforderlich | Beschreibung |
|---|---|---|
organization | Ja | Kleinbuchstaben, alphanumerisch mit Bindestrichen |
module | Ja | Kleinbuchstaben, alphanumerisch mit Bindestrichen |
version | Nein | Semantische Version (wird beim Veroffentlichen gesetzt) |
description | Nein | Modulbeschreibung |
license | Nein | SPDX-Lizenzbezeichner |
repository | Nein | URL des Quell-Repositorys |
homepage | Nein | Projekt-Homepage |
keywords | Nein | Schlusselworter zur Auffindbarkeit |
authors | Nein | Autorenliste |
Abhangigkeiten deklarieren
Abschnitt betitelt „Abhangigkeiten deklarieren“Fugen Sie ns.dependency-Eintrage in Ihrer _index.yaml hinzu:
version: "1.0"namespace: appentries: - name: dependency.http kind: ns.dependency component: acme/http version: "^1.0.0"
- name: dependency.sql kind: ns.dependency component: acme/sql version: ">=2.0.0"Versionsbeschrankungen
Abschnitt betitelt „Versionsbeschrankungen“| Beschrankung | Beispiel | Trifft zu auf |
|---|---|---|
| Exakt | 1.2.3 | Nur 1.2.3 |
| Caret | ^1.2.0 | >=1.2.0, <2.0.0 |
| Tilde | ~1.2.0 | >=1.2.0, <1.3.0 |
| Bereich | >=1.0.0 | 1.0.0 und hoher |
| Platzhalter | * | Jede Version (wahlt die hochste) |
| Kombiniert | >=1.0.0 <2.0.0 | Zwischen 1.0.0 und 2.0.0 |
Arbeitsablauf
Abschnitt betitelt „Arbeitsablauf“Neues Projekt starten
Abschnitt betitelt „Neues Projekt starten“wippy initErstellt eine wippy.lock mit Standardverzeichnissen.
Abhangigkeiten hinzufugen
Abschnitt betitelt „Abhangigkeiten hinzufugen“wippy add acme/http # Latest versionwippy add acme/http@1.2.3 # Exact versionwippy add acme/http@latest # Latest labelDies aktualisiert die Lock-Datei. Dann installieren:
wippy installAus dem Quellcode auflosen
Abschnitt betitelt „Aus dem Quellcode auflosen“Wenn Ihr Quellcode bereits ns.dependency-Eintrage deklariert:
wippy updateDies durchsucht Ihr Quellverzeichnis, lost alle Abhangigkeitsbeschrankungen auf, aktualisiert die Lock-Datei und installiert die Module.
Abhangigkeiten aktualisieren
Abschnitt betitelt „Abhangigkeiten aktualisieren“wippy update # Re-resolve all dependencieswippy update acme/http # Update only acme/httpwippy update acme/http acme/sql # Update specific modulesBeim Aktualisieren bestimmter Module bleiben andere Module auf ihren aktuellen Versionen fixiert. Falls die Aktualisierung Anderungen an nicht ausgewahlten Modulen erfordert, werden Sie zur Bestatigung aufgefordert.
Aus der Lock-Datei installieren
Abschnitt betitelt „Aus der Lock-Datei installieren“wippy install # Install all from lockwippy install --refresh # Jedes Modul erneut herunterladen (--force und --repair sind Aliase)Modulspeicher
Abschnitt betitelt „Modulspeicher“Heruntergeladene Module werden im Verzeichnis .wippy/vendor/ gespeichert:
project/ wippy.lock src/ _index.yaml .wippy/ vendor/ acme/ http-v1.2.0.wapp sql-v2.0.1.wappStandardmassig werden Module als .wapp-Dateien aufbewahrt. Um sie in Verzeichnisse zu entpacken:
# wippy.lockoptions: unpack_modules: trueMit aktiviertem Entpacken:
.wippy/ vendor/ acme/ http/ wippy.yaml src/ _index.yaml ...Lokale Entwicklung mit Ersetzungen
Abschnitt betitelt „Lokale Entwicklung mit Ersetzungen“Uberschreiben Sie Hub-Module mit lokalen Verzeichnissen fur die Entwicklung:
# wippy.lockdirectories: modules: .wippy src: ./srcmodules: - name: acme/http version: v1.2.0 hash: ...replacements: - from: acme/http to: ../local-httpDer Ersetzungspfad ist relativ zur Lock-Datei. Wenn eine Ersetzung aktiv ist, wird das lokale Verzeichnis anstelle des herstellergebundenen Moduls verwendet. Ersetzungen bleiben uber wippy update-Operationen hinweg erhalten.
Ladereihenfolge
Abschnitt betitelt „Ladereihenfolge“Beim Start ladt Wippy Eintrage aus Verzeichnissen in dieser Reihenfolge:
- Quellverzeichnis (
src) - Ersetzungsverzeichnisse
- Herstellergebundene Modulverzeichnisse
Module mit aktiven Ersetzungen uberspringen ihren Vendor-Pfad.
Integritatsprufung
Abschnitt betitelt „Integritatsprufung“Jedes Modul in der Lock-Datei hat einen Inhalts-Hash. Wahrend der Installation werden heruntergeladene Module anhand ihrer erwarteten Hashes uberpruft. Module mit abweichenden Hashes werden abgelehnt und erneut aus der Registry heruntergeladen.
Siehe auch
Abschnitt betitelt „Siehe auch“- CLI - Befehlsreferenz
- Veroffentlichung - Module im Hub veroffentlichen
- Projektstruktur - Projektaufbau