2013-02-08 2 views
4

Я пишу задачу grunt, и я хочу установить зависимость программно. Однако я не могу понять, как использовать их API.Программно установить с беседкой?

Это работает просто отлично, но разбор ответа хрупок, поскольку он использует CLI:

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

Это не работает:

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(); 
    }); 

Я получаю следующее сообщение об ошибке:

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

Каков правильный способ сделать это?

ответ

8

line() функция ожидает весь ARGV, так должно быть:

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

Однако, вы должны достаточно просто передать пути и варианты к install() метода непосредственно:

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

Смежные вопросы