Грунт (программное обеспечение)

прикладное программное обеспечение JavaScript
Грунт
Оригинальный автор(ы)Бен Алман
Разработчик(и)Бен Алман, Тайлер Келлен, Кайл Робинсон Янг, Влад Филиппов, Синдре Сорхус, Айзек Дюразо, Джаррод Оверсон, Тим Браньен, Йорн Цефферер, Джеймс Смит, Дэйв Геддес
Первоначальный выпуск4 апреля 2016 г. ; 8 лет назад [1] ( 2016-04-04 )
Стабильный релиз
1.4.1 / 22 апреля 2021 г. ; 3 года назад [2] ( 2021-04-22 )
Репозиторийgithub.com/gruntjs/grunt
Написано вJavaScript
Операционная системаLinux , MacOS , Windows
ПлатформаNode.js
Доступно вАнглийский
ТипTask Runner, инструмент сборки
ЛицензияЛицензия Массачусетского технологического института [3] [4]
Веб-сайтgruntjs.com

Grunt — это JavaScript task runner , инструмент, используемый для автоматического выполнения частых задач, таких как минификация , компиляция , модульное тестирование и линтинг . Он использует интерфейс командной строки для запуска пользовательских задач, определенных в файле (известном как Gruntfile). Grunt был создан Беном Алманом и написан на Node.js. Он распространяется через npm . По состоянию на октябрь 2022 года в экосистеме Grunt было доступно более 6000 плагинов. [5]

Компании и проекты, которые используют Grunt, включают Adobe Systems , jQuery , Twitter , Mozilla , Bootstrap , Cloudant , Opera , WordPress , Walmart и Microsoft . [5]

Обзор

Grunt изначально был создан Беном Алманом в 2012 году как эффективная альтернатива для упрощения написания и поддержки набора задач процесса сборки JavaScript в одном огромном файле. Он был разработан как инструмент командной строки на основе задач для проектов JavaScript. [6]

Grunt в основном используется для автоматизации задач, которые необходимо выполнять регулярно. Существуют тысячи плагинов, которые можно установить и использовать напрямую для выполнения некоторых часто используемых задач. Одной из самых желанных особенностей Grunt является его высокая настраиваемость, т. е. он позволяет разработчикам добавлять, расширять и изменять пользовательские задачи в соответствии со своими личными потребностями; каждая задача имеет набор параметров конфигурации, которые может установить пользователь. Более того, Grunt предлагает возможность определять пользовательские задачи, которые могут объединять несколько существующих задач в одну задачу или добавлять совершенно новую функциональность. [7]

Основные понятия

Интерфейс командной строки

Интерфейс командной строки Grunt (CLI) может быть установлен глобально через npm . Выполнение gruntкоманды загрузит и запустит версию Grunt, установленную локально в текущем каталоге. Таким образом, мы можем поддерживать разные версии Grunt в разных папках и запускать каждую из них по своему усмотрению. [5]

Файлы

Чтобы использовать Grunt в проекте, необходимо создать два специальных файла в корневом каталоге, а именно package.json и Gruntfile.

  • package.json - содержит метаданные проекта, включая имя, версию, описание, авторов, лицензии и его зависимости (плагины Grunt, необходимые для проекта). Все зависимости перечислены в разделе dependenciesили devDependencies.
  • Gruntfile — допустимый файл JavaScript или CoffeeScript с именем «Gruntfile.js» или «Gruntfile.coffee», содержащий код для настройки задач, загрузки существующих плагинов и/или создания пользовательских задач.

Задачи

Задачи — это модули, которые выполняют определенную работу. Они определены в Gruntfile.

Разработчики могут загружать предопределенные задачи из существующих плагинов Grunt и/или писать пользовательский код для определения собственных задач в зависимости от своих требований. После определения эти задачи можно запускать из командной строки, просто выполняя grunt <taskname>. Если <taskname>в Gruntfile определено значение «default» , то простого выполнения gruntбудет достаточно.

Пример

Ниже приведен пример файла Gruntfile, написанного на JavaScript, который показывает, как загружать плагины, создавать пользовательские задачи и настраивать их:

модуль . экспорт = функция ( grunt ) {    // Конфигурация задачи grunt.initConfig ( { taskName1 : ' Конфигурация задачи1' , taskName2 : 'Конфигурация задачи2' });       // Загружает плагины grunt.loadNpmTasks ( 'pluginName1' ) ; grunt.loadNpmTasks ( ' pluginName2' ) ;   // Пользовательские задачи grunt.registerTask ( 'customTaskName1' , ' Описание пользовательской задачи' , function ( taskParameter ) { // Пользовательские операторы });       // Объединение нескольких задач в одну задачу grunt.registerTask ( ' customTaskName2' , [ ' taskName1' , 'customTaskName1' ]); // Задача по умолчанию — запускается, если имя задачи не указано grunt.registerTask ( 'default' , [ 'customTaskName2' ]);      };

В приведенном выше примере выполнение gruntкоманды приведет к запуску <customtaskName2>, которая была определена выше как комбинация <taskName1>и <customTaskName1>.

Плагины

Плагины — это повторно используемый код, который определяет набор задач. Каждый плагин внутри содержит каталог задач с файлами JavaScript, имеющими тот же синтаксис, что и Gruntfile. Большинство плагинов Grunt публикуются с ключевым словом gruntplugin[8] в npm и имеют префикс grunt. Это помогает Grunt отображать все плагины в списке плагинов Grunt. Плагины, официально поддерживаемые Grunt, имеют префикс grunt-contrib[8] и также отмечены символом звездочки в списке плагинов. Некоторые популярные плагины включают grunt-contrib-watch, grunt-contrib-clean, grunt-contrib-uglify.

Разработчики даже могут создавать собственные плагины Grunt с помощью grunt-initплагина и публиковать их в npm с помощью npm publishкоманды.

Преимущества

Ниже приведены некоторые преимущества использования Grunt:

  • Все исполнители задач обладают следующими свойствами: последовательность, эффективность, результативность, повторяемость и т. д.
  • Доступ ко многим предопределенным плагинам, которые можно использовать для работы с задачами JavaScript и статическим контентом.
  • Позволяет пользователям настраивать задачи с помощью предопределенных плагинов.
  • Предпочитает конфигурационный подход к кодированию.
  • Позволяет пользователям добавлять собственные плагины и публиковать их в npm .

Сравнение

Муравей

Ant или Apache Ant — это инструмент сборки на основе Java . Ant имеет чуть более сотни встроенных задач, которые лучше подходят для проектов со структурой сборки Java. Написание пользовательского кода в Ant требует от пользователей написания JAR- файла и ссылки на него из XML . Это добавило бы ненужных сложностей проектам, которым не требуется сама Java. Конфигурации сборки Ant перечислены в формате XML, а не JSON . [7]

Грабли

Rake позволяет разработчикам определять задачи в Ruby . Rake не имеет концепции плагинов или предопределенных задач, что означает, что все требуемые действия должны быть написаны и затем выполнены. Это делает разработки дорогостоящими по сравнению с Grunt, который имеет большой набор повторно используемых плагинов. [7]

Глоток

Gulp.js — это инструмент запуска задач на основе JavaScript, похожий на Grunt, поскольку оба они следуют модульной архитектуре и основаны на npm . Задачи Gulp определяются кодом, а не конфигурацией. Gulp быстрее Grunt. Grunt использует временные файлы для передачи вывода из одной задачи в другую, тогда как в Gulp файлы передаются между задачами. [7]

Смотрите также

Ссылки

  1. ^ "Дата выпуска версии 1.0.0" . Получено 2020-12-31 .
  2. ^ "Выпуски · gruntjs/grunt". GitHub . Получено 2022-08-16 .
  3. ^ "Файл LICENSE на GitHub". GitHub . Получено 2020-12-31 .
  4. ^ "Поле лицензии из grunt - npm" . Получено 2020-12-31 .
  5. ^ abc "Grunt: JavaScript Task Runner". gruntjs.com . Получено 2016-09-14 .
  6. ^ "Представляем Grunt - Open Source, Performance, Tools & Workflow - Bocoup". bocoup.com . Получено 14.09.2016 .
  7. ^ abcd Крайер, Джеймс (2015). Pro Grunt.js . Apress. стр. 1. ISBN 978-1-4842-0013-1.
  8. ^ ab Pillora, Jaime (2014). Начало работы с Grunt: JavaScript Task Runner . Livery Place 35 Livery Street Birmingham B3 2PB, UK.: Packt Publishing Ltd. ISBN 978-1-78398-062-8.{{cite book}}: CS1 maint: местоположение ( ссылка )

Дальнейшее чтение

  • Крайер, Джеймс (2015). Pro Grunt.js . Apress. ISBN 978-1-4842-0013-1.
  • Pillora, Jamie (2014). Начало работы с Grunt: JavaScript Task Runner . Packt Publishing Ltd. ISBN 978-1-78398-062-8.
  • Официальный сайт
Взято с "https://en.wikipedia.org/w/index.php?title=Grunt_(software)&oldid=1252441745"