Cookies setting

Cookies help us enhance your experience on our site by storing information about your preferences and interactions. You can customize your cookie settings by choosing which cookies to allow. Please note that disabling certain cookies might impact the functionality and features of our services, such as personalized content and suggestions. Cookie Policy

Cookie Policy
Essential cookies

These cookies are strictly necessary for the site to work and may not be disabled.

Information
Always enabled
Advertising cookies

Advertising cookies deliver ads relevant to your interests, limit ad frequency, and measure ad effectiveness.

Information
Analytics cookies

Analytics cookies collect information and report website usage statistics without personally identifying individual visitors to Google.

Information
mageplaza.com

How to Utilize Grunt in Magento 2

Vinh Jacker | 10-01-2024

How to Utilize Grunt in Magento 2 How to Utilize Grunt in Magento 2

The Most Popular Extension Builder for Magento 2

With a big catalog of 224+ extensions for your online store

In Magento 2, Grunt becomes a useful tool that helps developers optimize work performance and improve the user interface development process. This article will guide you on how to use Grunt in Magento 2 in a detailed and easy-to-understand way, from installation to running Grunt commands to manage and optimize your theme.

What is Grunt in Magento 2?

Grunt in Magento 2

Grunt is a powerful task automation tool, based on JavaScript and running in the Node.js environment. Widely known in the web development community, Grunt helps automate many repetitive tasks such as image optimization, compiling Sass or LESS into CSS, code linting, and much more.

In Magento 2, Grunt plays a crucial role in improving the frontend development process. Magento 2 comes with a default set of Grunt tools, making it easy for developers to set up and manage frontend-related tasks.

By using Grunt, you can minimize the time and effort needed for manual tasks, while ensuring that these processes are executed consistently and efficiently.

The key features of Grunt in Magento 2 include:

  • Compiling CSS from Sass or LESS: Grunt can automatically compile Sass or LESS files into CSS, reducing development time and ensuring a consistent look and feel.

  • Image Optimization: Grunt can automatically optimize images, reducing file sizes and improving page load speed.

  • Code Linting: Grunt can perform code linting, helping to detect and fix errors early in the development process.

  • Automatic Browser Refresh: With plugins like BrowserSync, Grunt can automatically refresh the browser whenever there are changes in the source code, saving time and increasing productivity.

How to Utilize Grunt in Magento 2?

Utilize Grunt in Magento 2

Below are the specific steps to install and use Grunt in Magento 2:

Step 1: Install Node.js

First, since Grunt runs on the Node.js platform, you need to install Node.js from the official Node.js website.

Step 2: Install Grunt CLI

After installing Node.js, you need to install the Grunt CLI (Command Line Interface) globally by running the following command:

npm install -g grunt-cli

Step 3: Install Node.js dependencies

You need to install Node.js dependencies for your Magento version, including Grunt. Please run the following commands:

cd <your_Magento_instance_directory>
npm install
npm update

Step 4: Add a theme to Grunt configuration

To add a theme to Grunt configuration, in the file dev/tools/grunt/configs/themes.js, you need to add the theme to module.exports, as shown below:

module.exports = {
       ...
   <theme>: {
   area: 'frontend',
       name: '<Vendor>/<theme>',
       locale: '<language>',
       files: [
       '<path_to_file1>', //path to root source file
       '<path_to_file2>'
   ],
       dsl: 'less'
       ...
},

In this section, the following symbols are used:

theme: The identifier for your theme, usually the name of the theme’s folder.

language: Formatted as ‘code_subtag’, such as en_US. Only one language can be selected here. To debug the theme in another language, create another theme declaration with the language value changed.

path_to_file: The path to the source files, relative to the **app/design/frontend///web** directory. You must specify all the theme's source files. If your theme inherits from another theme and does not contain the source files of that theme, specify the source files of the parent theme.

Step 5: Run Grunt commands

After configuration, you can run Grunt commands to perform various tasks:

  • grunt clean: Deletes the static files generated from the previous compilation process in both the pub/static and var directories.

  • grunt exec: Republishes the source files linked to **pub/static/frontend///**.

  • grunt less: Using symbolic links in **pub/static/frontend///**, this command compiles all CSS commands.

  • grunt watch: This command is used to monitor changes in main files such as .less and recompile them into CSS files using the Grunt tool.

Conclusion

Grunt is a powerful tool that automates repetitive tasks in the Magento 2 development process. By using Grunt, you can streamline workflows and ensure that your codebase remains organized and efficient.

Try installing and using Grunt in your Magento 2 project to experience the benefits it offers. Feel free to reach out to our top experts for advice whenever you encounter any difficulties.

Happy coding!

Table of content
    Jacker

    With over a decade of experience crafting innovative tech solutions for ecommerce businesses built on Magento, Jacker is the mastermind behind our secure and well-functioned extensions. With his expertise in building user-friendly interfaces and robust back-end systems, Mageplaza was able to deliver exceptional Magento solutions and services for over 122K+ customers around the world.



    Related Post

    Website Support
    & Maintenance Services

    Make sure your store is not only in good shape but also thriving with a professional team yet at an affordable price.

    Get Started
    mageplaza services