mamy 2 pliki:
package.json
{
"name": "project",
"title": "file_project",
"version": "0.0.1",
"homepage": "localhost",
"author": {name:"Born-kes"}
}
i Gruntfile.js
...
to w tym drugim, mogę korzystać z danych zadeklarowanych w innym miejscu:
np.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
concat: {
dist: {
src: ['
<%= pkg.
title %>
/*.js', 'test/{,*/}*.js'],
dest: 'dist/<%= pkg.name %>.js'
}
},
uglify: {
dist: {
src: '<%= concat.dist.dest %>',
dest: 'dist/<%= pkg.name %>.min.js'
}
},
Wniosek jak tego użyć?
Daje to wrażenie, że można mieć powiedzmy już gotowe konfiguracje i dołączać je grunt.file.readJSON do projektu, a większość zmian opiera się o plik package.json.To wygląda zachęcająco.
Faworyt:
Chyba najczęściej używanym pakietem jest grunt-contrib-watch - obserwator projektu.Przeładowuje on Tasksi po każdej modyfikacji i może "piszczeć" jak któryś task coś znajdzie np.zrobimy literówkę, albo coś przestało działać...
Zmniejszanie plików
grunt-contrib-uglify minimalizuje plik usuwając zbędne białe znaki i czasem nazwy zmiennych by skrócić kod. Szybko działa i pozwala mieć fajny przejrzysty kod z tysiącem komentarzy, a na boku tworzy kod czysty od naszych komentarzy i spakowany (zminifikowany).grunt-contrib-htmlmin - minifikuje pliki HTML
grunt-contrib-cssmin - minifikuje pliki CSS
grunt-contrib-connect umnie strasznie zamula, ale odświerzanie okna przeglądarki po każdej modyfikacji to fajny bajer jak się ma dwa monitory.
grunt-usemin - pozwala podmieniać fragmenty kodu , np używać tagów w HTML do generowania strony bez potrzeby generowania jej przez serwer www.
Pilnowanie składni i poprawności kodu
grunt-contrib-jshint pozwala mieć konfiguracje w pliku w projekcie ( plik .jshint ), nie wiem co na to praktycy, ale chyba porządkuje kod.grunt-eslint jest chyba lepiej wspierany (od grunt-contrib-jshint) , będę starał się go lepiej poznać. Kontroluje semantycznosć kodu, czyli między innymi literówki i poprawność.
grunt-contrib-concat pozwala łączyć pliki, ale szału niema, jeszcze nie jestem na etapie by każdy fragmęt kodu (funkcjonalność, zadanie) mieć w innym pliku.
grunt-karma - pozwala pisać testy jednostkowe.
Ciekawostka
NodeJS ma jeszcze dostęp do phpUnit od composera. Czytałem, że composer potrafi używać pakietów nodejs :-) - na stonie o drupalu 8, jest duży poradnik.Ciekawostka może ktoś skorzysta, szkoda mi trochę czasu na takie zabawy.
Jak coś jeszcze znajdę to dopiszę do listy