Por que devo usar o Bower? [fechadas]


32

Eu posso apreciar completamente os benefícios de um gerenciador de pacotes como o Python pip, o Node npmou o Ruby Gems, pois eles estão fazendo muito mais do que adicionar arquivos ao caminho do aplicativo.

Talvez eu esteja perdendo o objetivo ou esteja sendo obtuso, mas aqui estão os negativos que posso ver:

  • Etapa separada ao criar um projeto
  • Dependência separada para instalar através de outro gerenciador de pacotes (yo dawg)
  • Mais desordem nos projetos raiz com bower.jsone / ou.bowerrc
  • Confiança no registro atualizado, correto e disponível
  • Algumas importações / referências a coisas como imagens não funcionam
  • Sobreposição enorme com npm e muitas vezes não está claro qual recurso usar, quando

Os pontos positivos que posso ver são os seguintes:

  • Não preciso baixar as dependências manualmente
  • Opcionalmente, instale pacotes como parte do andaime com base em avisos do usuário ou similares

Eu realmente gostaria de saber de todos os benefícios que não conheço e devo dizer que não estou tentando ser provocativo, que realmente quero saber.



Por fim, todos os gerenciadores de pacotes mencionados incluem o download de dependências e compartilham alguns dos mesmos "negativos" listados para o Bower. Da mesma forma, o Bower compartilha alguns dos benefícios de npm, pip e rubygems: por exemplo, o Bower facilita a atualização de suas dependências para a versão mais recente (essa é grande) e reduz bastante a desordem no seu repositório Git desde que você não precisa fazer check-in do código de dependência.
Sffc

6
É uma pena que esta questão tenha sido encerrada por ser "principalmente baseada em opiniões". O OP está pedindo uma opinião de um especialista. "Como isso me ajuda no processo de desenvolvimento?"
Dave Kanter

Parece que a tendência é que você não use o bower, ele não possui ferramentas ou vantagens sobre o uso do npm combinado com o Browserify. Parece que a indústria tem falado e número de contagens de módulos para bower está diminuindo e NPM e Browserify está se tornando a norma: quora.com/Why-use-Bower-when-there-is-npm
Brian Ogden

Respostas:


12

No README :

Bower é um gerenciador de pacotes para a web. Ele oferece uma solução genérica e sem opinião para o problema de gerenciamento de pacotes front-end, enquanto expõe o modelo de dependência de pacotes por meio de uma API que pode ser consumida por uma pilha de construção mais opinativa. Não há dependências em todo o sistema, nenhuma dependência é compartilhada entre aplicativos diferentes e a árvore de dependências é simples.

Bower atropela o Git e é independente de pacote. Um componente empacotado pode ser composto de qualquer tipo de ativo e usar qualquer tipo de transporte (por exemplo, AMD, CommonJS, etc.).

Bower tem muitos dos benefícios de outros gerentes de dependência. Tenho certeza de que existem outros, mas os benefícios que notei até agora incluem:

  • Simplifique o que pode ser chamado de gerenciamento de dependência declarativa; ou seja, você declara suas dependências no bower.json para que outras coisas possam determiná-las facilmente
  • Não há necessidade de confirmar dependências no controle de versão
  • O controle de versão semântico é usado para ajudar a definir um intervalo de versões aceitáveis ​​para uma dependência, o que facilita a atualização para versões mais recentes dentro do intervalo definido
  • Não há necessidade de localizar várias compilações (depuração, minificação etc.)
  • Simples de usar diferentes construções de uma dependência para dev vs. prod
  • Você pode distribuir o arquivo bower.json e todos podem se atualizar com uma simples "instalação do bower"

2
Definitivamente, gostaria de ter escrito a pergunta de uma maneira menos provocativa. Realmente, acho que o benefício crucial que perdi é o uso da API como parte de um processo de construção / andaime. Eu gostaria de ver o uso na natureza em algum lugar.
Wil

Tomei conhecimento de Bower quando inicializei um aplicativo Angular usando o gerador Angular para Yeoman. Tentar isso pode lhe dar uma idéia de como ele pode ser usado.
Mike Partridge

Eu usei o Yeoman e o Grunt Init antes disso, e talvez seja apenas porque minhas necessidades sempre significaram que os componentes do front-end nunca se desviariam - eles sempre seriam Angular, jQuery, Mocha etc., mas posso ver que, se um usuário quiser trocar uma estrutura de teste de uma lista de opções de prompt de inicialização, que seria útil. Eu acho que a principal vantagem que faz sentido são as opções e modificadores de inicialização. Você acha isso justo?
Wil

2
Também portabilidade. Você pode distribuir o arquivo bower.json e todos podem se atualizar com uma simples "instalação do bower".
Dave Kanter

1
s/bower/npm/ie essa resposta ainda é 100% verdadeira.
Qix
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.