Grunt (software) - Grunt (software) - Wikipedia
![]() | |
Původní autoři | Ben Alman |
---|---|
Vývojáři | Ben Alman, Tyler Kellen, Kyle Robinson Young, Vlad Filippov, Sindre Sorhus, Isaac Durazo, Jarrod Overson, Tim Branyen, Jörn Zaefferer, James Smith, Dave Geddes |
První vydání | 11. ledna 2012 |
Stabilní uvolnění | 1.2.0 / 3. července 2020[1] |
Úložiště | ![]() |
Napsáno | Node.js |
Operační systém | Linux, Okna, OS X |
K dispozici v | Angličtina |
Typ | Runner úloh, Sestavte nástroj |
Licence | Licence MIT[2] |
webová stránka | gruntjs |
Grunt je JavaScript běžec úkolu, nástroj používaný k automatickému provádění častých úkolů, jako je minifikace, sestavení, testování jednotky, a podšívka. Používá a rozhraní příkazového řádku spouštět vlastní úlohy definované v souboru (známém jako Gruntfile). Grunt vytvořil Ben Alman a je napsán Node.js. Je distribuován prostřednictvím npm. V září 2016 bylo v ekosystému Grunt k dispozici více než 5 000 pluginů.[3]
Mezi společnosti, které používají Grunt, patří Adobe Systems, jQuery, Cvrlikání, Mozilla, Bootstrap, Zataženo, Opera, WordPress, Walmart, a Microsoft.[3]
Přehled
Grunt byl původně vytvořen Benem Almanem v roce 2012 jako účinná alternativa ke zjednodušení psaní a udržování sady úkolů procesu sestavení JavaScriptu v jednom obrovském souboru. Byl navržen jako úkolový příkazový řádek nástroj pro sestavení pro projekty JavaScriptu.[4]
Grunt se primárně používá k automatizaci úkolů, které je třeba provádět rutinně. Existují tisíce pluginů, které lze nainstalovat a použít přímo k provádění některých běžně používaných úkolů. Jednou z nejžádanějších funkcí Grunt je, že je vysoce přizpůsobitelný - tj. Umožňuje vývojářům přidávat, rozšiřovat a upravovat vlastní úkoly tak, aby vyhovovaly jejich osobním potřebám; každá úloha má sadu možností konfigurace, které může uživatel nastavit. Grunt navíc nabízí možnost definovat vlastní úkoly, které mohou kombinovat více existujících úkolů do jednoho úkolu nebo přidat zcela nové funkce.[5]
Základní pojmy
Rozhraní příkazového řádku
Grunt rozhraní příkazového řádku (CLI) lze instalovat globálně prostřednictvím npm. Provádění zavrčel
příkaz načte a spustí verzi aplikace Grunt lokálně nainstalovanou v aktuálním adresáři. Z tohoto důvodu můžeme udržovat různé verze Grunt v různých složkách a každou z nich spouštět, jak si přejeme.[3]
Soubory
Chcete-li použít Grunt v projektu, je třeba v kořenovém adresáři vytvořit dva konkrétní soubory, a to package.json a Gruntfile.
- balíček.json - obsahuje metadata pro projekt včetně názvu, verze, popisu, autorů, licencí a jeho závislostí (Grunt pluginy požadované projektem). Všechny závislosti jsou uvedeny buď v
závislosti
nebodevDependencies
sekce. - Gruntfile - platný JavaScript nebo CoffeeScript soubor s názvem "Gruntfile.js" nebo "Gruntfile.coffee", který obsahuje kód pro konfiguraci úkolů, načtení existujících pluginů a / nebo vytvoření vlastních úkolů.
Úkoly
Úkoly jsou moduly, které provádějí zadanou úlohu. Jsou definovány v Gruntfile.
Vývojáři mohou načíst předdefinované úkoly ze stávajících pluginů Grunt a / nebo napsat vlastní kód a definovat své vlastní úkoly v závislosti na jejich požadavcích. Jakmile jsou tyto úkoly definovány, lze je spustit z příkazového řádku jednoduchým provedením grunt
. Pokud <taskname>
definované v Gruntfile je 'výchozí' pak jednoduše provést zavrčel
bude stačit.
Příklad
Následuje příklad souboru Gruntfile napsaného v JavaScriptu, který ukazuje, jak načíst doplňky, vytvořit vlastní úkoly a nakonfigurovat je:
modul.vývoz = funkce(zavrčel) { // Konfigurace úlohy zavrčel.initConfig({ taskName1: „Konfigurace Task1“, taskName2: „Konfigurace Task2“ }); // Načte doplňky zavrčel.loadNpmTasks('pluginName1'); zavrčel.loadNpmTasks('pluginName2'); // Vlastní úkoly zavrčel.registerTask('customTaskName1', 'Vlastní popis úlohy', funkce(taskParameter) { // Vlastní příkazy }); // Kombinace více úkolů do jednoho úkolu zavrčel.registerTask('customTaskName2', ['taskName1', 'customTaskName1']); // Výchozí úkol - spustí se, pokud není zadán název úkolu zavrčel.registerTask('výchozí', ['customTaskName2']);};
Ve výše uvedeném příkladu provedení zavrčel
příkaz bude spuštěn <customtaskName2>
který byl definován výše jako kombinace obou <taskName1>
a <customTaskName1>
.
Pluginy
Pluginy jsou opakovaně použitelný kód, který definuje sadu úkolů. Každý plugin interně obsahuje adresář úkolů se soubory JavaScriptu, které mají stejnou syntaxi jako Gruntfile. Většina pluginů Grunt je publikována s klíčové slovo gruntplugin
[6] v npm a s předponou zavrčel
. To pomáhá Gruntovi zobrazit všechny pluginy v Gruntově výpis pluginu. Pluginy oficiálně podporované Gruntem mají předponu grunt-contrib
[6] a jsou také označeny symbolem hvězdičky v seznamu doplňků. Mezi oblíbené pluginy patří grunt-contrib-watch, grunt-contrib-clean, grunt-contrib-uglify, atd.
Vývojáři mohou dokonce vytvářet své vlastní pluginy Grunt pomocí grunt-init
plugin a publikovat je na npm za použití NPM publikovat
příkaz.
Výhody
Níže jsou uvedeny některé výhody používání Grunt:
- Všichni běžci úloh mají následující vlastnosti: konzistence, účinnost, účinnost, opakovatelnost atd.
- Přístup k mnoha předdefinovaným pluginům, které lze použít pro práci s úkoly JavaScriptu a na statickém obsahu.
- Umožňuje uživatelům přizpůsobit úkoly pomocí předdefinovaných pluginů.
- Upřednostňuje přístup ke konfiguraci před kódováním.
- Umožňuje uživatelům přidávat vlastní doplňky a publikovat je npm.
Srovnání
Mravenec
Mravenec nebo Apache Ant je Jáva -na základě nástroj pro sestavení. Ant má něco přes sto předdefinovaných úkolů, které se lépe hodí pro projekty se strukturou sestavení Java. Zápis vlastního kódu do Ant vyžaduje, aby uživatelé napsali a SKLENICE soubor a odkazovat z něj XML. To by přidávalo zbytečné složitosti projektům, které samy nevyžadují Javu. Konfigurace sestavení mravenců jsou uvedeny v XML spíše než v JSON formát.[5]
Hrábě
Hrábě umožňuje vývojářům definovat úkoly v systému Windows Rubín. Rake nemá koncept zásuvných modulů nebo předdefinovaných úkolů, což znamená, že všechny požadované akce musí být napsány a poté provedeny. Díky tomu je vývoj nákladný ve srovnání s Gruntem, který má velkou sadu opakovaně použitelných pluginů.[5]
Doušek
Gulp.js je nástroj pro běh úloh založený na JavaScriptu podobný Gruntovi, protože oba sledují a modulární architektura a jsou založeny na npm. Gulp úkoly jsou definovány spíše kódem než konfigurací. Gulp je rychlejší než Grunt. Grunt používá dočasné soubory k přenosu výstupu z jednoho úkolu do druhého, zatímco v souborech Gulp jsou potrubí mezi úkoly.[5]
Viz také
- Node.js
- NPM
- Vytvářejte automatizaci
- Seznam softwaru pro automatizaci sestavení
- Apache Maven
- Hrábě
- Yeoman (výpočetní)
- Modernizr
Reference
- ^ „Vydáno Grunt 1.2.0“. Citováno 2020-07-05.
- ^ „Licence Grunt - NPM“.
- ^ A b C „Grunt: JavaScript Task Runner“. gruntjs.com. Citováno 2016-09-14.
- ^ „Představujeme Grunt - otevřený zdroj, výkon, nástroje a pracovní postupy - Bocoup“. bocoup.com. Citováno 2016-09-14.
- ^ A b C d Cryer, James (2015). Pro Grunt.js. Apress. str. 1. ISBN 978-1-4842-0013-1.
- ^ A b Pillora, Jaime (2014). Začínáme s Gruntem: JavaScript Task Runner. Livery Place 35 Livery Street Birmingham B3 2PB, UK .: Packt Publishing Ltd. ISBN 978-1-78398-062-8.CS1 maint: umístění (odkaz)
Další čtení
- Cryer, James (2015). Pro Grunt.js. Apress. ISBN 978-1-4842-0013-1.
- Pillora, Jamie (2014). Začínáme s Gruntem: JavaScript Task Runner. Packt Publishing Ltd. ISBN 978-1-78398-062-8.