节点 fs.readdir 在 Grunt 文件中不工作

Node fs.readdir not working in Grunt file

当我在 Node 命令提示符下 运行 我的命令时,它们工作正常。

fs= require('fs')
fs.readdir('.',function(e,files){console.log(files)})

然而,当我将上面的行插入我的 gruntfile.js 时,回调函数根本没有执行。你能告诉我如何获得 Gruntfile.js 中某个文件夹中的文件列表吗?

Gruntfile.js:

'use strict';

var fs= require('fs');

module.exports= function(grunt){

    var configs = require('load-grunt-configs')(grunt);
    grunt.initConfig(configs);

    require('load-grunt-tasks')(grunt);

    fs.readdir('.', function(err,files){
        console.log(files);
    })


}

要让节点文件系统在 grunt 中工作,任务需要是异步的。这是代码:

var fs = require('fs');

module.exports = function(grunt) {


  grunt.registerTask('showFiles', function() {
    var done = this.async(); // creating an async variable

    fs.readdir('.', function(err, files) {
      console.log(files);
      done(); // call when the task is done
    })
  })

  var files = fs.readdirSync('.');
  console.log('Showing Files Read Synchronously');
  console.log(files);
}

//输出

▶ grunt showFiles
Showing Files Read Synchronously
[ 'Gruntfile.js', 'index.js', 'node_modules', 'test.js' ]
Running "showFiles" task
[ 'Gruntfile.js', 'index.js', 'node_modules', 'test.js' ]