Koncepcja: Funkcje domyślne
W tym artykule opisano koncepcję funkcji domyślnych, ich implikacji i strategii efektywnego zarządzania.
Funkcje domyślne to zestaw funkcji automatycznie dołączanych po zainstalowaniu portu, chyba że jawnie wyłączone. Te funkcje zapewniają, że biblioteka utrzymuje poziom podstawowej funkcjonalności, nawet w miarę wzrostu złożoności grafu zależności.
Uwaga
Nie wszystkie porty zawierają funkcje domyślne.
Funkcje domyślne zapewniają przyjazne dla użytkownika środowisko, zapewniając, że podstawowe funkcje są dostępne w bibliotekach z funkcjami modułowymi.
Na przykład biblioteka, która może wyodrębniać różne formaty archiwum, może mieć każdy format jako funkcję opcjonalną. Bez domyślnych funkcji biblioteka może nie zawierać żadnego algorytmu wyodrębniania z pudełka, komplikując wstępne użycie.
Pakiety zainstalowane przez program vcpkg zawsze będą zawierać ich funkcje domyślne, chyba że jawnie zażądano inaczej. To zachowanie dotyczy pakietów wymaganych bezpośrednio przez użytkownika za pośrednictwem pliku manifestu lub wywołania instalacji programu vcpkg oraz pakietów wymaganych jako zależności.
"default-features": false
Dodaj atrybut do deklaracji zależności, aby wyłączyć instalację jej funkcji domyślnych.
Wyłączenie automatycznej instalacji funkcji domyślnych jest możliwe tylko w przypadku zależności żądanych przez użytkownika.
Jeśli chcesz wyłączyć funkcje domyślne dla zależności przechodniej, musisz podwyższyć jej poziom do bezpośredniej zależności od manifestu projektu.
Dodaj funkcję specjalną core
w ramach żądanych funkcji pakietów, które chcesz zainstalować.
Uwaga
Podobnie jak w przypadku działania trybu manifestu, jeśli chcesz wyłączyć funkcje domyślne dla zależności przechodniej; Należy podwyższyć poziom go do żądania instalacji bezpośredniej w wierszu polecenia.
{
"name": "my-application",
"version": "0.15.2",
"dependencies": [
"extract-any"
]
}
W tym scenariuszu extract-any
program jest instalowany z funkcjami domyślnymi, zapewniając natychmiastową funkcjonalność.
{
"name": "my-application",
"version": "0.15.2",
"dependencies": [
{
"name": "extract-any",
"default-features": false
}
]
}
extract-any
W tym miejscu jest instalowany bez domyślnych funkcji, co pozwala na dostosowanie konfiguracji.
vcpkg install extract-any[core]
extract-any
W tym miejscu program jest instalowany bez domyślnych funkcji przy użyciu specjalnej core
funkcji.
Instalowanie portu z funkcjami domyślnymi (zachowanie domyślne):
vcpkg install extract-any
jest instalowanyextract-any
z jego funkcjami domyślnymi (extract-any[format-a]
), ze względu na brak określonych żądań funkcji.Określanie funkcji bez wyłączania wartości domyślnych: prowadzi do instalacji
extract-any
zarówno z określonymi (format-b
) i domyślnymi funkcjami (format-a
extract-any[format-a,format-b]
).vcpkg install extract-any[format-b]
Jawne wyłączanie funkcji domyślnych
extract-any
:vcpkg install extract-any[core]
instaluje bez żadnych funkcji domyślnych, ponieważ[core]
jawnie je wyklucza.Przejściowe zależności i funkcje domyślne:
vcpkg install extract-any[format-b] portB
może spowodowaćextract-any[format-a,format-b] portB
zainstalowanie, jeśliportB
zależy odextract-any[format-a]
elementu , ale nie powoduje jawnego wyłączeniaextract-any
funkcji domyślnych.Łączenie portów z różnymi specyfikacjami funkcji:
vcpkg install extract-any[format-b] portB
instalujeextract-any[format-a, format-b] portB
funkcje domyślne,extract-any
chyba że jawnie wykluczone.Kompleksowe wyłączanie funkcji domyślnych:
vcpkg install extract-any[core] portB
zapewnia, żeextract-any
jest instalowany tylko z jawnie żądanymi funkcjami, z wyłączeniem ustawień domyślnych.
Aby skutecznie zarządzać funkcjami domyślnymi w projektach:
- Być jawne: określ tylko potrzebne funkcje. Użyj
[core]
polecenia , aby wyłączyć funkcje domyślne w razie potrzeby. - Sprawdź zależności: użyj polecenia
vcpkg depend-info <port>
, aby poznać rozwiązania zależności i odpowiednio dostosować konfiguracje. - Korzystanie z przesłonięć i punktów odniesienia: korzystaj z funkcji przechowywania wersji i punktów odniesienia, aby uzyskać większą kontrolę nad rozwiązaniami zależności.
Aby uzyskać więcej informacji, zobacz następujące zasoby:
Wdrożenie jasnej strategii zarządzania funkcjami domyślnymi pomoże usprawnić zarządzanie zależnościami projektu, zapewniając uwzględnienie tylko elementów niezbędnych do działania aplikacji.
Opinia o produkcie vcpkg
vcpkg to projekt typu open source. Wybierz link, aby przekazać opinię: