Javascript task automation

32
Template designed by Javascript Task Automation Antonio Turibbio Liccardi @turibbio http://codingbad.net

Transcript of Javascript task automation

Page 1: Javascript task automation

Template designed by

Javascript Task Automation

Antonio Turibbio Liccardi@turibbiohttp://codingbad.net

Page 3: Javascript task automation

Perché automatizzare?

I framework Javascript per automatizzare

Tutto su Gulp!

agenda

Page 4: Javascript task automation

Perché automatizzare?

Modern Times – Charlie Chaplin (1936)

Page 5: Javascript task automation

Dev

• Project setup• Css Manipulation

(Sass/Less)• JS Lint• Live Reload• Watch for changed files• Code Analysis

Release

• Compile• Unit Testing• Integration Testing• Concatenation,

Minification, Vendoring• Image minification• Deployment

Cosa automatizzare?

Page 6: Javascript task automation

Possiamo guadagnare tempo automatizzando task ripetitivi?

Page 7: Javascript task automation

Usiamo un task runner!

Page 8: Javascript task automation

Task runners

Page 9: Javascript task automation

Grunt vs Gulp

Grunt

• Configuration over code (json)

• File based• >4000 plugins

Gulp

• Code over configuration

• Stream based• >2000 plugins

Page 10: Javascript task automation

Grunt

Page 11: Javascript task automation

Gulp

Page 12: Javascript task automation

Primi passi con Gulp.js

src

dest

watch

task

Page 13: Javascript task automation

Gulp Cheatsheet

Page 14: Javascript task automation

gulp.task()

Consente di definire un task tramite l’uso di una funzione. Si possono dichiarare anche delle dipendenze, che vengono eseguite prima dell’esecuzione del task in parallelo

gulp.src()

Consente di specificare i file di input per l’intera stream pipeline

Gulp API

Page 15: Javascript task automation

gulp.dest()

Consente di specificare l’output dello stream

gulp.watch()

Consente di osservare dei file e di lanciare un task alla loro modifica

Gulp API

Page 16: Javascript task automation

dem

o Hello World

Page 17: Javascript task automation

Code analysis

CSS Compilation

HTML Injection

Dev Server

Build

Testing

Cosa possiamo fare realmente?

Page 18: Javascript task automation

JSHINT

identifica errori e potenziali problemi

JSCS

Javascript code style checker

Entrambi richiedono un set di regole in JSON (.jshintrc, jscsrc, sono riconosciuti dagli editor)

Code Analysis

Page 19: Javascript task automation

dem

o Code Analysis

Page 20: Javascript task automation

Con Gulp possiamo automatizzare la compilazione di css usando Less o Sass, possiamo minificare, offuscare, concatenare

CSS manipulation

Page 21: Javascript task automation

dem

o CSS Compilation

Page 22: Javascript task automation

Iniezione di HTML

HTML Injection

Page 23: Javascript task automation

Iniezione degli script tramite

Bower

HTML Injection

Page 24: Javascript task automation

dem

o HTML Injection

Page 25: Javascript task automation

Tramite l’uso di nodemon

possiamo, a seguito di una

modifica a determinati files,

fare il restart del server node

Auto-Update Dev Server

Page 26: Javascript task automation

dem

o Auto-Update Dev

Server

Page 27: Javascript task automation

Con l’uso di Gulp possiamo automatizzare il processo di

preparazione del pacchetto per la nostra build.

Per questo scopo facciamo

uso di useref

Build

Page 28: Javascript task automation

dem

o Build

Page 29: Javascript task automation

Con Gulp è possibile

automatizzare il testing del

nostro codice javascript

Faremo uso di karma

Testing

Page 30: Javascript task automation

dem

o Testing

Page 31: Javascript task automation

Perché automatizzare?

Gulp e Grunt

Come automatizzare

Riepilogo

Page 32: Javascript task automation

Grazie a tutti per la partecipazione

Riceverete il link per il download a slide e demo via email nei prossimi giorni

Per contattarmi

codingbad.net

@turibbio

Grazie