之前介绍了apiDoc这个生成Restful api文档的工具,可是还是不爽,每次写完了还要手动去执行命令,所以自己写了一个监视文件变化,然后自动执行生成文档的工具。
先上代码:
/**
* Created by lincoln on 16-1-6.
*/
var gaze = require('gaze');
var exec = require('child_process').exec;
var fs = require('fs')
function init(){
fs.mkdirSync('./api');
fs.mkdirSync('./doc');
createConfigureFile();
beginWatch();
}
/**
{
"name": "测试",
"version": "0.0.1",
"description": "API文档测试",
"title": "API文档测试",
"url" : "http://121.41.44.218",
"sampleUrl" : "http://121.41.44.218",
"template":{
"forceLanguage":"zh-cn"
}
}
*/
function createConfigureFile(){
var configure = {
"name": "测试",
"version": "0.0.1",
"description": "API文档测试",
"title": "API文档测试",
"url" : "http://xxxxxx",
"sampleUrl" : "http://xxx",
"template":{
"forceLanguage":"zh-cn"
}
}
fs.writeFileSync('./api/apidoc.json',JSON.stringify(configure));
}
function beginWatch(){
gaze('./api/*.*',function(error,watcher){
this.on('all', function(event, filepath) {
console.log(filepath + ' was ' + event);
runGeneartion();
})
});
}
function runGeneartion(){
var com = exec('apidoc -i ./api -o ./doc ')
com.stdout.on('data', function (data) {
console.log("生成Api->"+data);
});
com.stderr.on('data', function (data) {
console.log('生成错误啦->' + data);
});
}
if(fs.existsSync('./api') && fs.existsSync('./doc')){
beginWatch();
}else{
init();
}
工具说明:
1、第一次执行,生成两个文件夹api和doc,并在api中生成apidoc.json配置文件,然后监测在api文件夹中的文件变化,如果发现变化,就生成文档。
2、如果存在api和doc,则直接监视api文件夹中的变动