Conceito: Recursos padrão
Este artigo descreve o conceito de recursos padrão, suas implicações e estratégias para um gerenciamento eficaz.
Os recursos padrão são um conjunto de recursos incluídos automaticamente quando uma porta é instalada, a menos que explicitamente desabilitada. Esses recursos garantem que uma biblioteca mantenha um nível de linha de base de funcionalidade, mesmo quando a complexidade de seu gráfico de dependência aumenta.
Observação
Nem todas as portas contêm recursos padrão.
Função dos recursos padrão
Os recursos padrão fornecem uma experiência amigável, garantindo que funcionalidades essenciais estejam disponíveis em bibliotecas com recursos modulares.
Por exemplo, uma biblioteca capaz de extrair vários formatos de arquivo pode ter cada formato como um recurso opcional. Sem recursos padrão, a biblioteca pode não incluir nenhum algoritmo de extração pronto para uso, complicando o uso inicial.
Os pacotes instalados pelo vcpkg sempre incluirão seus recursos padrão, a menos que explicitamente solicitado de outra forma. Esse comportamento se aplica a pacotes exigidos diretamente pelo usuário por meio de um arquivo de manifesto ou chamada de instalação vcpkg e a pacotes necessários como dependências.
Desabilitando recursos padrão no modo de manifesto
Adicione o atributo a uma declaração de dependência para desabilitar a "default-features": false
instalação de seus recursos padrão.
Desabilitar a instalação automática de recursos padrão só é possível para dependências solicitadas pelo usuário.
Se você quiser desabilitar os recursos padrão para uma dependência transitiva, será necessário promovê-la a uma dependência direta no manifesto do projeto.
Desabilitando recursos padrão no modo clássico
Adicione o recurso especial core
como parte dos recursos solicitados dos pacotes que você deseja instalar.
Observação
Semelhante a como o modo manifesto funciona, se você quiser desabilitar os recursos padrão para uma dependência transitiva; você precisa promovê-lo a uma solicitação de instalação direta em sua linha de comando.
Exemplo 1: Incluindo uma biblioteca com recursos padrão
{
"name": "my-application",
"version": "0.15.2",
"dependencies": [
"extract-any"
]
}
Nesse cenário, extract-any
é instalado com seus recursos padrão, garantindo funcionalidade imediata.
Exemplo 2: Desabilitando recursos padrão (modo de manifesto)
{
"name": "my-application",
"version": "0.15.2",
"dependencies": [
{
"name": "extract-any",
"default-features": false
}
]
}
Aqui, extract-any
é instalado sem seus recursos padrão, permitindo uma configuração personalizada.
Exemplo 3: Desabilitando recursos padrão (modo clássico)
vcpkg install extract-any[core]
Aqui, extract-any
é instalado sem seus recursos padrão usando o recurso especial core
.
Interações de recursos padrão
Instalando uma porta com recursos padrão (comportamento padrão):
vcpkg install extract-any
instalaextract-any
com seus recursos padrão (extract-any[format-a]
), devido à ausência de solicitações de recursos específicos.Especificando um recurso sem desabilitar padrões:
vcpkg install extract-any[format-b]
leva à instalação deextract-any
com os recursos especificados (format-b
) e padrão (format-a
) (extract-any[format-a,format-b]
).Desativando explicitamente os recursos padrão:
vcpkg install extract-any[core]
instalaextract-any
sem nenhum recurso padrão, pois[core]
os exclui explicitamente.Dependências transitivas e recursos padrão:
vcpkg install extract-any[format-b] portB
podem resultar naextract-any[format-a,format-b] portB
instalação seportB
depender doextract-any[format-a]
, mas não desabilitaextract-any
explicitamente os recursos padrão do .Combinando portas com especificações de
extract-any[format-a, format-b] portB
recursos variados:vcpkg install extract-any[format-b] portB
instala , incluindoextract-any
recursos padrão do , a menos que explicitamente excluído.Desativação abrangente dos recursos padrão:
vcpkg install extract-any[core] portB
garante queextract-any
seja instalado apenas com os recursos explicitamente solicitados, excluindo os padrões.
Gerenciando recursos padrão
Para gerenciar com eficiência os recursos padrão em seus projetos:
- Seja explícito: especifique apenas os recursos necessários. Use
[core]
para desabilitar os recursos padrão quando necessário. - Inspecionar dependências: use
vcpkg depend-info <port>
para entender as resoluções de dependência e ajustar suas configurações de acordo. - Utilize substituições e linhas de base: aproveite os recursos de controle de versão e linha de base para obter mais controle sobre as resoluções de dependência.
Para saber mais, consulte o seguinte:
Adotar uma estratégia clara para gerenciar recursos padrão ajudará a simplificar o gerenciamento de dependências do seu projeto, garantindo que você inclua apenas o necessário para a funcionalidade do seu aplicativo.