Gulp for Magento 2


As a Magento 2 frontend developer, you might have noticed that less to CSS compilation process is too slow with the grunt and it takes more time to rebuild everything making you an inefficient developer.

However, you could solve this problem with Gulp. Gulp is a task / build runner which uses Node.js for web development. The main difference between Gulp and Grunt lies in how they deal with their automation tasks inside.

Gulp uses Node Stream while Grunt uses temp files. Therefore, Gulp compilation is faster compared to Grunt.

Comparing with Grunt

Gulp Grunt
Compilation of all themes (10 files): 16sec 33sec
Custom theme compilation (2 files) 4.5s 11.2s

 

Installation

  1. Download as a zip file or clone this repo into ur PC.
  2. Copy “gulpfile.js” and “package.json” into the root directory (codepool)
  3. Install node.js for your OS: https://nodejs.org/en/
  4. Install modules: run a command in a root directory of your project “npm install”.
    (If you already installed Grunt please remove node_module directory)

 

How to run

  1. Run : gulp exec --theme ex: gulp exec –luma
    Or: php bin\magento dev:source-theme:deploy --locale="en_AU" --area="frontend" --theme="VendorName/themeName"
  2. Run : gulp deploy --theme ex: gulp deploy –luma
    Or: php bin\magento setup:static-content:deploy en_AU
  3. Run gulp command in the root directory with arguments or without. Examples:
    3.a. Compilation of all themes: gulp
    3.b. Compilation of certain theme: gulp less --luma
    3.c. Watcher of certain theme: gulp watch --luma
    3.d. Compilation of certain theme with minification (+~2.5s): gulp less --luma --min
    3.e. Compilation of certain theme with source map(+~1.5s), can’t be used with minification: gulp less --luma --map
    3.f. Compilation with live reload: gulp less --luma --live
    3.g. Watcher with liveReload: gulp watch --luma --live
    3.h. For clear the Magento cache: gulp cache-flush
  4. For using liveReload install extension for your browser: http://livereload.com/
    4.a. Turn on the extension on the page of the project.

 

To Save more

Goto

….\codepool\app\etc\di.xml

find below code

<item name="view_preprocessed" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink</item>

change with

<item name="view_preprocessed" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>

S.S.Niranga

Senior Tech Lead at Netstarter PTY ltd. Magento Certified Front End Developer, Certified ScrumMaster, Microsoft Certified Professional, Member of British Computer Society

Leave a Reply

  • (will not be published)