5. https://www.npmjs.com/
$ npm -v
3.5.2
npm je zvanicni centralni repozitorijum node modula kao i softver za upravljanje
bibilotekama (modulima) od kojih vasa aplikacija zavisi (dependencies).
8. Sistem kontrole verzija dizajniran tako da cuva i nadgleda na podatke kao da su
skup snimaka (snapshots) minijaturnog sistema od malih do veoma velikih
projekata sa brzo i efikasno.
https://git-scm.com/
$ git --version
Git version 2.7.4
9. $ git init
Initialized empty Git repository in /foo/.git/
$ touch foo.txt
$ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
foo.txt
nothing added to commit but untracked files present (use "git add" to track)
$ git add foo.txt
$ git commit -m "short description"
$ git status
On branch master
nothing to commit, working directory clean
$ git config --global user.name "Dalibor Gogic"
$ git config --global user.email mail@daliborgogic.com
12. Olaksava upravljanje kompleksnim CSS fajlovima. Postize se upotrebom
preprocesora [programa koji se izvrsavaju lokalno ili na serveru] i koji prevode
Sass u CSS koji pretrazivaci razumeju.
Za razliku od regularnog CSS, Sass je pravi skriptni jezik sa izrazima, funkcijama,
varijablama, uslovnom logikom i petljama.
13. Sass je CSS preprocesor – sloj izmedju stilova kojima upravljate i CSS fajlova
koje prosledjujete serveru. Sass popunjava rupe u CSS-u kao jeziku,
dozvoljavajuci vam da pisete kod koji ce biti brzi, efikasniji i laksi za odrzavanje.
Sass omogucava da dodate funkcionalnosti CSS-u, i prevodi [kompajlira] u CSS
fajlove preko razlicitih programa ili web framework plugin-a.
http://sass-lang.com/
14. Instalacija
1. Aplikacije
2. Command Line
Pre nego sto pocnemo da koristimo Sass potrebno je da instalira Ruby.
http://rubyinstaller.org/
http://sass-lang.com/install
$ gem install sass
$ sass -v
Sass 3.4.22 (Selective Steve)
$ sass --watch app/sass:public/stylesheets
16. // SCSS
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
}
li { display: inline-block; }
a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
}
// CSS
nav ul {
margin: 0;
padding: 0;
list-style: none;
}
nav li {
display: inline-block;
}
nav a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
Nesting
17. Omogucava kreiranje delimicnih Sass datoteka koje sadrze male delove CSS i
koje je moguce uneti u druge Sass fajlove.
Ovo je odlican nacin za modularizovanje CSS-a i pomaze prilikom razvoja.
Partials je fajl sa ekstenzijom scss i imenom koji sadrzi prefix _
_partial.scss
_ oznacava da je fajl samo delimican i da ne bi trebalo da se generise u css.
Partials
18. CSS ima opciju za uvoz koji nam omogucava da podelimo CSS u manje delova.
Jedina mana je sto svaki put kada koristimo @import u CSS to stvara jos jedan
HTTP zahtev.
Sass @import se nalazi na pocetku ali umesto da trazi HTTP zahtev, Sass ce
preuzeti scss fajl koji zelimo da uvezemo i spaja u jedan css.
Import
19. // _reset.scss
html,
body,
ul,
ol {
margin: 0;
padding: 0;
}
// base.scss
@import 'reset';
body {
font: 100% Helvetica, sans-serif;
background-color: #efefef;
}
Npr imamo Sass fajlove, _reset.scss i base.scss i zelimo da uvezemo reset.scss
u base.scss
// base.css
html, body, ul, ol {
margin: 0;
padding: 0;
}
body {
font: 100% Helvetica, sans-serif;
background-color: #efefef;
}
20. Pojedine stvari u css-u su malo dosadne da se pisu, posebno u css verziji 3 i
mnogim vendor prefixima koje postoje. Mixins nam omogucava da napravimo
grupe deklaracija css-a koje zelimo da koristimo.
Mozemo proci i kroz vrednosti kako bi mixin bio fleksibilniji.
Mixins
// scss
@mixin border-radius($radius) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
-ms-border-radius: $radius;
border-radius: $radius;
}
.box { @include border-radius(10px); }
// css
.box {
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
-ms-border-radius: 10px;
border-radius: 10px;
}
21. Ovo je jedna od najkorisnijih odlika Sass-a.
@extend nam omogucava da delimo set css osobina iz jednog selektora u drugi.
Extend
25. PostCSS dodatak da analizira CSS i dodaje vendor prefikse koristeci podatke sa
Can I Use
http://caniuse.com/
Rad sa Autoprefixer je jednostavan, zaboravite na vendor prefixe i pisite
normalno CSS prema najnovijim WC3 specifikacijama.
Autoprefixer podrzava selektore kao sto su :fullscreen , ::selection,
calc(), @supports, @keyframes.
Autoprefixer je postprocessor i mozete ga koristiti sa preprocessors kao sto su
Sass, Stylus ili Less
https://github.com/postcss/autoprefixer
28. Source Maps obezbedjuju nacin mapiranja kod-a u kompresovanom fajlu nazad u
prvobitnu poziciju izvorne datoteke.
Uz malu pomoc softvera mozemo lako debagovati aplikacije.
Brauzeri Chrome i Firefox u sebi vec imaju implementiranu podrsku za Source
Maps.
31. Gulp sluzi za automatizaciju procesa. Omogucava nam da se usresredimo na
pisanje kod-a. Automatizacija procesa poput minifikacije javaskripta, optimizacije
slika, unit testova moze ustedeti dosta vremena.
Za svoj rad koristi strimove [streams]. Oni sluze da obrade podatke i proslede
rezultat za dalju obradu.
http://gulpjs.com/
32. Instalacija gulp globalno
Ako ste prethodno instalirali verziju gulp globalno, potrebno je proveriti
da li se prethodna verzija ne podudara sa gulp-cli
$ npm rm -g gulp
$ npm install -g gulp-cli
$ gulp -v
CLI version 1.2.1
33. // gulpfile.js
'use strict'
var gulp = require('gulp')
gulp.task('default')
Pokretanje
$ gulp
Default zadatak ce se pokrenuti
i nece uraditi nista.