I have been able to use GruntJs on several personal projects with zero problems. I decided I would use it on my project at work.
I run: grunt init:gruntfile
and that creates the gruntfile and the package.json file just fine.
The problem is that whenever I run any grunt cmd grunt
or grunt lint
etc it immediately opens up Visual Studio and opens the gruntfile. Nothing actually happens.
Any idea what I am doing wrong?
I have been able to use GruntJs on several personal projects with zero problems. I decided I would use it on my project at work.
I run: grunt init:gruntfile
and that creates the gruntfile and the package.json file just fine.
The problem is that whenever I run any grunt cmd grunt
or grunt lint
etc it immediately opens up Visual Studio and opens the gruntfile. Nothing actually happens.
Any idea what I am doing wrong?
Share Improve this question asked Jun 7, 2012 at 13:44 Mike FieldenMike Fielden 10.2k14 gold badges60 silver badges100 bronze badges3 Answers
Reset to default 15I didnt read the FAQ...
https://github./gruntjs/grunt/wiki/Frequently-Asked-Questions
If you're in the same directory as the grunt.js gruntfile, Windows tries to execute that file when you type grunt. So you need to type grunt.cmd instead.
An alternative would be to use the DOSKEY mand to create a grunt macro, following these directions. That would allow you to use grunt instead of grunt.cmd. This is the DOSKEY mand you'd use:
EDIT
Alternatively you could use the DOSKEY
mand:
DOSKEY grunt=grunt.cmd $*
The alternative solution is to simply rename gruntfile from grunt.js
to sth like gruntfile.js
and then:
grunt --config gruntfile.js task:target
That way, there's no grunt.js
file so grunt
mand will invoke the grunt binary rather than trying to open the file.
This has an advantage of not needing platform-specific hacks. But of course if you want to type quickly in the console, you have to go with the DOSKEY
hack.
In case one wants to run grunt from npm
, she can write node node_modules/grunt/bin/grunt
instead of just grunt
in the proper section of package.json
.
Might I add the option to call the grunt mands from your toolbar in Visual Studio? I ended up integrating a lot of grunt mands in my projects and solutions. All specific tasks. It was a mand spagetti, difficult to stay organized. I created a solution for this problem (scratch-my-own-itch project), it's an extension on visual stio called VsCommandBuddy. It allows the developer, per solution/project configurable, to specify which toolbar buttons should invoke which mand. Works like a charm. I now open any solution and get presented in my VS ui, exactly which mands I can use in that solution. Have a look: http://visualstudiogallery.msdn.microsoft./f5da988e-2ec1-4061-a569-46d09733c668
Hope it helps!