用nodej和glub-watcher写的监听go 项目自动编译,很鸡肋
glub 一般都是很轻量的编译。
go太重了,改一小个部分,就编译的话,多数是编译失败。
而且很消耗性能,还没想到完美的优化办法。
暂时用个定时器 监听2秒,停止1秒,如此循环,会减少些 “无效”的编译
var watch = require('glob-watcher'); var exec = require('child_process').exec; var sys = require('sys'); var matchregs=new Array(9); var godirpath = process.env.GODIR; var command = process.env.COMMAND; for (var i=0;i<10;i++){ var perkey=""; var tokay=""; for(var j=0;j<=i;j++){ perkey+="*"; tokay=perkey+"/"+tokay } matchregs[i]=godirpath+"/"+tokay.substring(0,tokay.length-1); } // var t=setTimeOut(function(){ // console.log(matchregs) function startwatch(){ var w=watch(matchregs, function(evt){ console.log("1") child = exec(command, function(error, stdout, stderr) { sys.print('error: \n' + error+"\n"); sys.print('stdout: \n' + stdout+"\n"); sys.print('stderr: \n' + stderr+"\n"); }) setTimeout(function(){ w.end(); setTimeout(function(){ startwatch(); },1000) },2000) }) } startwatch()