Freigeben über


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

  1. Installieren eines Ports mit Standardfeatures (Standardverhalten):vcpkg install extract-any Wird aufgrund der Fehlenden bestimmter Featureanforderungen mit den Standardfeatures extract-any (extract-any[format-a]) installiert.

  2. 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]

  3. Explizites Deaktivieren von Standardfeatures: vcpkg install extract-any[core] Installationen ohne Standardfeatures extract-any , da [core] sie explizit ausgeschlossen werden.

  4. Transitive Abhängigkeiten und Standardfeatures: vcpkg install extract-any[format-b] portB Kann dazu führen extract-any[format-a,format-b] portB , dass sie installiert wird, wenn portB sie von extract-any[format-a]" abhängig ist, aber nicht explizit die Standardfeatures deaktiviert extract-any.

  5. Kombinieren von Ports mit unterschiedlichen Featurespezifikationenextract-any[format-a, format-b] portB: vcpkg install extract-any[format-b] portB Installationen, einschließlich extract-anyder Standardfeatures, sofern nicht explizit ausgeschlossen.

  6. Umfassende Deaktivierung von Standardfeatures: vcpkg install extract-any[core] portB Stellt sicher, dass nur extract-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.