Grunt (программное обеспечение) - Grunt (software)
Оригинальный автор (ы) | Бен Альман |
---|---|
Разработчики) | Бен Алман, Тайлер Келлен, Кайл Робинсон Янг, Влад Филиппов, Синдре Сорхус, Исаак Дуразо, Джаррод Оверсон, Тим Браньен, Йорн Заефферер, Джеймс Смит, Дэйв Геддес |
изначальный выпуск | 11 января 2012 г. |
Стабильный выпуск | 1.2.0 / 3 июля 2020[1] |
Репозиторий | |
Написано в | Node.js |
Операционная система | Linux, Windows, OS X |
Доступно в | английский |
Тип | Бегунок задач, Инструмент сборки |
Лицензия | Лицензия MIT[2] |
Интернет сайт | gruntjs |
Ворчание это JavaScript исполнитель задач, инструмент, используемый для автоматического выполнения частых задач, таких как минификация, сборник, модульное тестирование, и линтинг. Он использует Интерфейс командной строки для запуска пользовательских задач, определенных в файле (известном как Gruntfile). Grunt был создан Беном Альманом и написан на Node.js. Распространяется через npm. По состоянию на сентябрь 2016 года в экосистеме Grunt было доступно более 5000 плагинов.[3]
Компании, использующие Grunt, включают: Adobe Systems, jQuery, Twitter, Mozilla, Бутстрап, Cloudant, Опера, WordPress, Walmart, и Microsoft.[3]
Обзор
Первоначально Grunt был создан Беном Алманом в 2012 году как эффективная альтернатива для упрощения написания и поддержки набора задач процесса сборки JavaScript в одном огромном файле. Он был разработан как ориентированный на задачи командная строка инструмент сборки для проектов JavaScript.[4]
Grunt в основном используется для автоматизации задач, которые необходимо выполнять в обычном порядке. Существуют тысячи плагинов, которые можно установить и использовать непосредственно для выполнения некоторых часто используемых задач. Одной из наиболее желаемых функций Grunt является то, что он легко настраивается, то есть позволяет разработчикам добавлять, расширять и изменять пользовательские задачи в соответствии с их личными потребностями; у каждой задачи есть набор параметров конфигурации, которые могут быть установлены пользователем. Более того, Grunt предлагает возможность определять собственные задачи, которые могут объединять несколько существующих задач в одну или добавлять совершенно новые функции.[5]
Базовые концепты
Интерфейс командной строки
Грунта Интерфейс командной строки (CLI) можно установить глобально через npm. Выполнение ворчать
команда загрузит и запустит версию Grunt, локально установленную в текущем каталоге. Следовательно, мы можем поддерживать разные версии Grunt в разных папках и выполнять каждую по своему желанию.[3]
Файлы
Чтобы использовать Grunt в проекте, в корневом каталоге необходимо создать два определенных файла, а именно package.json и Gruntfile.
- package.json - содержит метаданные для проекта, включая название, версию, описание, авторов, лицензии и зависимости (плагины Grunt, необходимые для проекта). Все зависимости указаны либо в
зависимости
илиdevDependencies
раздел. - Gruntfile - действующий JavaScript или CoffeeScript файл с именем «Gruntfile.js» или «Gruntfile.coffee», который содержит код для настройки задач, загрузки существующих плагинов и / или создания собственных задач.
Задачи
Задачи - это модули, которые выполняют указанную работу. Они определены в файле Gruntfile.
Разработчики могут загружать предопределенные задачи из существующих плагинов Grunt и / или писать собственный код для определения своих собственных задач в зависимости от своих требований. После определения эти задачи можно запускать из командной строки, просто выполнив ворчание <имя задачи>
. Если <taskname>
в файле Gruntfile 'дефолт' затем просто выполняя ворчать
будет достаточно.
Пример
Ниже приведен пример файла Grunt, написанного на JavaScript, который показывает, как загружать плагины, создавать собственные задачи и настраивать их:
модуль.экспорт = функция(ворчать) { // Конфигурация задачи ворчать.initConfig({ taskName1: 'Конфигурация Task1', taskName2: 'Настройка Task2' }); // Загружает плагины ворчать.loadNpmTasks('pluginName1'); ворчать.loadNpmTasks('pluginName2'); // Пользовательские задачи ворчать.registerTask(customTaskName1, 'Пользовательское описание задачи', функция(taskParameter) { // Пользовательские инструкции }); // Объединение нескольких задач в одну задачу ворчать.registerTask(customTaskName2, ['taskName1', customTaskName1]); // Задача по умолчанию - запускается, если имя задачи не указано ворчать.registerTask('дефолт', [customTaskName2]);};
В приведенном выше примере выполнение ворчать
команда будет запущена <customtaskName2>
который был определен выше как комбинация обоих <taskName1>
и <customTaskName1>
.
Плагины
Плагины - это многоразовый код, определяющий набор задач. Каждый плагин внутренне содержит каталог задач с файлами JavaScript, которые имеют тот же синтаксис, что и Gruntfile. Большинство плагинов Grunt публикуются с ключевое слово Gruntplugin
[6] в npm и с префиксом ворчать
. Это помогает Grunt отображать все плагины в Grunt. список плагинов. Плагины, официально поддерживаемые Grunt, имеют префикс ворчание
[6] и также отмечены звездочкой в списке плагинов. Некоторые популярные плагины включают grunt-contrib-watch, ворчание-вклад-чистый, хрюкать-вкладывать-уродовать, так далее.
Разработчики могут даже создавать свои собственные плагины Grunt, используя grunt-init
плагин и опубликуйте их в npm с использованием npm опубликовать
команда.
Преимущества
Ниже приведены некоторые из преимуществ использования Grunt:
- Все исполнители задач обладают следующими свойствами: последовательность, эффективность, результативность, повторяемость и т. Д.
- Доступ ко многим предопределенным плагинам, которые можно использовать для работы с задачами JavaScript и статическим контентом.
- Позволяет пользователям настраивать задачи с помощью предопределенных плагинов.
- Предпочитает конфигурационный подход к кодированию.
- Позволяет пользователям добавлять свои собственные плагины и публиковать их в npm.
Сравнение
Муравей
Муравей или Apache Ant это Ява -основан инструмент сборки. Ant имеет чуть более сотни встроенных задач, которые лучше подходят для проектов со структурой сборки Java. Написание собственного кода в Ant требует, чтобы пользователи написали БАНКА файл и ссылаться на него из XML. Это добавило бы ненужных сложностей к проектам, которые сами не требуют Java. Конфигурации сборки Ant перечислены в XML а не в JSON формат.[5]
Грабли
Грабли позволяет разработчикам определять задачи в Рубин. В Rake нет концепции плагинов или предопределенных задач, что означает, что все необходимые действия должны быть написаны и затем выполнены. Это делает разработку дорогостоящей по сравнению с Grunt, который имеет большой набор плагинов многократного использования.[5]
Глоток
Gulp.js это инструмент запуска задач на основе JavaScript, похожий на Grunt, поскольку оба следуют модульная архитектура и основаны на npm. Задачи Gulp определяются кодом, а не конфигурацией. Gulp быстрее, чем Grunt. Grunt использует временные файлы для передачи вывода от одной задачи к другой, тогда как в Gulp файлы водопроводный между задачами.[5]
Смотрите также
- Node.js
- Npm
- Автоматизация сборки
- Список программного обеспечения для автоматизации сборки
- Apache Maven
- Грабли
- Йомен (вычисления)
- Modernizr
Рекомендации
- ^ "Grunt 1.2.0 выпущен". Получено 2020-07-05.
- ^ «Грант Лицензия - НПМ».
- ^ а б c «Grunt: средство выполнения задач JavaScript». gruntjs.com. Получено 2016-09-14.
- ^ «Представляем Grunt - Открытый исходный код, производительность, инструменты и рабочий процесс - Bocoup». bocoup.com. Получено 2016-09-14.
- ^ а б c d Крайер, Джеймс (2015). Pro Grunt.js. Апресс. п. 1. ISBN 978-1-4842-0013-1.
- ^ а б Пиллора, Хайме (2014). Начало работы с Grunt: средство выполнения задач JavaScript. Livery Place 35 Livery Street Birmingham B3 2PB, Великобритания: Packt Publishing Ltd. ISBN 978-1-78398-062-8.CS1 maint: location (связь)
дальнейшее чтение
- Крайер, Джеймс (2015). Pro Grunt.js. Апресс. ISBN 978-1-4842-0013-1.
- Пиллора, Джейми (2014). Начало работы с Grunt: средство выполнения задач JavaScript. Packt Publishing Ltd. ISBN 978-1-78398-062-8.