# Awesome Gulp

> A curated list of awesome gulp resources, plugins, and boilerplates for a better development workflow automation.

Looking for something else? Take a look at other awesome lists.

## Contribution

:octocat: All contributions welcome. Feel free to contribute (guidelines).

## Contents

- Legend
- Resources
  - General Resources
  - Official Documentation
  - Community
  - Tutorials
    - Gulp Tutorials
    - Gulp 4 Tutorials
    - Gulp with Browserify
    - Gulp with Angular
    - Gulp with Angular and Browserify
    - Gulp with Angular and Webpack
    - Gulp with React and Browserify
    - Gulp with Ember
  - Miscellaneous Resources
- Plugins
  - Compilation
  - Transpilation
  - Concatenation
  - Minification
  - Optimization
  - Injecting Assets
  - Templating
  - Linting
  - Live Reload
  - Caching
  - Flow Control
  - Logging
  - Testing
  - Miscellaneous Plugins
- Scaffolding
  - Boilerplates
  - Yeoman Generators
- Miscellaneous

## Legend

[:no_entry:] - A deprecation notice;

## Resources

### General Resources

- Official Website
- Github Repository
- Plugin Registry
- NPM Module
- Blacklisted Plugins

### Official Documentation

- Getting Started
- API Documentation
- CLI Documentation
- Writing a Plugin
- Recipes

### Community

- StackOverflow
- Twitter

### Tutorials

#### Gulp Tutorials

- Building with Gulp
- Automate Your Tasks Easily with Gulp.js
- Gulp - The Vision, History, and Future of the Project
- Introduction to Gulp.js
- Video: Learning Gulp
- Using Gulp to Inject Scripts and Styles Tags Directly into Your HTML
- 5 Lessons Learned Using Gulp.js
- Automating Linkage: How I Learned to Stop Worrying and Love the Build
- Setting Up Gulp Tasks for the First Time
- Why You Shouldn’t Create a Gulp Plugin (or, How to Stop Worrying and Learn to Love Existing Node Packages)
- 6 Gulp Best Practices You Can Use Today to Radically Improve Your Development Experience
- Gulp for Beginners

#### Gulp 4 Tutorials

- Migrating to Gulp 4 by Example
- Gulp 4: The new task execution system - gulp.parallel and gulp.series

#### Gulp with Browserify

- Gulp + Browserify, the Gulp-y Way
- Gulp + Browserify
- Fast Browserify Builds with Watchify

#### Gulp with Angular

- What Every Angular Project Likely Needs - and a Gulp Build to Provide It

#### Gulp with Angular and Browserify

- Advanced AngularJS Structure with Gulp, Node and Browserify

#### Gulp with Angular and Webpack

- Angular, Webpack and Gulp for an SPA: Part I
- Angular, Webpack and Gulp for an SPA: Part II
- Angular, Webpack and Gulp for an SPA: Part III

#### Gulp with React and Browserify

- Browserify and Gulp with React
- Taking React to the Next Level: Mixins, Gulp, and Browserify

#### Gulp with Ember

- Improving Your Ember.js Workflow Using Gulp.js

#### Gulp with WordPress

- Advanced WordPress Development Using Gulp

### Miscellaneous Resources

- Gulp Cheatsheet
- Playground for Gulp Recipes

## Plugins

### Compilation

- gulp-sass - Sass → CSS with libsass.
- gulp-ruby-sass - Sass → CSS with Ruby Sass.
- gulp-compass - Sass → CSS with Ruby Sass & Compass.
- gulp-less - Less → CSS.
- gulp-stylus - Stylus → CSS.
- gulp-postcss - Pipe CSS through PostCSS processors with a single parse.
- gulp-coffee - Coffeescript → JavaScript.
- gulp-typescript - TypeScript → JavaScript.
- gulp-react - Facebook React JSX templates → JavaScript.
- webpack-stream - Run webpack as a stream to conveniently integrate with gulp.

### Transpilation

