javascript - what - npm gulp
¿Diferencia entre bower, browserify, requirejs, webpack? (1)
Browserify, RequireJS, WebPack son todos los cargadores de módulos. Tanto AMD como CommonJs son tipos de módulos. Muchas (la mayoría) de las bibliotecas de javascript como JQuery se pueden cargar como módulos. Require ha existido por un tiempo y su IP está bajo la base DOJO. Browerify está ganando popularidad principalmente debido a que el lado del servidor JS (nodo) también funciona del lado del cliente.
Cargadores de módulo javascript del lado del cliente en slant.co.
Bower es un gestor de paquetes que se utiliza principalmente para instalar repositorios de Git y también puede vincularse con GULP o Grunt, que son herramientas de construcción front-end, es decir, utilizan el optimizador requireJS para minimizar, etc.
Puede comparar los tres cargadores de módulos, Bower no es comparable, ya que una vez que sus paquetes copiados están inactivos, eso es todo.
Estoy acostumbrado a proyectos JS simples y pequeños en los que las dependencias de JS se concatenan y minimizan como parte del proceso de construcción utilizando algo como gulp y la etiqueta de script en el html contiene la ruta codificada al archivo JS minificado. No es elegante y probablemente tiene varias desventajas, pero conceptualmente es un enfoque simple.
Pero con proyectos más grandes, entiendo que es bueno tener en cuenta los sistemas de empaque como Bower, browserify, requirejs, webpack, etc. ¿Cuál es el beneficio de usarlos en lugar de la forma en que estoy acostumbrado a hacerlo? ¿Cuáles son las principales formas en que ayuda el proceso de desarrollo?
¿Estas tecnologías que mencioné son competidoras, o algunas de ellas cumplen diferentes propósitos y se pueden usar juntas? ¿Cuál es la diferencia entre ellos?
También miré en el paquete web y se describe en algunos lugares como si fuera un sustituto de trago. ¿Pensé que gulp es un sistema de compilación y es diferente de estas herramientas de empaquetado?
EDITAR: ¿Cómo se relacionan estos conceptos con AMD o CommonJS?