Grunt - Pierwsze kroki
Aby korzystać z Grunt, musisz mieć zainstalowany Node.js. Instalacja Node.js została opisana w poprzednim rozdziale . Wtyczki Grunt i Grunt można zainstalować za pomocą menedżera pakietów Node.js.
Przed skonfigurowaniem Grunt w systemie możesz zaktualizować menedżera pakietów Node za pomocą następującego polecenia -
npm update -g npm
Jeśli używasz systemu Mac lub Linux, musisz użyć słowa sudo na początku wiersza poleceń, aby przyznać dostęp administratora, jak pokazano poniżej -
sudo npm update -g npm
Instalacja CLI
CLI to skrót od Command Line Interface, który uruchamia zainstalowaną wersję Grunt. Aby rozpocząć korzystanie z Grunt, musisz zainstalować interfejs wiersza poleceń (CLI) Grunt globalnie, jak pokazano poniżej -
npm install -g grunt-cli
Uruchomienie powyższego polecenia spowoduje umieszczenie polecenia grunt w ścieżce systemowej, co spowoduje, że będzie uruchamiane z dowolnego katalogu. Nie można zainstalować modułu uruchamiającego zadania Grunt, instalując grunt-cli . Umożliwia maszynie jednoczesną instalację wielu wersji Grunt.
Działanie CLI
CLI szuka zainstalowanego Grunta w twoim systemie, używając systemu require () za każdym razem, gdy Grunt jest uruchamiany. Używając grunt-cli , możesz uruchomić Grunt z dowolnego katalogu w projekcie. Jeśli używasz lokalnie zainstalowanego Grunta, to grunt-cli używa lokalnie zainstalowanej biblioteki Grunt i stosuje konfigurację z pliku Grunt.
Praca z istniejącym i nowym projektem
Jeśli pracujesz z już skonfigurowanym projektem, który zawiera plik package.json i Gruntfile , wykonaj proste czynności opisane poniżej -
- Znajdź ścieżkę do katalogu głównego projektu.
- Zależności można zainstalować za pomocą polecenia npm install .
- Uruchom Grunt za pomocą polecenia grunt .
Jeśli tworzysz nowy projekt, dołącz do projektu dwa pliki package.json i Gruntfile .
package.json- Plik package.json jest umieszczany w katalogu głównym projektu i jest używany do uruchamiania każdej wymienionej zależności za każdym razem, gdy uruchamiasz polecenie npm install w tym samym folderze.
Gruntfile.js - Plik Gruntfile.js służy do zapisywania ustawień konfiguracyjnych projektu.
package.json
Plik package.json jest umieszczany w katalogu głównym projektu obok pliku Gruntfile i służy do uruchamiania każdej wymienionej zależności za każdym razem, gdy uruchamiasz polecenie npm install w tym samym folderze.
Możesz utworzyć plik package.json na różne sposoby, jak podano poniżej -
- Możesz grunt-init, aby utworzyć plik package.json.
- Możesz również utworzyć plik package.json za pomocą polecenia npm-init .
Możesz napisać specyfikację, jak pokazano poniżej -
{
"name": "tutorialspoint",
"version": "0.1.0",
"devDependencies": {
"grunt-contrib-jshint": "~0.10.0",
"grunt-contrib-nodeunit": "~0.4.1",
"grunt-contrib-uglify": "~0.5.0"
}
}
Możesz dodać Grunt i gruntplugins do istniejącego pliku pacakge.json za pomocą następującego polecenia -
npm install <module> --save-dev
Tutaj <module> reprezentuje moduł do zainstalowania lokalnie. Powyższe polecenie zainstaluje określony moduł i automatycznie doda go do sekcji devDependencies .
Na przykład następujące polecenie zainstaluje najnowszą wersję Grunt i doda ją do twoich devDependencies -
npm install grunt --save-dev
Gruntfile
Plik Gruntfile.js jest domyślnym miejscem, do którego trafią twoje ustawienia konfiguracyjne dla Grunt. Plik Grunt zawiera następujące części -
- Funkcja opakowania
- Konfiguracja projektu i zadania
- Ładowanie wtyczek i zadań Grunt
- Zadania niestandardowe
Podstawowy plik Gruntfile.js jest przedstawiony poniżej -
// our wrapper function (required by grunt and its plugins)
// all configuration goes inside this function
module.exports = function(grunt) {
// CONFIGURE GRUNT
grunt.initConfig({
// get the configuration info from package.json file
// this way we can use things like name and version (pkg.name)
pkg: grunt.file.readJSON('package.json'),
// all of our configuration goes here
});
// Load the plugin that provides the "uglify" task
grunt.loadNpmTasks('grunt-contrib-uglify');
// Default task(s)
grunt.registerTask('default', ['uglify']);
};
Funkcja opakowania
W powyższym kodzie module.exports jest funkcją opakowującą, w której cała konfiguracja jest umieszczana w tej funkcji. Jest to sposób wyświetlania konfiguracji w pozostałej części aplikacji.
module.exports = function(grunt) {
//do grunt-related things here
}
Konfiguracja projektu i zadania
Możesz skonfigurować zadania Grunt, gdy konfiguracja Grunt jest gotowa. Konfigurację projektu można zapisać w sekcji grunt.initConfig () . W funkcji grunt.initConfig () pobierz informacje konfiguracyjne z pliku package.json i zapisz je w pkg . Możesz wywołać nazwę projektu za pomocą pkg.name i version z pkg.version .
Ładowanie wtyczek i zadań Grunt
Załaduj zadania z określonej wtyczki przy użyciu metody grunt.loadNpmTasks . Możesz zainstalować wtyczkę lokalnie, używającnpmi musi odnosić się do pliku Gruntfile. Możesz załadować wtyczkę za pomocą prostego polecenia, jak pokazano poniżej -
grunt.task.loadNpmTasks(pluginName)
Zadania niestandardowe
Kiedy uruchamiasz Grunt z wiersza poleceń, Grunt będzie szukał domyślnego zadania. W powyższym kodzie używamy zadania o nazwie uglify, które można uruchomić za pomocą polecenia grunt . Jest to to samo, co jawne uruchomienie polecenia grunt uglify i możesz określić liczbę zadań w tablicy.
grunt.registerTask('default', ['uglify']);