Číst v angličtině

Sdílet prostřednictvím


Koncept: Výchozí funkce

Tento článek popisuje koncept výchozích funkcí, jejich důsledků a strategií pro efektivní správu.

Výchozí funkce jsou sada funkcí , které se automaticky zahrnou při instalaci portu, pokud nejsou explicitně zakázány. Tyto funkce zajišťují, že knihovna udržuje základní úroveň funkčnosti, i když se zvyšuje složitost grafu závislostí.

Poznámka

Ne všechny porty obsahují výchozí funkce.

Role výchozích funkcí

Výchozí funkce poskytují uživatelsky přívětivé prostředí tím, že zajišťují dostupnost základních funkcí v knihovnách s modulárními funkcemi.

Knihovna, která může například extrahovat různé formáty archivu, může mít každý formát jako volitelnou funkci. Bez výchozích funkcí nemusí knihovna obsahovat žádný algoritmus extrakce, který by zkomplikoval počáteční použití.

Balíčky nainstalované nástrojem vcpkg budou vždy obsahovat výchozí funkce, pokud to výslovně nepožaduje jinak. Toto chování platí pro balíčky vyžadované přímo uživatelem prostřednictvím souboru manifestu nebo vyvolání instalace vcpkg a pro balíčky vyžadované jako závislosti.

Zakázání výchozích funkcí v režimu manifestu

Přidáním atributu "default-features": false do deklarace závislosti zakažte instalaci výchozích funkcí.

Zakázání automatické instalace výchozích funkcí je možné jenom pro požadované závislosti uživatele.

Pokud chcete zakázat výchozí funkce pro tranzitivní závislost, musíte ji zvýšit na přímou závislost na manifestu projektu.

Zakázání výchozích funkcí v klasickém režimu

Přidejte speciální core funkci jako součást požadovaných funkcí balíčků, které chcete nainstalovat.

Poznámka

Podobně jako funguje režim manifestu, pokud chcete zakázat výchozí funkce pro tranzitivní závislost; musíte ho na příkazovém řádku zvýšit na žádost o přímou instalaci.

Příklad 1: Zahrnutí knihovny s výchozími funkcemi

{
  "name": "my-application",
  "version": "0.15.2",
  "dependencies": [
    "extract-any"
  ]
}

V tomto scénáři extract-any se instaluje s výchozími funkcemi a zajišťuje okamžitou funkčnost.

Příklad 2: Zakázání výchozích funkcí (režim manifestu)

{
  "name": "my-application",
  "version": "0.15.2",
  "dependencies": [
    {
      "name": "extract-any",
      "default-features": false
    }
  ]
}

extract-any Tady se nainstaluje bez výchozích funkcí, což umožňuje přizpůsobené nastavení.

Příklad 3: Zakázání výchozích funkcí (klasický režim)

vcpkg install extract-any[core]

extract-any Tady se nainstaluje bez výchozích funkcí pomocí speciální core funkce.

Interakce s výchozími funkcemi

  1. Instalace portu s výchozími funkcemi (výchozí chování):: vcpkg install extract-any Nainstaluje extract-any se s jeho výchozími funkcemi (extract-any[format-a]), a to kvůli absenci konkrétních požadavků na funkce.

  2. Zadání funkce bez zakázání výchozích hodnot: vcpkg install extract-any[format-b] vede k instalaci extract-any se zadanými (format-b) i výchozími (format-a) funkcemi (extract-any[format-a,format-b]).

  3. Explicitní zakázání výchozích funkcí: nainstaluje extract-any se bez výchozích funkcí, protože [core] je explicitně vyloučívcpkg install extract-any[core].

  4. Přechodné závislosti a výchozí funkce: vcpkg install extract-any[format-b] portB může mít za následek extract-any[format-a,format-b] portB instalaci, pokud portB závisí na extract-any[format-a], ale explicitně nezakazuje extract-anyvýchozí funkce.

  5. Kombinování portů s různými specifikacemi funkcí: vcpkg install extract-any[format-b] portB instalace , včetně extract-anyvýchozích funkcí, pokud nejsou explicitně vyloučenyextract-any[format-a, format-b] portB.

  6. Komplexní zakázání výchozích funkcí: vcpkg install extract-any[core] portB zajišťuje, že extract-any se nainstaluje jenom s explicitně požadovanými funkcemi, s výjimkou výchozích hodnot.

Správa výchozích funkcí

Efektivní správa výchozích funkcí v rámci projektů:

  • Buďte explicitní: Zadejte jenom funkce, které potřebujete. Slouží [core] k zakázání výchozích funkcí v případě potřeby.
  • Kontrola závislostí: Umožňuje vcpkg depend-info <port> porozumět rozlišení závislostí a odpovídajícím způsobem upravit konfigurace.
  • Využití přepsání a směrných plánů: Využijte funkce správy verzí a standardních hodnot pro větší kontrolu nad řešeními závislostí.

Další informace najdete v následujících článcích:

Přijetí jasné strategie správy výchozích funkcí pomůže zjednodušit správu závislostí projektu a zajistit tak, abyste zahrnuli jenom to, co je nezbytné pro funkce vaší aplikace.