Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

You may not need Grunt

Grunt is a JavaScript task runner and it’s great at what it does. Even so, depending on a project, you can also do without it.

Instead of Grunt, Npm Scripts can be used directly in package.json, close to the original Node.js module.

Example: SCSS compilation

Grunt task

Gruntfile.js:

'use strict';
module.exports = function (grunt) {
  grunt.loadNpmTasks('grunt-sass');
  grunt.initConfig({
    sass: {
      dist: {
        files: {
          'main.css': 'main.scss'
        }
      }
    }
  });
  grunt.registerTask('default', ['sass']);
};

To run compilation:

$ grunt

NPM script

In package.json:

"scripts": {
  "sass": "node_modules/node-sass/bin/node-sass main.scss main.css"
}

To run:

$ npm run sass

The pros and cons of Grunt

Pros

  • No considerable learning curve
  • Easy to create and maintain
  • Performant single-shot tasks
  • Readability

Cons

  • Not all Node modules have Grunt wrappers
  • Competition from Gulp has hit Grunt community causing some modules to become outdated
  • Performance loss on watch tasks involving several Grunt tasks
  • Bugs introduced by Grunt wrapper’s abstraction

Conclusion

There are right tools for every purpose and the reasoning should depend on the particular project.

Projects where bleeding edge Node modules are to be used in performant environment, NPM scripts will be more effective. Complex builds requiring tasks loaded with options, and concurrency, Grunt is a better choice to maintain.

I put NPM scripts to good use in smartbanner.js, ES6 customisable smart app banner component for iOS and Android.



This post first appeared on Flash Tekkie, please read the originial post: here

Share the post

You may not need Grunt

×

Subscribe to Flash Tekkie

Get updates delivered right to your inbox!

Thank you for your subscription

×