- gulp-babel - ES6 → ES5 with babel.
- gulp-traceur - ES6 → ES5 using Traceur.
- gulp-regenerator - ES6 → ES5 with Regenerator.
- gulp-es6-transpiler - [:no_entry:] ES6 → ES5 with es6-transpiler.
- gulp-myth - Myth - a polyfill for future versions of the CSS spec.
- gulp-cssnext - [:no_entry:] Use tomorrow’s CSS syntax, today, using cssnext.

### Concatenation

- gulp-concat - Concatenate files.

### Minification

- gulp-clean-css - Minify CSS with clean-css.
- gulp-csso - Minify CSS with CSSO.
- gulp-uglify - Minify JavaScript with UglifyJS2.
- gulp-htmlmin - Minify HTML with html-minifier.
- gulp-imagemin - Minify PNG, JPEG, GIF and SVG images with imagemin.
- gulp-svgmin - Minify SVG files with gulp.

### Optimization

- gulp-uncss - Remove unused CSS selectors with UnCSS.
- gulp-css-base64 - Transform all resources found (those within a url() declaration) in CSS files into base64-encoded data URI strings.
- gulp-svg2png - Convert SVGs to PNGs.
- gulp-responsive - Generate images at different sizes.
- gulp-svgstore - Combine svg files into one with `<symbol>` elements.
- gulp-iconfont - Create icon fonts from several SVG icons.

### Injecting Assets

- gulp-useref - Parse build blocks in HTML files to replace references to non-optimized scripts or stylesheets.
- gulp-inject - Transform each file to a string and inject each transformed string into placeholders in the target stream files.
- wiredep - Wire Bower dependencies to your source code.

### Templating

- gulp-angular-templatecache - Concatenate and register AngularJS templates in the $templateCache.
- gulp-jade - Jade → HTML.
- gulp-handlebars - Handlebars templates → JavaScript.
- gulp-hb - Handlebars templates → HTML.
- gulp-nunjucks - Nunjucks templates → JavaScript.
- gulp-dustjs - Dust templates → JavaScript.
- gulp-riot - Riot templates → JavaScript.
- gulp-markdown - Markdown → HTML.
- gulp-template - Lodash templates → JavaScript.
- gulp-swig - Swig templates → HTML.
- gulp-remark - Gulp plugin for remark - markdown processor powered by plugins

### Linting

- gulp-csslint - Automated linting of CSS with CSSLint.
- gulp-htmlhint - HTMLHint wrapper to validate your HTML.
- gulp-jshint - Detect errors and potential problems in JavaScript with JSHint.
- gulp-jscs - Check JavaScript code style with jscs.
- gulp-coffeelint - A style checker that helps keep CoffeeScript code clean.
- gulp-tslint - TypeScript linter plugin for gulp.
- gulp-eslint - Identify and report on patterns found in ECMAScript/JavaScript code.
- gulp-w3cjs - Validate HTML with w3cjs.
- gulp-lesshint - Lint less files with lesshint.
- gulp-check-unused-css - Check your HTML templates for unused CSS classes.

### Live Reload

- browser-sync - Keep multiple browsers & devices in sync when building websites (recipes).
- gulp-livereload - Gulp plugin for livereload.

### Caching

- gulp-changed - Only pass through changed files.
- gulp-cached - A simple in-memory file cache.
- gulp-remember - Remember and recall files passed through it.
- gulp-newer - Pass through newer source files only.

### Flow Control

- merge-stream - Merge multiple streams into one interleaved stream.
- streamqueue - Pipe queued streams progressively.
- run-sequence - Run a series of dependent gulp tasks in order.
- gulp-if - Conditionally run a task.

### Logging

- gulp-notify - Notification plugin for gulp.
- gulp-size - Display the size of your project.
- gulp-debug - Debug vinyl file streams to see what files are run through your gulp pipeline.
- gulp-beer - Better Error Reporting with interactive system notifications and custom server for error displaying.

### Testing

- gulp-mocha - Run Mocha tests.
- gulp-jasmine - Run Jasmine 2 tests in Node.js.
- gulp-protractor - Gulp wrapper for Protractor tests.
- gulp-coverage - Coverage reporting for Node.js that is independent of the test runner.
- gulp-karma - Karma test runner for gulp.
- gulp-ava- Run AVA tests with gulp.

