Грант (программное обеспечение)
Оригинальный автор(ы) | Я немец |
---|---|
Разработчик(и) | Бен Алман, Тайлер Келлен, Кайл Робинсон Янг, Влад Филиппов, Синдре Сорхус, Исаак Дюразо, Джаррод Оверсон, Тим Браньен, Йорн Цефферер, Джеймс Смит, Дэйв Геддес |
Первоначальный выпуск | 4 апреля 2016 г [1] |
Стабильная версия | 1.4.1 / 22 апреля 2021 г [2] |
Репозиторий | github |
Написано в | JavaScript |
Операционная система | Linux , MacOS , Windows |
Платформа | Node.js |
Доступно в | Английский |
Тип | Task Runner, инструмент сборки |
Лицензия | МОЯ лицензия [3] [4] |
Веб-сайт | gruntjs |
Grunt — это JavaScript средство запуска задач , инструмент, используемый для автоматического выполнения частых задач, таких как минимизация , компиляция , модульное тестирование и анализ . Он использует интерфейс командной строки для запуска пользовательских задач, определенных в файле (известном как Gruntfile). и написан на Node.js. Grunt был создан Беном Алманом Он распространяется через 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]
Основные понятия
[ редактировать ]Интерфейс командной строки
[ редактировать ] (CLI) Grunt Интерфейс командной строки можно установить глобально через 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, имеет значение «по умолчанию», а затем просто выполняется grunt
будет достаточно.
Пример
[ редактировать ]Ниже приведен пример файла Gruntfile, написанного на JavaScript, который показывает, как загружать плагины, создавать собственные задачи и настраивать их:
module.exports = function(grunt) { // Task configuration grunt.initConfig({ taskName1: 'Task1 Configuration', taskName2: 'Task2 Configuration' }); // Loads plugins grunt.loadNpmTasks('pluginName1'); grunt.loadNpmTasks('pluginName2'); // Custom tasks grunt.registerTask('customTaskName1', 'Custom task description', function(taskParameter) { // Custom statements }); // Combining multiple tasks to a single task grunt.registerTask('customTaskName2', ['taskName1', 'customTaskName1']); // Default task - runs if task name is not specified 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]
См. также
[ редактировать ]- Node.js
- Автоматизация сборки
- Список программного обеспечения для автоматизации сборки
- Апач Мавен
- Йомен (вычисления)
- Модернизр
- Фреймворк JavaScript
- библиотека JavaScript
Ссылки
[ редактировать ]- ^ «Дата выпуска версии 1.0.0» . Проверено 31 декабря 2020 г.
- ^ «Релизы · gruntjs/grunt» . Проверено 16 августа 2022 г.
- ^ «Файл ЛИЦЕНЗИИ на GitHub» . Проверено 31 декабря 2020 г.
- ^ «Поле лицензии от grunt — npm» . Проверено 31 декабря 2020 г.
- ^ Jump up to: а б с «Grunt: средство выполнения задач JavaScript» . gruntjs.com . Проверено 14 сентября 2016 г.
- ^ «Представляем Grunt — открытый исходный код, производительность, инструменты и рабочий процесс — Bocoup» . bocoup.com . Проверено 14 сентября 2016 г.
- ^ Jump up to: а б с д Крайер, Джеймс (2015). Про Grunt.js . Апресс. п. 1. ISBN 978-1-4842-0013-1 .
- ^ Jump up to: а б Пиллора, Хайме (2014). Начало работы с Grunt: средство выполнения задач JavaScript . Livery Place 35 Livery Street Birmingham B3 2PB, Великобритания: Packt Publishing Ltd. ISBN 978-1-78398-062-8 .
{{cite book}}
: CS1 maint: местоположение ( ссылка )
Дальнейшее чтение
[ редактировать ]- Крайер, Джеймс (2015). Про Grunt.js . Апресс. ISBN 978-1-4842-0013-1 .
- Пиллора, Джейми (2014). Начало работы с Grunt: средство выполнения задач JavaScript . Packt Publishing Ltd. ISBN 978-1-78398-062-8 .