我想使用 API 蓝图并通过 grunt 自动实现。我想读取 apiary(API 蓝图工具)文件,解析它(使用 Protagonist,它是 Node.js 的 API 蓝图解析器),将其字符串化为 JSON 格式并写入另一个文件。这是一项简单的任务,但我不知道该怎么做,我总是得到未定义的结果。这是我到目前为止所拥有的:
grunt.registerTask('apiary2js', 'Generate js version of apiary file.', function () {
var parser = require('protagonist');
var content = grunt.file.read('apiary.apib');
var blueprint = parser.parse(content, function (error, result) {
if (error) {
console.log(error);
return;
}
return result.ast; <-- (how to return this value?)
});
var json = JSON.stringify(blueprint);
grunt.file.write('test/frontend/apiary.js', "var apiary = " + json);
});
结果 apiary.js 是这样的:
var apiary = undefined