4

I'm writing a grunt task and I want to install a dependency programmatically. However, I can't seem to figure out how to use their API.

This works just fine, but parsing the response is brittle because it uses the CLI:

grunt.util.spawn({ cmd: 'bower', args: ['install', '--save', '[email protected]:foo/bar.git'] }, function(none, message) { grunt.log.writeln(message); }); 

This does not work:

bower.commands.install.line(['--save', '[email protected]:foo/bar.git']) .on('end', function(data) { grunt.log.writeln(data); done(); }) .on('err', function(err) { grunt.log.fail(err); done(); }); 

I get the following error:

$ grunt my-task Running "my-task:default_options" (my-task) task Fatal error: Could not find any dependencies 

What is the right way to do this?

1 Answer 1

8

The line() function expects the whole argv, so should be:

bower.commands.install.line(['node', 'bower', '--save', '[email protected]:foo/bar.git']);

However, you should rather just pass paths and options to the install() method directly:

bower.commands.install(['[email protected]:foo/bar.git'], {save: true});

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.