4

私は単調なタスクを書いていて、依存関係をプログラムでインストールしたいと思っています。ただし、API の使用方法がわかりません。

これは問題なく動作しますが、CLI を使用するため、応答の解析は脆弱です。

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

これは動作しません:

bower.commands.install.line(['--save', 'git@github.com: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

これを行う正しい方法は何ですか?

4

1 に答える 1

8

line()関数はargv全体を想定しているため、次のようにする必要があります。

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

ただし、パスとオプションをinstall()メソッドに直接渡すだけにする必要があります。

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

于 2013-02-09T12:15:54.493 に答える