### Miscellaneous Plugins

- gulp-util - Set of useful utilities.
- gulp-plumber - Prevent pipe breaking caused by errors.
- gulp-load-plugins - Automatically load in gulp plugins.
- main-bower-files - Simplify build process setup by dynamically getting the library files.
- autoprefixer - Parse CSS and add vendor prefixes to rules by Can I Use.
- gulp-sourcemaps - Provide source map support.
- gulp-replace - A string replace plugin for gulp.
- gulp-rename - Rename files easily.
- gulp-rev - Static asset revisioning by appending content hash to filenames: unicorn.css → unicorn-d41d8cd98f.css.
- del - Delete files/folders using globs.
- gulp-exec - Run a shell command.
- gulp-strip-debug - Strip console, alert, and debugger statements from JavaScript code.
- gulp-cssimport - Parses a CSS file, finds imports, grabs the content of the linked file and replaces the import statement with it.
- gulp-inline-css - Inline your CSS properties into the style attribute in an HTML file.
- gulp-gh-pages - Publish contents to Github pages.
- gulp-ng-annotate - Add AngularJS dependency injection annotations with ng-annotate.
- gulp-bump - Bump any semver JSON version.
- gulp-file-include - Include files with gulp.
- gulp-zip - ZIP compress files.
- gulp-git - Run Git commands with gulp.
- gulp-filter - Filter files in a vinyl stream using globbing.
- gulp-preprocess - Preprocess files based on custom context or environment configuration.
- gulp-eval - Eval JS-expression or require CommonJS modules and JSON files.

## Scaffolding

### Boilerplates

- web-starter-kit - Google Web Starter Kit.
- gulp-plugin-boilerplate - Boilerplate to kickstart creating gulp plugins.
- polymer-starter-kit - A starting point for Polymer 1.0 apps.
- este - The most complete React/Flux dev stack and starter kit for isomorphic functional web apps.
- mnml - Minimal boilerplate to start a responsive HTML5/Sass project.
- kraken - A lightweight, mobile-first boilerplate for front-end web developers.
- angularjs-gulp-browserify-boilerplate - Boilerplate using AngularJS, Sass, gulp, and Browserify.
- hapi-ninja - A Node.js, Hapi, and Swig boilerplate.
- laravel-5-boilerplate - A Laravel 5 boilerplate project.
- react-starterkit - React starter kit that contains react-router, Reflux, jest, webpack, gulp and Stylus.
- gulp-front - Frontend boilerplate and modular BEM css framework based on gulp, pug, stylus, postcss, webpack and babel.
- Front End Starter - A boilerplate for frontend projects powered by Gulp, HTML5 bolierplate, Sass, PostCss and Webpack(for Babel transpiling).

### Yeoman Generators

- generator-gulp-webapp - A gulp generator for modern webapps.
- generator-gulp-angular - Yeoman generator for AngularJS with gulp.
- generator-react-gulp-browserify - A Yeoman Generator for React library. It includes gulp, Browserify, Browsersync and Bootstrap.
- generator-node-gulp - A Node.js module generator including gulp and Mocha.
- generator-gulp-bootstrap - Yeoman generator for Bootstrap, gulp & libsass.
- generator-angulpify - Yeoman generator involving AngularJS, gulp and Browserify.
- generator-ionic-gulp - A Yeoman generator for Ionic Projects with gulp.
- generator-gulp-plugin-boilerplate - Scaffold out a gulp plugin boilerplate.
- generator-jekyllized - Jekyll workflow with gulp, Sass, AutoPrefixer, asset optimization and cache busting and much more.

## Miscellaneous

- elixir - A clean, fluent API for defining basic gulp tasks for your Laravel applications.
- gulp-app - Gulp as an app (OS X).
- lmn-gulp-tasks - Example of gulp tasks unit testing.
- gulp-chef - An elegant, intuitive way to reuse gulp tasks.

## License

To the extent possible under law, Philipp Alferov has waived all copyright and related or neighboring rights to this work.

gulp.md Github