Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pass Options to a grunt task while running it

Tags:

gruntjs

I thought there was a way to do this, and that I'd stumbled on it before. I have read these answers but they're not what I'm talking about:

Programmatically pass arguments to grunt task?

Grunt conditional option

Accessing the process / environment from a grunt template

I also looked at the grunt docs but it isn't there:

https://github.com/gruntjs/grunt/wiki/Configuring-tasks

Is there a syntax like this?

grunt.task.run 'htmlmin:allFiles:collapseWhitespace=true'

like image 346
SimplGy Avatar asked Sep 04 '13 21:09

SimplGy


People also ask

How do I pass a parameter to a Grunt task?

Another way to share a parameter across multiple tasks would be to use grunt. option . In this example, running grunt deploy --target=staging on the command line would cause grunt. option('target') to return "staging".

When a task is run Grunt looks for its configuration under a?

When a task is run, Grunt looks for its configuration under a property of the same name. Multi-tasks can have multiple configurations, defined using arbitrarily named "targets." In the example below, the concat task has foo and bar targets, while the uglify task only has a bar target.

How do I run a Grunt command in Visual Studio code?

The most recen update to VSC has auto-detects grunt (and gulp tasks) so you can now just use cmd+p then type task (notice the space at the end) and VSC will show you the available tasks to run. Show activity on this post. You can also modify the existing tasks option to add specific tasks to run in your build.


1 Answers

You can use that syntax but it means pass these arguments to the htmlmin task: allFiles, 'collapse=true'.

For example, given the following task:

grunt.registerTask('so', function(arg1, arg2) {    console.log(arg1 + ", " + arg2);  });  

Running:

grunt so:barley:test=true 

Gives the following output:

barley, test=true 

There are other ways to pass parameters/share info described in the faq: How can I share parameters across multiple tasks?

--Options may be applicable to you

Another way to share a parameter across multiple tasks would be to use grunt.option. In this example, running grunt deploy --target=staging on the command line would cause grunt.option('target') to return "staging".

like image 83
dc5 Avatar answered Sep 28 '22 10:09

dc5