现在我有我的 Gruntfile 设置来执行一些自动检测魔术,比如解析源文件来解析 roder 中的一些 PHP 源,以动态找出我在运行之前需要知道的文件名和路径grunt.initConfig()
。
不幸的是grunt.initConfig()
,似乎并不意味着要异步运行,所以我看不到在调用异步代码之前执行异步代码的方法。有没有办法做到这一点,还是我必须同步重写我的检测程序?在我的回调到达之前,有什么简单的方法可以阻止执行吗?
里面当然有 grunt tasks 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(...);
});
};
有什么好主意如何完成这项工作?
非常感谢!