javascript - tutorial - instalar bower
¿Para qué sirven npm, bower, gulp, Yeoman y gruñido? (4)
Gulp vs Grunt: Gulp proporciona más flexibilidad con la automatización de tareas, Grunt viene incorporado con mucha funcionalidad según las prácticas de desarrollo comunes. Hay dos diferencias principales entre Grunt y Gulp:
- Grunt se enfoca en la configuración, mientras que Gulp se enfoca en el código
- Grunt se creó en torno a un conjunto de tareas incorporadas y de uso común, mientras que Gulp dio la vuelta con la idea de imponer nada, pero cómo las micro tareas de la comunidad deberían conectarse entre sí Leer aquí
- NodeJS: es un lenguaje de scripting del lado del servidor que no bloquea. Lo que significa que las operaciones no bloquearán la ejecución adicional hasta que la operación actual finalice.
Git: Como mencionaste, es una herramienta SCM, ampliamente utilizada. Según los documentos de GitHub, es diferente de otras herramientas de SCM ya que los datos nunca se eliminan.
Git piensa en sus datos más como un conjunto de instantáneas de un mini sistema de archivos. Cada vez que se compromete o guarda el estado de su proyecto en Git, básicamente toma una imagen de cómo se ven todos los archivos en ese momento y almacena una referencia a esa instantánea.
Cuando haces acciones en Git, casi todas ellas solo agregan datos a la base de datos de Git. Es muy difícil hacer que el sistema haga cualquier cosa que no se pueda deshacer o hacer que borre datos de cualquier manera. Como en cualquier VCS, puede perder o desordenar los cambios que aún no ha cometido; pero después de que usted ingresa una instantánea en Git, es muy difícil perderla, especialmente si envía su base de datos regularmente a otro repositorio.
- Bower vs NPM: Bower y NPM son administradores de dependencias, pero los módulos de Bower son para desarrollo front-end. NPM es una gran colección de módulos para usar con el backend de NodeJS. Esta respuesta SO lo cubre mejor
Soy desarrollador de back-end, y estoy ligeramente confundido por npm, bower, gulp, grunt y Yeoman. Cada vez que le pregunto a alguien cuál es su propósito, la respuesta tiende a reducirse al administrador de dependencias, a todos ellos. Sin duda, no necesitamos cuatro herramientas diferentes que hagan lo mismo.
¿Puede alguien explicar por qué es bueno cada uno de estos en el menor número de oraciones posible , si es posible, solo uno por herramienta, utilizando un idioma que un niño de cinco años (con habilidades de desarrollo) podría entender?
Por ejemplo:
- SVN almacena, gestiona y realiza un seguimiento de los cambios en nuestro código fuente
He usado maven, Jenkins, nexus y horm en el pasado; tal vez podrías comparar las herramientas anteriores con estas?
También siéntase libre de agregar otras herramientas frontales a la lista.
Esto es lo que he descubierto hasta ahora; sin embargo, no estoy seguro de que sea correcto:
- Administrador de dependencias de bower para desarrollo front-end / bibliotecas JS, utiliza una lista de dependencia plana
- El administrador de dependencias npm para el servidor node.js puede resolver dependencias transitivas / árboles de dependencias
- grunt ejecuta tareas, al igual que Jenkins, pero la localidad en la línea de comando
- Yeoman proporcionó andamios, es decir, proyectos de esqueletos
- trago igual que gruñido, pero escrito solo en js
- servidor node.js para aplicaciones js?
- git descentralizado SCM / VCS, homólogo de svn / cvs
¿Estoy cerca? :)
¡Estás cerca! Bienvenido a JavaScript :)
Déjame darte una breve descripción y una característica con la que la mayoría de los desarrolladores pasan algún tiempo.
bower Se centra en los paquetes que se usan en el navegador. Cada bower install <packagename>
apunta exactamente a un archivo para ser incluido (se puede descargar más). Debido al éxito de webpack, browserify y babel, es en su mayoría obsoleto como administrador de dependencias de primera clase.
npm Históricamente se enfoca en el código NodeJS pero ha descartado bower para módulos de navegador. No dejes que nadie te engañe: la NGP es enorme. NPM también carga MUCHOS archivos en su proyecto y una nueva instalación de npm siempre es una buena razón para preparar una nueva taza de café. NPM es fácil de usar, pero puede romper su aplicación al cambiar de entorno debido a la manera flexible de hacer referencia a las versiones y la arbitrariedad de la publicación de módulos. Research Shrink Wrap e npm install --save-exact
gruñido Facilita la automatización de tareas. Gulps es un hermano mayor y algo más perezoso. La comunidad de JavaScript solía pasar mucho tiempo con él en 2014. Grunt ya se considera heredado en algunos lugares, pero todavía hay una gran cantidad de automatización realmente poderosa que se puede encontrar. La configuración puede ser una pesadilla para casos de uso más grandes. Sin embargo, hay un módulo gruñón para eso.
gulp Hace lo mismo que gruñir, pero es más rápido.
npm run-script Quizás no necesites corredores de tareas. Los scripts de NodeJS son realmente fáciles de escribir, por lo que la mayoría de los casos de uso permiten un flujo de trabajo de automatización de tareas personalizado. Ejecute scripts desde el contexto de su archivo package.json utilizando npm run-script
webpack No te pierdas el paquete web. Especialmente si te sientes perdido en las muchas formas de escribir JavaScript en un código modular coherente. Webpack empaqueta archivos .js en módulos y lo hace espléndidamente. Webpack es altamente extensible y ofrece un buen entorno de desarrollo también: webpack-dev-server usa junto con babel para la mejor experiencia de JavaScript posible hasta la fecha.
Andamio de Yeoman . Extremadamente valioso para equipos con diferentes antecedentes, ya que proporciona un terreno común controlable para la arquitectura de su proyecto. Incluso hay un andamio para andamios .
Agregué algunos detalles:
npm es un gestor de paquetes para javascript, npm es el ecosistema de paquetes de nodejs, pero solo se puede usar para proyectos de aplicaciones para el usuario.
grunt & gulp son útiles para separar y automatizar tareas como minificación, compilación, pruebas unitarias en línea de comandos, es una solución mucho más ligera que (por ejemplo) Visual Studio ya que el proceso es solo una línea de comando separada (y generalmente liviana).
En cuanto a las diferencias entre Gulp , Grunt y Bower, ya hay una entrada: ¿Cuáles son las diferencias entre Grunt, Gulp.js y Bower? ¿Por qué y cuándo usarlos?
Nodejs es más un tiempo de ejecución de JavaScript. Node.js permite la creación de servidores web y herramientas de red utilizando js y una colección de "módulos" que manejan varias funciones principales y otras funciones básicas. Source
Este ticket resume las diferencias entre Git y Subversion: ¿Por qué Git es mejor que Subversion?
Entonces, como tiene una buena idea de lo que es cada uno, le daré un flujo de trabajo simple.
- Yo uso yeoman para andamiar un esqueleto básico.
- Estoy usando node como el tiempo de ejecución para mi aplicación. es decir. ejecutar el nombre de aplicación del
node appname
- Uso npm para instalar módulos de nodo para ayudarme a escribir la aplicación en el nodo
- Es posible que necesite algún componente de bower como las bibliotecas front-end, así que use Bower para buscarlas.
- Ahora para hacer algunas tareas repetitivas usaré gruñido o trago para escribir algunas tareas. Así que cada vez que quiero repetirlo, digamos minimizar mis archivos js que llamo ronco / trago y hacer que lo hagan. La diferencia que pides, Gulp se basa en secuencias mientras que gruñido se basa en tareas.
- Hago control de versiones usando git para hacer un seguimiento de los cambios