GruntJs 'grunt' cmd opens Visual Studio?

2020-07-09 02:48发布

问题:

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?

回答1:

I didnt read the FAQ...

https://github.com/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 command to create a grunt macro, following these directions. That would allow you to use grunt instead of grunt.cmd. This is the DOSKEY command you'd use:

EDIT

Alternatively you could use the DOSKEY command:

DOSKEY grunt=grunt.cmd $*


回答2:

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 command 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.



回答3:

Might I add the option to call the grunt commands from your toolbar in Visual Studio? I ended up integrating a lot of grunt commands in my projects and solutions. All specific tasks. It was a command 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 command. Works like a charm. I now open any solution and get presented in my VS ui, exactly which commands I can use in that solution. Have a look: http://visualstudiogallery.msdn.microsoft.com/f5da988e-2ec1-4061-a569-46d09733c668

Hope it helps!