Konzept: Standardfeatures
In diesem Artikel wird das Konzept der Standardfeatures, deren Auswirkungen und Strategien für ein effektives Management beschrieben.
Standardfeatures sind eine Reihe von Features, die automatisch bei der Installation eines Ports enthalten sind, es sei denn, dies ist explizit deaktiviert. Diese Features stellen sicher, dass eine Bibliothek Standard eine grundlegende Funktionalitätsebene enthält, auch wenn die Komplexität ihrer Abhängigkeitsdiagramm zunimmt.
Hinweis
Nicht alle Ports enthalten Standardfeatures.
Rolle der Standardfeatures
Standardfeatures bieten eine benutzerfreundliche Benutzererfahrung, indem sichergestellt wird, dass wesentliche Funktionen in Bibliotheken mit modularen Features verfügbar sind.
Beispielsweise kann eine Bibliothek, die verschiedene Archivformate extrahieren kann, jedes Format als optionales Feature aufweisen. Ohne Standardfeatures enthält die Bibliothek möglicherweise keinen Extraktionsalgorithmus außerhalb des Felds, was die anfängliche Verwendung erschwert.
Von vcpkg installierte Pakete enthalten immer ihre Standardfeatures, sofern nicht explizit anders angefordert. Dieses Verhalten gilt für Pakete, die vom Benutzer direkt über eine Manifestdatei oder einen vcpkg-Installationsaufruf und für Pakete erforderlich sind, die als Abhängigkeiten erforderlich sind.
Deaktivieren der Standardfeatures im Manifestmodus
Fügen Sie das "default-features": false
Attribut einer Abhängigkeitsdeklaration hinzu, um die Installation der Standardfeatures zu deaktivieren.
Das Deaktivieren der automatischen Installation von Standardfeatures ist nur für vom Benutzer angeforderte Abhängigkeiten möglich.
Wenn Sie Standardfeatures für eine transitive Abhängigkeit deaktivieren möchten, müssen Sie sie in eine direkte Abhängigkeit vom Manifest Ihres Projekts höher stufen.
Deaktivieren der Standardfeatures im klassischen Modus
Fügen Sie das spezielle core
Feature als Teil der angeforderten Features der Pakete hinzu, die Sie installieren möchten.
Hinweis
Ähnlich wie der Manifestmodus, wenn Sie Standardfeatures für eine transitive Abhängigkeit deaktivieren möchten; Sie müssen sie in Ihrer Befehlszeile in eine direkte Installationsanforderung höher stufen.
Beispiel 1: Einschließen einer Bibliothek mit Standardfeatures
{
"name": "my-application",
"version": "0.15.2",
"dependencies": [
"extract-any"
]
}
In diesem Szenario extract-any
wird mit seinen Standardfeatures installiert, um die sofortige Funktionalität sicherzustellen.
Beispiel 2: Deaktivieren der Standardfeatures (Manifestmodus)
{
"name": "my-application",
"version": "0.15.2",
"dependencies": [
{
"name": "extract-any",
"default-features": false
}
]
}
extract-any
Hier wird ohne standardfeatures installiert, sodass ein maßgeschneidertes Setup möglich ist.
Beispiel 3: Deaktivieren von Standardfeatures (klassischer Modus)
vcpkg install extract-any[core]
extract-any
Hier wird ohne die Standardfeatures mithilfe der speziellen core
Funktion installiert.
Standardfeatureinteraktionen
Installieren eines Ports mit Standardfeatures (Standardverhalten):
vcpkg install extract-any
Wird aufgrund der Fehlenden bestimmter Featureanforderungen mit den Standardfeaturesextract-any
(extract-any[format-a]
) installiert.Angeben eines Features ohne Deaktivierung der Standardwerte: führt zur Installation sowohl der
extract-any
angegebenen (format-b
) als auch der Standardfeatures () (extract-any[format-a,format-b]
format-a
).vcpkg install extract-any[format-b]
Explizites Deaktivieren von Standardfeatures:
vcpkg install extract-any[core]
Installationen ohne Standardfeaturesextract-any
, da[core]
sie explizit ausgeschlossen werden.Transitive Abhängigkeiten und Standardfeatures:
vcpkg install extract-any[format-b] portB
Kann dazu führenextract-any[format-a,format-b] portB
, dass sie installiert wird, wennportB
sie vonextract-any[format-a]
" abhängig ist, aber nicht explizit die Standardfeatures deaktiviertextract-any
.Kombinieren von Ports mit unterschiedlichen Featurespezifikationen
extract-any[format-a, format-b] portB
:vcpkg install extract-any[format-b] portB
Installationen, einschließlichextract-any
der Standardfeatures, sofern nicht explizit ausgeschlossen.Umfassende Deaktivierung von Standardfeatures:
vcpkg install extract-any[core] portB
Stellt sicher, dass nurextract-any
die explizit angeforderten Features installiert werden, mit Ausnahme der Standardwerte.
Verwalten von Standardfeatures
So verwalten Sie Standardfeatures in Ihren Projekten effektiv:
- Seien Sie explizit: Geben Sie nur die benötigten Features an. Verwenden Sie
[core]
diese Option, um die Standardfeatures bei Bedarf zu deaktivieren. - Untersuchen von Abhängigkeiten: Verwenden Sie diese,
vcpkg depend-info <port>
um Abhängigkeitsauflösungen zu verstehen und Ihre Konfigurationen entsprechend anzupassen. - Nutzen Sie Außerkraftsetzungen und Baselines: Nutzen Sie Versionsverwaltungs- und Basisplanfeatures, um mehr Kontrolle über Abhängigkeitsauflösungen zu haben.
Weitere Informationen finden Sie unter
Durch die Einführung einer klaren Strategie zum Verwalten von Standardfeatures können Sie das Abhängigkeitsmanagement Ihres Projekts optimieren und sicherstellen, dass Sie nur die für die Funktionalität Ihrer Anwendung erforderlichen Funktionen einbeziehen.