Javascript Grunt任务不会从Require引用的节点代码执行模块

Javascript Grunt任务不会从Require引用的节点代码执行模块,javascript,node.js,gruntjs,Javascript,Node.js,Gruntjs,我有以下任务: module.exports = function(grunt) { var info = 'Syncs, updates English translations and downloads Chinese translations.'; grunt.registerTask('translations', info, function() { require('../../node/poeditor'); }); };

我有以下任务:

    module.exports = function(grunt) {
    var info = 'Syncs, updates English translations and downloads Chinese translations.';    

    grunt.registerTask('translations', info, function() {
        require('../../node/poeditor');
    });
};
我希望需要在该节点模块中执行代码,其布局如下:

var querystring = require('querystring'),
    fs = require('fs'),
    https = require('https');

// Sync Terms
console.log('Syncing Terms...');
var requestConfig = {
    options: {
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Content-Length': 0
        },
        host: 'poeditor.com',
        method: 'POST',
        path: '/api/',
        port: '443'
    },
    data: {
        api_token: API_KEY,
        action: 'sync_terms',
        id: PROJECT_ID,
        data: ''
    }
};

fs.readFile('public/js/languages/en.json', 'utf8', function(error, data) { console.log(data);
});
grunt.registerTask('translations', info, function() {
        require('../../node/poeditor')(this);
    });

问题是上面提到的模块根本没有被执行,我遗漏了什么?在Grunt中,或者当需要一个需要其他模块来执行代码的模块时,我需要做一些特殊的事情吗?

我想出来了。我在做异步操作,所以我改为这样调用我的任务:

var querystring = require('querystring'),
    fs = require('fs'),
    https = require('https');

// Sync Terms
console.log('Syncing Terms...');
var requestConfig = {
    options: {
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Content-Length': 0
        },
        host: 'poeditor.com',
        method: 'POST',
        path: '/api/',
        port: '443'
    },
    data: {
        api_token: API_KEY,
        action: 'sync_terms',
        id: PROJECT_ID,
        data: ''
    }
};

fs.readFile('public/js/languages/en.json', 'utf8', function(error, data) { console.log(data);
});
grunt.registerTask('translations', info, function() {
        require('../../node/poeditor')(this);
    });
通过模块传递该范围:

module.exports = function(grunt) {...
然后这样做:

var done = grunt.async();
在我上次的异步回调调用中,如下所示:

done();
所以基本上我必须遵循这个: