Если правильно понял Вашу проблему, то рекомендую познакомиться с
gulp.
gulpfile.js в Вашем случае может выглядеть, например, так:
var gulp =require('gulp'),
util =require('gulp-util'),
changed=require('gulp-changed'),
rename =require('gulp-rename'),
babel =require('gulp-babel'),
plumber=require('gulp-plumber'),
path =require('path')
;
var d ={
js :{
src :'src/*.es7.js',
dst :'./'
}
};
gulp.task('js',function(){
return gulp.src(d.js.src)
.pipe(plumber())
.pipe(changed(d.js.dst))
.pipe(babel({stage:0}))
.pipe(rename(function(path){
path.basename=path.basename.replace('.es7','');
}))
.pipe(gulp.dest(d.js.dst));
});
gulp.task('watch',function(){
gulp.watch(d.js.src,['js']);
});
gulp.task('default',['watch','js']);
модуль plumber здесь используется, как раз, для обеспечения беспрерывной работы компилятора.
а метод gulp.watch отслеживает изменения файлов в реальном времени.