私はGrirtfileを設定してソースファイルを解析してPHPファイルを解析してローダーで解析して、ファイル名とパスを動的に把握してからgrunt.initConfig()
を実行する必要があります。grunt.initConfig()の前に非同期操作を実行するにはどうすればよいですか?
残念ながら、grunt.initConfig()
は非同期で実行されるようには見えないため、呼び出す前に非同期コードを実行する方法はありません。これを達成するためのトリックがあるか、検出ルーチンを同期して書き直す必要がありますか?コールバックが到着する前に実行をブロックする簡単な方法はありますか?
もちろん、this.async()
がありますが、initConfig()
の場合は動作しません。これを成し遂げるためにどのように任意の良いアイデアは
function findSomeFilesAndPaths(callback) {
// async tasks that detect and parse
// and execute callback(results) when done
}
module.exports = function (grunt) {
var config = {
pkg: grunt.file.readJSON('package.json'),
}
findSomeFilesAndPaths(function (results) {
config.watch = {
coffee: {
files: results.coffeeDir + "**/*.coffee",
tasks: ["coffee"]
// ...
}
};
grunt.initConfig(config);
grunt.loadNpmTasks "grunt-contrib-coffee"
// grunt.loadNpmTasks(...);
});
};
:
ここでストリップダウンの例ですか?
ありがとうございます!
どうなりますか? –
これは私が上記のことでしたか? gruntは私のコールバックを待たないので、grunt.initConfig()などはgruntクライアントが戻る前に呼び出されません。 – leyyinad
ありがとう、私の間違い... –