Tenho uma biblioteca Angular que contém vários componentes autônomos. Alguns desses componentes são dependentes de bibliotecas de terceiros (angular2-draggable, @fortawesome/angular-fontawesome, etc.). Meu objetivo é que eu possa usar essa biblioteca em um aplicativo, mas apenas adicionar dependências para os componentes que são realmente usados no aplicativo.
Por exemplo, a biblioteca tem componentes de
- Foo
- Barra (depende de angular2-draggable)
No aplicativo de consumo, se eu estiver usando apenas o componente Foo, então não quero ter uma dependência em angular2-draggable. Como posso fazer isso?
Parece que a abordagem correta é adicionar angular2-draggable como uma dependência de peer opcional, como em:
"sideEffects": false,
"peerDependencies": {
"angular2-draggable": "^16.0.0"
},
"peerDependenciesMeta": {
"angular2-draggable": {
"optional": true
}
}
A biblioteca será compilada e publicada perfeitamente. Tudo é instalado conforme o esperado no aplicativo consumidor. Mas ao iniciar o aplicativo, estou recebendo erros como:
Error: Module not found: Error: Can't resolve 'angular2-draggable'
Isso é verdade mesmo se Bar não for usado no aplicativo consumidor. Como posso garantir que apenas as dependências necessárias sejam necessárias?