¿Por qué debería usar Bower? [cerrado]

32

Puedo apreciar plenamente los beneficios de un administrador de paquetes como Python pip, Node npmo Ruby Gems, ya que están haciendo mucho más que agregar archivos a la ruta de sus aplicaciones.

Tal vez me estoy perdiendo el punto, o estoy siendo obtuso, pero aquí están los puntos negativos que puedo ver:

  • Paso separado al construir un proyecto
  • Dependencia separada para instalar a través de otro administrador de paquetes (yo dawg)
  • Más desorden en la raíz del proyecto con bower.jsony / o.bowerrc
  • Confianza en que el registro esté actualizado, sea correcto y esté disponible
  • Algunas importaciones / referencias a cosas como imágenes no funcionarán
  • Gran superposición con npm, y a menudo no está claro qué recurso usar, cuándo

Los aspectos positivos que puedo ver son estos:

  • No tengo que descargar las dependencias manualmente
  • Opcionalmente, instale paquetes como parte del andamiaje según las indicaciones del usuario o similares.

Realmente me gustaría saber de los beneficios que desconozco, y debo decir que no estoy tratando de ser provocativo, realmente quiero saberlo.

Wil
fuente
1
Relacionado: programmers.stackexchange.com/q/174959/34183
Mike Partridge
En última instancia, todos los administradores de paquetes que menciona implican la descarga de dependencias, y comparten algunos de los mismos "aspectos negativos" que enumeró para Bower. Del mismo modo, Bower comparte algunos de los beneficios de npm, pip y rubygems: por ejemplo, Bower facilita la actualización de sus dependencias a la última versión (esta es una gran), y reduce en gran medida el desorden en su repositorio de git ya que usted No es necesario registrar el código de dependencia.
sffc
66
Es una pena que esta pregunta se haya cerrado por estar "principalmente basada en la opinión". El OP está pidiendo la opinión de expertos. "¿Cómo me ayuda esto en el proceso de desarrollo?"
Dave Kanter
Parece que la tendencia es que no debes usar Bower, no tiene herramientas ni ventajas sobre el uso de npm combinado con Browserify. Parece que la industria ha hablado y la cantidad de módulos para bower está disminuyendo y npm y Browserify se está convirtiendo en el estándar: quora.com/Why-use-Bower-when-there-is-npm
Brian Ogden

Respuestas:

12

Desde el archivo Léame :

Bower es un administrador de paquetes para la web. Ofrece una solución genérica y no opuesta al problema de la administración de paquetes front-end, al tiempo que expone el modelo de dependencia de paquetes a través de una API que puede ser consumida por una pila de compilación más obstinada. No hay dependencias de todo el sistema, no se comparten dependencias entre diferentes aplicaciones y el árbol de dependencias es plano.

Bower atropella a Git y es independiente del paquete. Un componente empaquetado puede estar formado por cualquier tipo de activo y utilizar cualquier tipo de transporte (por ejemplo, AMD, CommonJS, etc.).

Bower tiene muchos de los beneficios de otros administradores de dependencias. Estoy seguro de que hay otros, pero los beneficios que he notado hasta ahora incluyen:

  • Simplifique lo que podría llamarse gestión de dependencia declarativa; es decir, declaras tus dependencias en bower.json para que otras cosas puedan determinarlas fácilmente
  • No es necesario comprometer dependencias para el control de versiones
  • El control de versiones semántico se usa para ayudar a definir un rango de versiones aceptables para una dependencia, lo que facilita la actualización a versiones más nuevas dentro del rango definido
  • No es necesario ubicar varias compilaciones (depuración, minimizado, etc.)
  • Fácil de usar diferentes compilaciones de una dependencia para dev vs. prod
  • Puede distribuir el archivo bower.json y todos pueden ponerse al día con una simple "instalación de bower"
Mike Partridge
fuente
2
Definitivamente desearía haber escrito la pregunta de una manera menos provocativa. Realmente supongo que el beneficio crucial que he perdido es usar la API como parte de un proceso de construcción / andamiaje. Me gustaría ver su uso en la naturaleza en alguna parte.
Wil
Me di cuenta de Bower cuando puse en marcha una aplicación web angular usando el generador angular para Yeoman. Probar eso podría darle una idea de cómo se puede usar.
Mike Partridge el
He usado Yeoman y Grunt Init antes de eso, y tal vez es solo que mis necesidades siempre han significado que los componentes frontales nunca se desviarían: siempre serían Angulares, jQuery, Mocha, etc., pero puedo ver eso si un usuario quiere intercambiar un marco de prueba de una lista de opciones de inicio rápido, eso sería útil. Creo que la principal ventaja que tiene sentido son las opciones de arranque y los modificadores. ¿Crees que es justo?
Wil
2
También portabilidad. Puede distribuir el archivo bower.json y todos pueden ponerse al día con una simple "instalación de bower".
Dave Kanter
1
s/bower/npm/iy esta respuesta sigue siendo 100% cierta.
Qix