Over a million developers have joined DZone.

GruntJS and Maximum Call Stack Size Exceeded Warning

DZone's Guide to

GruntJS and Maximum Call Stack Size Exceeded Warning

· Web Dev Zone ·
Free Resource

Access over 20 APIs and mobile SDKs, up to 250k transactions free with no credit card required

I am trying to set up a GruntJS build pipeline for one my side projects and ran into a very interesting warning today, shown below.


What was weird was that this warning or error only started when I added my task to compile my Typescript code.  If I called the default task, which did not compile the Typescript code, everything worked as expected.  Of course, because the Typescript task was failing, I assumed the error had something to do with its configuration.  However, as you can see, my Typescript setup is pretty simple:


Because my setup looked right I thought it would be a smart idea to run the task with the verbose output via the grunt typescript –v command.  The second I ran this I saw the issue …


The Running “typescript” task goes on and on until we hit our stack overflow.

I immediately changed focus from my Typescript configuration to my task configuration and saw the issue.


Looking at my task setup above I saw the issue.  It is a bad idea to name your Grunt task the same as one of the target tasks in your config … D'OH.

After changing the name of my Grunt tasks as follows, the world was a happy place.


The moral of the story is two-fold:

  1. Do NOT name your Grunt task the same as your configuration element.
  2. Use the –v option to see what is really going on when a Grunt task fails.

Until next time.

P.S. If you want to learn more about Knockout, watch my Pluralsight Course on KnockoutJS.

P.P.S. If you want to learn how to transition your XAML skills to HTML, you can watch my course on HTML for the XAML Developer

#1 for location developers in quality, price and choice, switch to HERE.


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}