Zajmuje się teraz NodeJS
Definicja:
Napiszę później :-)
Jednym z dostępnych pakietów jest Grunt i odrazu zadaje sobie Pytanie
Co to jest Grunt i czy po co mi Grunt-CLI
Grunt (alternatywa dla Glup) to kod który wykonuje listę tasków (zadań) w reakcji na eventy.
Tylko co to właściwie znaczy?
Przykładowo po zakończeniu pracy zawsze sprawdzamy czy kod nadal działa, możemy ustawić zadanie by sam uruchomił testy, albo chcemy zminifikować js i css (zmniejszyć wielkosć przez usunięcie opisów, spacji i długich nazw) dwa polecenia robią to automatycznie.
Lista zadań jest wciąż rozwijana przez społeczność i już jest pokaźnych rozmiarów.
Jakie eventy? Wymienię dwa:
- plik w podanym katalogu (np. js) został zmieniony
- w konsoli uruchomiłeś grunta z flagą karma (grunt karma)
Konfiguracja i liste flag trzymamy w pliku
Gruntfile.js
lub Gruntfile.coffee
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
build: {
src: 'src/<%= pkg.name %>.js',
dest: 'build/<%= pkg.name %>.min.js'
}
}
});
// Load the plugin that provides the "uglify" task.
grunt.loadNpmTasks('grunt-contrib-uglify');
// Default task(s).
grunt.registerTask('default', ['uglify']);
};
Opis:pobiera dane projektu z package.json
uglify banner - tworzy komentarz
uglify build - pobiera i zapisuje pliki
Task default - oznacza że gdy niema żadnej flagi
No to co to jest Grunt-CLI ??
Z tego co ustaliłem to jest interface dla Grunta, do urzywania w lini komend.
Przeszukuje ona nasze katalogi w poszukiwania grunta i uruchamia jego konfiguracje, jeśli nie to zwraca błąd.
instaluje się go globalnie -g
npm install -g grunt-cli
Czyli musimy Grunta zainstalować w projekcie lokalnie
polecenienpm install grunt --save-dev
npm install
... dodaje nam wpis do pliku package.json
, a flaga --save-dev
zadba by dodać do wartości devDepedencies
w tym pliku.Dodam jeszcze, że zainstalowany pakiet w pliku
package.json
jest z wersją która została zainstalowana ~ oznacza, że jak pojawi się nowsza wersja to ma ją zaktualizowaćzainstalowana? no to jeszcze plik configuracji grunt'a który jest niezbędny do pracy.
Może być ten powyżej - jak zainstalujemy
grunt-contrib-uglify
albo można użyć generatora pliku, który przeprowadzi nas za ręke.
Może stworzyć tylko plik, albo pobrać liste zainstalowanych już pakietów i opisuje co one nam dają.
Tylko to już nie dziś bo dziesko skończyło poranną drzemkę.npm install –g grunt-init
Narazie