SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
Dany
Paredes
Automatizando tareas
con
GulpJS
BCNEWT· FOURSESSIONS
03- Oct
www.pasiona.com
(+34) 669 333 333
info@pasiona.com
@pasiona Barcelona
Pujades 350, 10ª planta
08019 · Barcelona
Bilbao
Gran Vía 19-21, 2ª planta
48008 · Bilbao
Londres
1 Northumberland Avenue
London · WC2N 5BW
Madrid
Pinar 5,
28006 · Madrid
Conocimiento
adquirido a través de la realización de
proyectos, formación e innovación
tecnológica
Innovación
ligada a la mejora continua y basada
en las nuevas oportunidades tecnológicas
Tecnología
soluciones a cada una de las necesidades
empresariales que se platean en cada ámbito
Valores humanos
guía de lo que hacemos y pretendemos
que nos enseña y nos conduce día a día
Pasión
somos grandes entusiastas de todo
aquello que creamos y vemos crecer
Experiencia
o la garantía de la habilidad derivada
de años de vivencias y observación
Microsoft
socio 100% alineado
partner 100% especializado
Desarrollo
capacidad para realizar proyectos de
ámbito tecnológico con un fin de
mejora
Especialización
ofrecemos soluciones a medida con
las mejores herramientas tecnológicas
Qué es
Socia
l
Medi
a
Servicios profesionales
Consultorí
a
Proyecto
s
Innovación Azure
Formación
Auditorí
a
Servicios
Dany
Paredes
@danywalls
Senior Developer
.NET por profesión, Javascript por Pasión,
Gulpista de corazón.
dparedes@pasiona.com
www.danywalls.com
danywalls4@gmail.com
@
@techdencias
@pasiona
#4S
Automatizando Tareas con GulpJS
1. Que es Gulp ?
2. Porque Gulp ?
3. Gulp vs Grunt
4. Gulp API
5. Plugins
Que es Gulp?
Gulp.js es un build system para automatizar tareas de desarrollo,
como minificación de código JavaScript,refrescar navegador,
compresión de imágenes, compilacion de librerias y mas.
Gulp.js está construído con Javascript y corre sobre Node.js.
Y es un proyecto Open Source que puedes seguir en github.
https://github.com/gulpjs/gulp
Porque Gulp ?
Gulp.js es un gestor que puede ser utilizado en proyectos grandes
y pequeños, para evitar las tareas tediosas y repetitivas ya que
nos ahorra tiempo.
Gulp es rápido y fácil de aprender con una api bastante pequeña
y además que prefiere el código en vez de configuración, y utiliza
stream en vez de ficheros temporales diferencia de otros gestores
de tareas como Grunt.
Gulp vs Grunt
VS
Gulp vs Grunt
Javascript +
NodeJS
• Usa Strem de NodeJS
• Codigo sobre
Configuracion
• Utiliza ficheros
temporales.
• Configuracion
sobre Codigo.
Ficheros vs Stream
File
System
TempTemp
File
System
Read
Files
Write
Files
Read
Files
Write
Files
ModifyModify
Grunt Tasks
Gulp Task
File
System
File
System
Read
Files
Write
Files
ModifyModifyModifyModify
Debido a que Grunt necesita crear ficheros temporales es mucho mas lento,
Gulp utiliza streams en memoria por tanto no necesita crear los ficheros.
Un fichero en LESS , a Gulp le tomará aproximadamente 6 milisegundos . Grunt
se suele tomar alrededor de 50 milisegundos - más de ocho veces más.
Este es un pequeño ejemplo, pero con los archivos más largos, la cantidad de
tiempo aumenta significativamente .
Codigo vs Convencion
grunt.initConfig(
{
less: {
development: {
files: { "build/tmp/app.css": "assets/app.less" }
}
},
autoprefixer:
{ options:
{ browsers: ['last 2 version', 'ie 8', 'ie 9'] },
multiple_files: { expand: true, flatten: true, src: 'build/tmp/app.
css', dest: 'build/' }
}
});
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-autoprefixer');
grunt.registerTask('css', ['less', 'autoprefixer']);
var gulp = require('gulp'),
less = require('gulp-less'),
autoprefix = require('gulp-autoprefixer');
gulp.task('css', function ()
{ gulp.src('assets/app.less')
.pipe(less())
.pipe(autoprefix('last 2 version', 'ie 8', 'ie
9'))
.pipe(gulp.dest('build'));
});
El Gulpfile es considerablemente más legible y más pequeño.
Instalando Gulp
Instalando Gulp
La instalacion de Gulp es sumamente facil como cualquier otro
paquete de nodejs el flag –g es para instalarlo globlamente:
npm install -g gulp
API Gulp
GULP.TASK()
GULP.SRC()
GULP.DEST()
GULP.WATCH()
El Api de gulp es bastante pequeña y facil de aprender explicaremos los cuatro
aspectos principales.
GULP.TASK()
Con gulp.task() definimos una tarea, este método toma 3
argumentos: el nombre de la tarea,la ó las tareas de las que
depende esta tarea y la función que ejecutará al llamar esta
tarea.
En nuestro ejemplo sólo usamos 2 parámetros: el nombre y la
función, así:
gulp.task(‘techdencias', function () { // Contenido de la
tarea ‘techdencias' });
GULP.SRC()
gulp.src() toma como parámetro un valor glob de cadena que
coincida con uno o más archivos de los patrones:
EJ:
gulp.src(“js/source/1.js”) coincide exactamente con el archivo.
gulp.src(“js/source/*.js”) coincide con los archivos que terminen en .js
dentro de la carpeta js/source.
Gulp.src(“js/**/*.js”) coincide con los archivos que terminen en .js
GULP.DEST()
Canaliza y escribe archivos desde un Stream, por lo que puede
canalizar a varias carpetas, sirve para escribir los datos actuales
de un Stream.
.pipe(gulp.dest('js/build/'))
GULP.WATCH()
Permite monitorear una carpeta y archivos y disparar alguna
accion y/o tarea cuando sean modificados :
gulp.watch('js/source/*.js', ['js']);
gulp.watch('js/source/*.js', function(){
Lo que quiero que haga”
}
PLUGINS
Gulp sin los pluggins no fuera nada, con mas de
var react = require('gulp-react');
var browserSync = require('browser-sync').create();
var stylus = require('gulp-stylus');
var wiredep = require('wiredep');
SHOW ME THE CODE!
RESUMEN
• Gulp se puede usar para proyectos grandes y pequeños.
• El Api es bastante rápido de aprender.
• Hay documentación ya en español!
https://github.com/bucaran/gulp-docs-es
• Hay mas de 1,800 Plugins http://gulpjs.com/plugins/
Q&A
BCNEWT· FOURSESSIONS
| 18-Abril

Más contenido relacionado

Similar a gulp-techdencias

Charla Evento TestingUY 2016 - Automatización en Ruby 101
Charla Evento TestingUY 2016 - Automatización en Ruby 101Charla Evento TestingUY 2016 - Automatización en Ruby 101
Charla Evento TestingUY 2016 - Automatización en Ruby 101TestingUy
 
Potsgrade emerson
Potsgrade emerson Potsgrade emerson
Potsgrade emerson HeidyGuzmn2
 
Orquestando Pipelines de Datosen AWS con Step Function y AWS Glue
Orquestando Pipelines de Datosen AWS con Step Function y AWS GlueOrquestando Pipelines de Datosen AWS con Step Function y AWS Glue
Orquestando Pipelines de Datosen AWS con Step Function y AWS GlueGlobant
 
Fundamentos de la Refactorización
Fundamentos de la RefactorizaciónFundamentos de la Refactorización
Fundamentos de la RefactorizaciónJavier Pérez
 
Mallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDBMallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDBEmilio Torrens
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios webjcarazo
 
¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?Jorge Franco Leza
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y PythonCarlos Toxtli
 
Gulp js php sevilla 28 septiembre 2016
Gulp js   php sevilla 28 septiembre 2016Gulp js   php sevilla 28 septiembre 2016
Gulp js php sevilla 28 septiembre 2016Agencia INNN
 
INFOSAN Tutorial python3 (1)
INFOSAN Tutorial python3 (1)INFOSAN Tutorial python3 (1)
INFOSAN Tutorial python3 (1)FRANCIACOCO
 
Tutorial python3
Tutorial python3Tutorial python3
Tutorial python3DannyEtn
 
Drupal grunt task - Drupal Camp CR 2015
Drupal grunt task  - Drupal Camp CR 2015Drupal grunt task  - Drupal Camp CR 2015
Drupal grunt task - Drupal Camp CR 2015Daniel Noyola
 

Similar a gulp-techdencias (20)

Charla Evento TestingUY 2016 - Automatización en Ruby 101
Charla Evento TestingUY 2016 - Automatización en Ruby 101Charla Evento TestingUY 2016 - Automatización en Ruby 101
Charla Evento TestingUY 2016 - Automatización en Ruby 101
 
Semana 7 Servicios Web REST con MongoDB final
Semana 7   Servicios Web REST con MongoDB finalSemana 7   Servicios Web REST con MongoDB final
Semana 7 Servicios Web REST con MongoDB final
 
Potsgrade emerson
Potsgrade emerson Potsgrade emerson
Potsgrade emerson
 
Orquestando Pipelines de Datosen AWS con Step Function y AWS Glue
Orquestando Pipelines de Datosen AWS con Step Function y AWS GlueOrquestando Pipelines de Datosen AWS con Step Function y AWS Glue
Orquestando Pipelines de Datosen AWS con Step Function y AWS Glue
 
Fundamentos de la Refactorización
Fundamentos de la RefactorizaciónFundamentos de la Refactorización
Fundamentos de la Refactorización
 
Tema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre telecoTema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre teleco
 
Mallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDBMallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDB
 
Semana 2 Configuración entorno de desarrollo
Semana 2   Configuración entorno de desarrolloSemana 2   Configuración entorno de desarrollo
Semana 2 Configuración entorno de desarrollo
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 
Intro Mpi
Intro MpiIntro Mpi
Intro Mpi
 
MLOps.pptx
MLOps.pptxMLOps.pptx
MLOps.pptx
 
¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y Python
 
Gulp js php sevilla 28 septiembre 2016
Gulp js   php sevilla 28 septiembre 2016Gulp js   php sevilla 28 septiembre 2016
Gulp js php sevilla 28 septiembre 2016
 
Tutorial python
Tutorial pythonTutorial python
Tutorial python
 
INFOSAN Tutorial python3 (1)
INFOSAN Tutorial python3 (1)INFOSAN Tutorial python3 (1)
INFOSAN Tutorial python3 (1)
 
Tutorial python3
Tutorial python3Tutorial python3
Tutorial python3
 
Drupal grunt task - Drupal Camp CR 2015
Drupal grunt task  - Drupal Camp CR 2015Drupal grunt task  - Drupal Camp CR 2015
Drupal grunt task - Drupal Camp CR 2015
 
Hadoop en accion
Hadoop en accionHadoop en accion
Hadoop en accion
 

gulp-techdencias

  • 2. www.pasiona.com (+34) 669 333 333 info@pasiona.com @pasiona Barcelona Pujades 350, 10ª planta 08019 · Barcelona Bilbao Gran Vía 19-21, 2ª planta 48008 · Bilbao Londres 1 Northumberland Avenue London · WC2N 5BW Madrid Pinar 5, 28006 · Madrid
  • 3. Conocimiento adquirido a través de la realización de proyectos, formación e innovación tecnológica Innovación ligada a la mejora continua y basada en las nuevas oportunidades tecnológicas Tecnología soluciones a cada una de las necesidades empresariales que se platean en cada ámbito Valores humanos guía de lo que hacemos y pretendemos que nos enseña y nos conduce día a día Pasión somos grandes entusiastas de todo aquello que creamos y vemos crecer Experiencia o la garantía de la habilidad derivada de años de vivencias y observación Microsoft socio 100% alineado partner 100% especializado Desarrollo capacidad para realizar proyectos de ámbito tecnológico con un fin de mejora Especialización ofrecemos soluciones a medida con las mejores herramientas tecnológicas Qué es
  • 5.
  • 6. Dany Paredes @danywalls Senior Developer .NET por profesión, Javascript por Pasión, Gulpista de corazón. dparedes@pasiona.com www.danywalls.com danywalls4@gmail.com @
  • 8. Automatizando Tareas con GulpJS 1. Que es Gulp ? 2. Porque Gulp ? 3. Gulp vs Grunt 4. Gulp API 5. Plugins
  • 9. Que es Gulp? Gulp.js es un build system para automatizar tareas de desarrollo, como minificación de código JavaScript,refrescar navegador, compresión de imágenes, compilacion de librerias y mas. Gulp.js está construído con Javascript y corre sobre Node.js. Y es un proyecto Open Source que puedes seguir en github. https://github.com/gulpjs/gulp
  • 10. Porque Gulp ? Gulp.js es un gestor que puede ser utilizado en proyectos grandes y pequeños, para evitar las tareas tediosas y repetitivas ya que nos ahorra tiempo. Gulp es rápido y fácil de aprender con una api bastante pequeña y además que prefiere el código en vez de configuración, y utiliza stream en vez de ficheros temporales diferencia de otros gestores de tareas como Grunt.
  • 12. Gulp vs Grunt Javascript + NodeJS • Usa Strem de NodeJS • Codigo sobre Configuracion • Utiliza ficheros temporales. • Configuracion sobre Codigo.
  • 16. Debido a que Grunt necesita crear ficheros temporales es mucho mas lento, Gulp utiliza streams en memoria por tanto no necesita crear los ficheros. Un fichero en LESS , a Gulp le tomará aproximadamente 6 milisegundos . Grunt se suele tomar alrededor de 50 milisegundos - más de ocho veces más. Este es un pequeño ejemplo, pero con los archivos más largos, la cantidad de tiempo aumenta significativamente .
  • 18. grunt.initConfig( { less: { development: { files: { "build/tmp/app.css": "assets/app.less" } } }, autoprefixer: { options: { browsers: ['last 2 version', 'ie 8', 'ie 9'] }, multiple_files: { expand: true, flatten: true, src: 'build/tmp/app. css', dest: 'build/' } } }); grunt.loadNpmTasks('grunt-contrib-less'); grunt.loadNpmTasks('grunt-autoprefixer'); grunt.registerTask('css', ['less', 'autoprefixer']);
  • 19. var gulp = require('gulp'), less = require('gulp-less'), autoprefix = require('gulp-autoprefixer'); gulp.task('css', function () { gulp.src('assets/app.less') .pipe(less()) .pipe(autoprefix('last 2 version', 'ie 8', 'ie 9')) .pipe(gulp.dest('build')); }); El Gulpfile es considerablemente más legible y más pequeño.
  • 20. Instalando Gulp Instalando Gulp La instalacion de Gulp es sumamente facil como cualquier otro paquete de nodejs el flag –g es para instalarlo globlamente: npm install -g gulp
  • 21. API Gulp GULP.TASK() GULP.SRC() GULP.DEST() GULP.WATCH() El Api de gulp es bastante pequeña y facil de aprender explicaremos los cuatro aspectos principales.
  • 22. GULP.TASK() Con gulp.task() definimos una tarea, este método toma 3 argumentos: el nombre de la tarea,la ó las tareas de las que depende esta tarea y la función que ejecutará al llamar esta tarea. En nuestro ejemplo sólo usamos 2 parámetros: el nombre y la función, así: gulp.task(‘techdencias', function () { // Contenido de la tarea ‘techdencias' });
  • 23. GULP.SRC() gulp.src() toma como parámetro un valor glob de cadena que coincida con uno o más archivos de los patrones: EJ: gulp.src(“js/source/1.js”) coincide exactamente con el archivo. gulp.src(“js/source/*.js”) coincide con los archivos que terminen en .js dentro de la carpeta js/source. Gulp.src(“js/**/*.js”) coincide con los archivos que terminen en .js
  • 24. GULP.DEST() Canaliza y escribe archivos desde un Stream, por lo que puede canalizar a varias carpetas, sirve para escribir los datos actuales de un Stream. .pipe(gulp.dest('js/build/'))
  • 25. GULP.WATCH() Permite monitorear una carpeta y archivos y disparar alguna accion y/o tarea cuando sean modificados : gulp.watch('js/source/*.js', ['js']); gulp.watch('js/source/*.js', function(){ Lo que quiero que haga” }
  • 26. PLUGINS Gulp sin los pluggins no fuera nada, con mas de var react = require('gulp-react'); var browserSync = require('browser-sync').create(); var stylus = require('gulp-stylus'); var wiredep = require('wiredep');
  • 27. SHOW ME THE CODE!
  • 28. RESUMEN • Gulp se puede usar para proyectos grandes y pequeños. • El Api es bastante rápido de aprender. • Hay documentación ya en español! https://github.com/bucaran/gulp-docs-es • Hay mas de 1,800 Plugins http://gulpjs.com/plugins/
  • 29. Q&A