Asynchronous 列出文件并与Jade一起显示(读:通过Grunt将异步数据传递给Jade)

Asynchronous 列出文件并与Jade一起显示(读:通过Grunt将异步数据传递给Jade),asynchronous,gruntjs,pug,Asynchronous,Gruntjs,Pug,我很难从异步模块传递数据(老实说,每个异步操作都是一个问题-fs.readdir) 我希望Grunt能有像这样的本机方法:Grunt.file.readJSON()到递归读取目录 起初,我用递归readdir创建了一个简单的模块,并将其直接包含到Gruntfile.js中(没有效果),但在阅读了Grunt文档之后,this.async就出现了。即使仍然无法将异步文件列表从recursive readdir传递到Jade模板: 指定任务 var recursive = require('recur

我很难从异步模块传递数据(老实说,每个异步操作都是一个问题-fs.readdir)

我希望Grunt能有像这样的本机方法:Grunt.file.readJSON()到递归读取目录

起初,我用递归readdir创建了一个简单的模块,并将其直接包含到Gruntfile.js中(没有效果),但在阅读了Grunt文档之后,this.async就出现了。即使仍然无法将异步文件列表从recursive readdir传递到Jade模板:

指定任务

var recursive = require('recursive-readdir'); 

grunt.registerTask('readFileList', 'Lists recursively files list. from given path', function() {
    var done = this.async();

    var fileList = recursive('somePath', function (err, files) {
        console.log('log files: ', files);
    });

    done(fileList);
    grunt.config.set('readyList', fileList);
 });
grunt.registerTask('readFileList', 'Lists recursively files list. from given path', function() {

    var done = this.async();

    var fileList = recursive('./.tmp', function (err, files) {
        grunt.config(['initData'], files);
        console.log('RECIEVED FILES: ', files);
        done();
    });
});
初始化配置

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    config: {
        list: grunt.config.get('readyList')
}...
grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    initData: {}...
包括数据

jade: {
    dev: {
        options: {
            pretty: true,
            data: {
                asyncData: grunt.config.list
                //asyncData: fs.readdirSync('.tmp')
            }
        }...
jade: {
    dev: {
        options: {
            pretty: true,
            data: {
                asyncData: '<%= initData %>'
            }
        }...
我的问题:的“有效”回购已创建。

多亏我找到了解决方案:

指定任务

var recursive = require('recursive-readdir'); 

grunt.registerTask('readFileList', 'Lists recursively files list. from given path', function() {
    var done = this.async();

    var fileList = recursive('somePath', function (err, files) {
        console.log('log files: ', files);
    });

    done(fileList);
    grunt.config.set('readyList', fileList);
 });
grunt.registerTask('readFileList', 'Lists recursively files list. from given path', function() {

    var done = this.async();

    var fileList = recursive('./.tmp', function (err, files) {
        grunt.config(['initData'], files);
        console.log('RECIEVED FILES: ', files);
        done();
    });
});
初始化配置

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    config: {
        list: grunt.config.get('readyList')
}...
grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    initData: {}...
包括数据

jade: {
    dev: {
        options: {
            pretty: true,
            data: {
                asyncData: grunt.config.list
                //asyncData: fs.readdirSync('.tmp')
            }
        }...
jade: {
    dev: {
        options: {
            pretty: true,
            data: {
                asyncData: '<%= initData %>'
            }
        }...
jade:{
开发人员:{
选项:{
真的,
数据:{
异步数据:“”
}
}...
希望这将有助于某人。Git回购已更新