나는 wordpress svn repo에서 최신 wordpress 플러그인을 설치하는 불만스런 작업을하고 있습니다.이 작업은 명령 줄 작업을 통해 수행됩니다. 그래서 하나의 잘 var done = this.async()
및 done(error)
작품을 사용하여 각 플러그인 (svn co
를 통해) 설치로 내가 출력을 볼 수 있도록Grunt 사용자 정의 작업 내에서 여러 비동기 요청을 처리하는 방법은 무엇입니까?
은 이상적으로이 동 기적으로 수행 싶습니다 ..하지만 exec
단순히 실행 및 대기하지 않는 것처럼 보인다 비동기 동작이지만이 경우에는 여러 개가 아닙니다 ... 무엇을 놓치고 있습니까? 여기
grunt.registerTask('install-plugin', 'Get latest versions of required plugins', function(p){
var exec = require('child_process').exec;
var plugins = p ? [p] : grunt.config.get('wp_plugins');
var pattern = 'svn co http://plugins.svn.wordpress.org/%s/tags/$(curl -s http://plugins.svn.wordpress.org/%s/trunk/readme.txt | grep "Stable tag:" | sed -E "s/[Ss]table tag: *//")/ plugins/%s'
var done = this.async();
plugins.forEach(function(plugin) {
// using split/join instead of util.format('foo%s', 'bar')
var cmd = pattern.split("%s").join(plugin);
exec(cmd, function (error, stdout, stderr) {
grunt.log.writeln('Installing WordPress Plugin: "' + plugin + '"');
grunt.log.writeln(stdout);
done(error);
});
});
});