czwartek, 30 maja 2019

Grunt czy Grunt-CLI


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
npm install grunt --save-dev
polecenie 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ą.

npm install –g grunt-init
Tylko to już nie dziś bo dziesko skończyło poranną drzemkę.
Narazie


Brak komentarzy:

Prześlij komentarz