GulpJS-如何通过只编译修改过的'js'文件来节省时间?

GulpJS-如何通过只编译修改过的'js'文件来节省时间?,gulp,gulp-watch,Gulp,Gulp Watch,我已经将gulp构建与我的angular应用程序开发集成在一起。每次js、html、css更改时,我都会将文件编译为单个文件并运行应用程序 在以前,一切都很好。当我添加更多的js文件时,我会延迟通过浏览器同步重新加载网页。但我知道每次gulp编译时,所有文件都是单个的,即使没有更新 我的问题是: 如何只编译更新的文件并运行浏览器同步?这是我的吞咽代码: gulp.task'js',函数{ 咕噜咕噜 .pipesourcemaps.init .pipeconcat'scripts.js' .管道注

我已经将gulp构建与我的angular应用程序开发集成在一起。每次js、html、css更改时,我都会将文件编译为单个文件并运行应用程序

在以前,一切都很好。当我添加更多的js文件时,我会延迟通过浏览器同步重新加载网页。但我知道每次gulp编译时,所有文件都是单个的,即使没有更新

我的问题是:

如何只编译更新的文件并运行浏览器同步?这是我的吞咽代码: gulp.task'js',函数{ 咕噜咕噜 .pipesourcemaps.init .pipeconcat'scripts.js' .管道注释 派普格利夫先生 .pipesourcemaps.write .pipegulp.dest'/dist/js' .pipebrowserSync.reload{ 溪流:对 }; };

使用


当我们用文件名压缩文件时,它可能会有所帮助。当我们将脚本转换为单个文件时,它不会有任何帮助。因为您在执行其他任务之前先转换脚本,所以每次源文件发生更改时,它不需要编译整个scripts.js吗?也许在康考特之前移动注释和丑恶?
var changed = require('gulp-changed');

gulp.task('js', function() {
    gulp.src(scripts)
        .pipe(changed('./dist/js'))
        .pipe(sourcemaps.init())
        .pipe(concat('scripts.js'))
        .pipe(annotate())
        .pipe(uglify())
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./dist/js'))
        .pipe(browserSync.reload({
            stream: true
        }));
});