在当前项目目录下创建一个文件compile.js
然后node compile.js
在然后就没有然后了。
var fs = require('fs')
, path = require('path')
, cp = require('child_process')
, beforePath= ''
;
function listen(dir)
{
fs.readdirSync(dir).forEach(function(filename)
{
var stat= fs.statSync(path.join(dir, filename));
if( stat.isDirectory() )
listen(path.join(dir, filename));
});
fs.watch(dir, function (event, filename)
{
if( filename )
{
if( event==='rename' && filename.lastIndexOf('.ts') >= 0 )
{
var stat= fs.statSync(path.join(dir, filename));
if( stat.isDirectory() )
return;
if( beforePath !== path.join(dir, filename) && filename.lastIndexOf('.ts') > -1 )
{
beforePath= path.join(dir, filename);
cp.exec('tsc --module amd '+ path.join(dir, filename), function(err)
{
if( err )
console.log(err)
else
console.log(filename, 'ok')
beforePath= '';
});
}
}
else
{
setTimeout(function()
{
if(filename.lastIndexOf('.ts') <= 0)
return;
var stat= fs.statSync(path.join(dir, filename));
if( stat.isDirectory() )
listen(path.join(dir, filename));
}, 100);
}
}
});
}
listen(__dirname);