- PVSM.RU - https://www.pvsm.ru -
Это пост можно сказать является дубликатом моей предыдущей подборки “Самые нужные плагины для Grunt” [2]. Дело в том, что спустя много часов поиска я не нашел крутых плагинов для Gulp, которых нет для Grunt за исключением пары весьма специфичных утилит. Всё как раз наоборот, но проигнорировать множество пользователей Gulp я не мог. Все недостающие плагины я выделил, потому что Gulp умеет использовать их из Grunt, как и Grunt из Gulp.
Доброго времени суток, всем! Кто-то умный, не помню в какой статье именно на Хабре, буквально недавно размышлял о процессе разработки с явным призывом автоматизировать все, что только можно автоматизировать. И лучше один раз потратить время на автоматизацию, чтобы потом экономить его на протяжении всего проекта.
У веб-разработчиков есть прекрасный инструмент для автоматизации массы задач, который называется Gulp. И моя страсть к таксономии заставила себя собрать огромную коллекцию почти из 100 ценных плагинов для этого сборщика. Думаю многие кто уже использует Gulp найдут для себя что-то нужное, а кто нет, глядя на возможности, получит хорошую мотивацию установить его и понять как эта штука работает.
А еще я выложил подборку на GitHub [1], чтобы каждый мог пополнить коллекцию.
autoprefixer [3] — один из самых полезных плагинов, который автоматически расставляет префиксы к CSS свойствам, исходя из статистики caniuse [4]. Важно сказать, что Автопрефиксер это лишь один из множества дополнений в рамках проекта PostCSS [5] от Злых Марсиан.
gulp-browser-sync [6] — вероятно, самый нужный инструмент, с точки зрения повышения продуктивности веб-разработчиков. BrowserSync создает подключение, после чего производит автообновление страницы во всех браузерах на всех устройствах при изменениями не только клиентских или даже серверных файлов. А плюс ко всему синхронизирует позицию скроллинга и заполненные данные в формах.
gulp-useref [7] — парсит специфичные блоки и конкатенирует описанные в них стили и скрипты. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
gulp-email-design [8] — бесценный инструмент при верстки писем, который переводит все CSS стили в инлайновые, автоматически изменяя все пути к файлам, опционально умеет загружать изображения на CDN и даже отсылать письма на почту.
gulp-uncss [9] — лучшее решение для оптимизации CSS файлов. Плагин анализирует HTML код и находит все неиспользуемые и продублированные стили.
gulp-csso [10] — отличный CSS минификатор. На сегодняшний день существует целый ряд CSS компрессоров и сравнительная таблица (GitHub) по ним. Но недавно я увидел лучшую Shorthand [11] утилиту без Gulp, которая делает приблизительно следующее:
<code>a {
font-family: Arial;
font-style: italic;
font-size: 14px;
line-height: 18px;
font-weight: bold;
background-image: url('example.png');
background-color: red;
background-size: cover;
background-repeat: no-repeat;
}
=>
a {
font: italic bold 14px/18px Arial;
background: red url('example.png') no-repeat / cover;
}
</code>
gulp-htmlmin [12] — простой HTML минификатор.
gulp-csscomb [13] — облагораживает структуру ваших CSS.
gulp-csslint [14] — CSS линтер.
gulp-htmlhint [15] — HTML валидатор.
gulp-autopolyfiller [16] — мега крутой плагин, который похож на Autoprefixer и подбирает все необходимые полифилы для JavaScript, чтобы вы могли использовать последние стандарты ECMAScript уже сегодня. Еще рекомендую gulp-babel [17], который конвертирует ES6/ES7 в ES5.
gulp-jsfmt [18] — полезнейший плагин для работы с JavaScript от команды Rdio, который позволяет искать конкретные фрагменты, форматировать и производить массовые изменения в коде. Также существует gulp-jsbeautifier [19].
gulp-jscs [20] — JavaScript Code Style. Замечательный инструмент со множеством конфигураций для проверки вашего кода в соответствии с существующими стайлгайдами от jQuery, Яндекса, Google, Airbnb и других.
gulp-modernizr [21] — помогает составить правильную архитектуру проекта на основе Modernizr.js в зависимости от возможностей браузера.
gulp-express [22] — запускает Express.js веб-сервер.
gulp-requirejs [23] и gulp-browserify [24] — оптимизируют работу RequireJS и Browserify соответственно.
gulp-plato [25] — предоставляет аналитику по вашему коду с разными метриками в виде красивых графиков.
gulp-complexity [26] — проверка на качество кода основанная на алгоритмах Halstead и Cyclomatic.
fixmyjs [27] — автоматически исправляет простые ошибки в коде после линта выполненного на основе JSHint [28] (gulp-jshint [29]).
gulp-jscpd [30] — для поиска дубликатов в коде.
gulp-jsonlint [31] — валидатор JSON файлов.
gulp-uglify [32] — JavaScript компрессор.
gulp-concat [33] — конкатенация файлов.
gulpicon [39] — ценный плагин, который позволяет генерировать спрайты из SVG, переводить их в PNG, записывать все Data URI и подключать нужный формат в зависимости от возможностей браузера.
gulp-iconfont [40] — великолепный плагин для работы с веб-шрифтами. Умеет создавать WOFF, WOFF2, EOT, TTF файлы из SVG.
gulp-responsive [41] — простой способ сгенерировать адаптивные изображения под требуемые разрешения устройств с указанием соответствующих префиксов в наименовании.
gulp-sharp [42] — самый быстрый модуль для работы с JPEG, PNG, WebP и TIFF изображениями. Плагин умеет изменять размер, ориентацию, фон, альфа-канал и многое другое.
gulp-svgstore [43] — объединяет все подключаемые SVG файлы и записывает их в HTML как <symbol> для дальнейшего использования.
gulp-imacss [44] — очень удобная утилита, которая автоматически преобразовывает подключенные в CSS изображения PNG, JPG, SVG в Data URI.
gulp-imagemin [45] и gulp-tinypng [46] для сжатия изображений.
gulp-spritesmith [47] — автоматическая генерация спрайтов.
gulp-grunt [48] — позволяет запускать Grunt плагины для Gulp.
gulp-watch [49] — краеугольный камень в плагинной системе Gulp. Следит за всеми указанными файлами или целыми директориями и в случае каких-либо изменений выполняет описанные в конфигурациях таски.
gulp-notify [50] — выводит ошибки при сборке Gulp в виде системных сообщений, а главное то, что работает для разных операционных систем.
gulp-git [51] — позволяет использовать Git команды.
gulp-jsdoc [52] — генератор документации, работает на основе JSDoc3.
gulp-rev [53] — полезный плагин для работы с ревизиями.
gulp-release [54] — позволяет управлять версиями в вашем проекте.
gulp-bump [55] — следит за репозиторием и обновляет package.json и gulp-update [56], который обновляет сами пакеты.
gulp-bower-files [57] — подключает все необходимые Bower компоненты.
gulp-removelogs [58] — автоматически удаляет логи.
gulp-preprocess [59] — препроцессор, ссылающийся на установленные конфигурации.
gulp-duration [60] — отображает время выполнения тасков.
gulp-changed [61] и gulp-newer [62] — запускают таски только для изменившихся файлов.
gulp-connect [63] — простой веб-сервер для статических сайтов.
gulp-shell [64] — позволяет запускать Shell команды.
gulp-ssh [65] — обеспечивает возможность подключения по SSH и SFTP.
gulp-zip [66] — архивирует папки и файлы.
gulp-clean [67] и gulp-copy [68] — соответственно очищают и копируют указанные исходники.
gulp-filesize [69] — отображает размеры файлов в удобном для чтения формате.
gulp-util [70] — различные утилиты для разработки Gulp плагинов.
gulp-less [71] — LESS в CSS.
gulp-sass [72] — SASS/SCSS в СSS.
gulp-compass [73] — SASS с Compass в CSS.
gulp-stylus [74] — Stylus в CSS.
gulp-coffee [75] — CoffeeScript в JavaScript.
gulp-jade [76] — Jade в HTML.
gulp-handlebars [77] — Handlebars шаблоны в JST.
gulp-jst [78] — Underscore шаблоны в JST.
gulp-react [79] — Facebook React’s JSX шаблоны в JST.
gulp-nunjucks [80] — Nunjucks шаблоны в JST.
gulp-dustjs [81] — Dust шаблоны в JST.
gulp-angular-templatecache [82] — AngularJS шаблоны в JST.
psi [83] — PageSpeed Insights with reporting.
tmi [84] — TMI (Too Many Images) — discover your image weight on the web.
ngrok [85] — Introspected tunnels to localhost.
pageres [86] — удобная утилита для создания скриншотов сайтов в разных разрешениях.
Возможно, некоторые методы автоматизации вам будет удобнее использовать прямо в редакторе — Лучшие плагины для SublimeText.
matchdep [87] — помогает правильно описать зависимости.
grunt-html-build [88]
Универсальный помощник в верстке. В отличии от незаслуженно более популярного grunt-processhtml [89], данный плагин умеет не только объединять скрипты и стили, но и создавать полноценные шаблоны/блоки для вашего HTML.
Еще есть отдельный grunt-email-boilerplate [90].
grunt-revizor [91] — мега крутой компрессор от MailRu, который не только минифицирует CSS, но и сокращает названиях всех классов в HTML, CSS и JavaScript файлах.
grunt-penthouse [92] и grunt-criticalcss [93] — автоматически находят Critical Path в вашем проекте. Важный момент с точки зрения производительность, о чем подробнее написано тут [94].
grunt-shipit [95] — автоматизирует deploy с помощью Shipit.
grunt-githooks [96] — привязывает Git Hooks [97] к Grunt таскам.
grunt-gitbook [98] — создавайте документацию с помощью потрясающей утилиты GitBook.
grunt-conventional-changelog [99] — генерирует список изменений на основе коммитов в Git.
grunt-proxy [100] and grunt-connect-proxy [101] — connect support for proxying API calls during development.
grunt-phantomas [102] — превосходный инструмент для измерения производительности проекта.
grunt-usebanner [103] — добавляет баннеры (копирайт или ASCII заголовки) в исходных файлах и grunt-figlet [104] для помощи работы с этим.
Автор: ilusha_sergeevich
Источник [105]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/85449
Ссылки в тексте:
[1] Image: https://github.com/Pestov/essential-gulp-plugins
[2] “Самые нужные плагины для Grunt”: http://habrahabr.ru/post/251157/
[3] autoprefixer: https://github.com/postcss/autoprefixer
[4] caniuse: http://caniuse.com/
[5] PostCSS: https://github.com/postcss/postcss
[6] gulp-browser-sync: https://github.com/BrowserSync/gulp-browser-sync
[7] gulp-useref: https://github.com/jonkemp/gulp-useref
[8] gulp-email-design: https://github.com/alexshk/gulp-email-design
[9] gulp-uncss: https://github.com/addyosmani/gulp-uncss-task
[10] gulp-csso: https://github.com/ben-eb/gulp-csso
[11] Shorthand: https://github.com/frankmarineau/shorthand
[12] gulp-htmlmin: https://github.com/jonschlinkert/gulp-htmlmin
[13] gulp-csscomb: https://github.com/koistya/gulp-csscomb
[14] gulp-csslint: https://www.npmjs.com/package/gulp-csslint
[15] gulp-htmlhint: https://github.com/bezoerb/gulp-htmlhint
[16] gulp-autopolyfiller: https://github.com/azproduction/gulp-autopolyfiller
[17] gulp-babel: https://github.com/babel/gulp-babel
[18] gulp-jsfmt: https://www.npmjs.com/package/gulp-jsfmt
[19] gulp-jsbeautifier: https://github.com/tarunc/gulp-jsbeautifier
[20] gulp-jscs: https://github.com/jscs-dev/gulp-jscs
[21] gulp-modernizr: https://github.com/doctyper/gulp-modernizr
[22] gulp-express: https://github.com/gimm/gulp-express
[23] gulp-requirejs: https://github.com/robinthrift/gulp-requirejs
[24] gulp-browserify: https://github.com/deepak1556/gulp-browserify
[25] gulp-plato: https://github.com/sindresorhus/gulp-plato
[26] gulp-complexity: https://github.com/alexeyraspopov/gulp-complexity
[27] fixmyjs: https://github.com/kirjs/gulp-fixmyjs
[28] JSHint: http://jshint.com/
[29] gulp-jshint: https://github.com/spalger/gulp-jshint
[30] gulp-jscpd: https://github.com/yannickcr/gulp-jscpd
[31] gulp-jsonlint: https://github.com/rogeriopvl/gulp-jsonlint
[32] gulp-uglify: https://github.com/terinjokes/gulp-uglify
[33] gulp-concat: https://github.com/wearefractal/gulp-concat
[34] gulp-nodeunit: https://github.com/kjvalencik/gulp-nodeunit
[35] gulp-jasmine: https://github.com/sindresorhus/gulp-jasmine
[36] gulp-qunit: https://github.com/jonkemp/gulp-qunit
[37] gulp-mocha: https://github.com/sindresorhus/gulp-mocha
[38] gulp-karma: https://github.com/karma-runner/gulp-karma
[39] gulpicon: https://github.com/wakayama-io/gulpicon/
[40] gulp-iconfont: https://github.com/nfroidure/gulp-iconfont
[41] gulp-responsive: https://github.com/mahnunchik/gulp-responsive
[42] gulp-sharp: https://github.com/rizalp/gulp-sharp
[43] gulp-svgstore: https://github.com/w0rm/gulp-svgstore
[44] gulp-imacss: https://github.com/akoenig/imacss
[45] gulp-imagemin: https://github.com/sindresorhus/gulp-imagemin
[46] gulp-tinypng: https://github.com/creativeaura/gulp-tinypng
[47] gulp-spritesmith: https://github.com/otouto/gulp-spritesmith
[48] gulp-grunt: https://github.com/gratimax/gulp-grunt
[49] gulp-watch: https://github.com/floatdrop/gulp-watch
[50] gulp-notify: https://github.com/mikaelbr/gulp-notify
[51] gulp-git: https://github.com/stevelacy/gulp-git
[52] gulp-jsdoc: https://github.com/jsBoot/gulp-jsdoc
[53] gulp-rev: https://github.com/sindresorhus/gulp-rev
[54] gulp-release: https://github.com/pasangsherpa/gulp-release
[55] gulp-bump: https://github.com/stevelacy/gulp-bump
[56] gulp-update: https://github.com/tounano/gulp-update
[57] gulp-bower-files: https://github.com/ck86/gulp-bower-files
[58] gulp-removelogs: https://github.com/hemanth/gulp-removelogs
[59] gulp-preprocess: https://github.com/jas/gulp-preprocess
[60] gulp-duration: https://github.com/hughsk/gulp-duration
[61] gulp-changed: https://github.com/sindresorhus/gulp-changed
[62] gulp-newer: https://www.npmjs.com/package/gulp-newer
[63] gulp-connect: https://github.com/avevlad/gulp-connect
[64] gulp-shell: https://github.com/sun-zheng-an/gulp-shell
[65] gulp-ssh: https://github.com/teambition/gulp-ssh
[66] gulp-zip: https://www.npmjs.com/package/gulp-zip
[67] gulp-clean: https://github.com/peter-vilja/gulp-clean
[68] gulp-copy: https://github.com/klaascuvelier/gulp-copy
[69] gulp-filesize: https://github.com/Metrime/gulp-filesize
[70] gulp-util: https://github.com/gulpjs/gulp-util
[71] gulp-less: https://github.com/plus3network/gulp-less
[72] gulp-sass: https://github.com/dlmanning/gulp-sass
[73] gulp-compass: https://github.com/appleboy/gulp-compass
[74] gulp-stylus: https://github.com/LearnBoost/stylus
[75] gulp-coffee: https://github.com/wearefractal/gulp-coffee
[76] gulp-jade: https://github.com/phated/gulp-jade
[77] gulp-handlebars: https://github.com/lazd/gulp-handlebars
[78] gulp-jst: https://github.com/rdmurphy/gulp-jst
[79] gulp-react: https://github.com/sindresorhus/gulp-react
[80] gulp-nunjucks: https://github.com/sindresorhus/gulp-nunjucks
[81] gulp-dustjs: https://github.com/sindresorhus/gulp-dust
[82] gulp-angular-templatecache: https://github.com/miickel/gulp-angular-templatecache
[83] psi: https://github.com/addyosmani/psi
[84] tmi: https://github.com/addyosmani/tmi
[85] ngrok: https://ngrok.com/
[86] pageres: https://github.com/sindresorhus/pageres
[87] matchdep: https://github.com/tkellen/node-matchdep
[88] grunt-html-build: https://github.com/spatools/grunt-html-build
[89] grunt-processhtml: https://github.com/dciccale/grunt-processhtml
[90] grunt-email-boilerplate: https://github.com/dwightjack/grunt-email-boilerplate
[91] grunt-revizor: https://github.com/atrolov/grunt-revizor
[92] grunt-penthouse: https://github.com/fatso83/grunt-penthouse
[93] grunt-criticalcss: https://github.com/filamentgroup/grunt-criticalcss
[94] тут: http://www.phpied.com/css-and-the-critical-path/
[95] grunt-shipit: https://github.com/shipitjs/grunt-shipit
[96] grunt-githooks: https://github.com/wecodemore/grunt-githooks
[97] Git Hooks: http://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks
[98] grunt-gitbook: https://github.com/GitbookIO/grunt-gitbook
[99] grunt-conventional-changelog: https://github.com/btford/grunt-conventional-changelog
[100] grunt-proxy: https://github.com/tutukin/grunt-proxy
[101] grunt-connect-proxy: https://github.com/drewzboto/grunt-connect-proxy
[102] grunt-phantomas: https://github.com/stefanjudis/grunt-phantomas
[103] grunt-usebanner: https://github.com/mattstyles/grunt-banner
[104] grunt-figlet: https://github.com/patorjk/grunt-figlet
[105] Источник: http://habrahabr.ru/post/252745/
Нажмите здесь для печати.