使用异步中断节点脚本

时间:2015-08-21 11:44:09

标签: javascript node.js asynchronous npm exec

我正在运行npm install命令以获取Node上的模块列表,并且有关于async的错误

  

TypeError:undefined不是函数

有什么问题?

var fs = require( "fs" ),
    path = require( "path" ),
    child_process = require( "child_process"),
    async = require( "async"),
    modulesPath = "../modules/";

var dirs = fs.readdirSync( modulesPath )
    .filter( function( dir ) {
        return fs.statSync( path.join( modulesPath, dir )).isDirectory();
    });

var install = function() {
    if ( dirs.length === 0 ) {
        return;
    }

    var dir = dirs.shift();
    console.log( "installing dependencies for : '" + dir + "'" );

    child_process.exec( "npm prune --production | npm install", {
        cwd: modulesPath + dir
    }, install );


  };

install();

1 个答案:

答案 0 :(得分:1)

问题是你正在处理async变量,好像它引用了一个函数,而实际上它引用了一个对象:

return this.async();

您应该更改上面的行,以便调用async对象上的appropriate method

return async.methodThatYouWantToCall();