Gulp 循环配置文件和合并任务...慢

Posted

技术标签:

【中文标题】Gulp 循环配置文件和合并任务...慢【英文标题】:Gulp loop config files and merge task... slow 【发布时间】:2015-06-23 10:09:19 【问题描述】:

我正在尝试使用 gulp 和 config.json 文件自动执行我的 js 任务,因此我不需要打开 gulpfile.js,而只需打开配置文件。 我的代码看起来不错并且正在运行……但是 Gulp 在 10 秒内完成了任务!我正在寻找一种更快完成任务的方法。

在配置文件中,我想用自己的 concat 东西设置不同的 javascript

这是我的 config.json 的示例部分:

"javascript": 
    "watchdir": "./assets/js/src",
    "files": [
        "basename": "script",
        "src" : ["./assets/js/src/jquery-2.1.3.min.js", "./assets/js/src/TweenMax.min.js", "./assets/js/src/imagesloaded.pkgd.min.js", "./assets/js/src/isotope.pkgd.min.js", "./assets/js/src/base.js"],
        "dest": "./assets/js"
    ,
    
        "basename": "contact",
        "src" : ["./assets/js/src/googlemap.js", "./assets/js/src/contact-form.js"],
        "dest": "./assets/js"
    ]
,

还有,这是我的 gulp 任务:

/* Scripts task */
gulp.task('scripts', function() 
    var tasks = config.paths.javascript.files.map(function(entry)
        return gulp.src(entry.src)
        .pipe(plumber(errorHandler: onError))
        .pipe(concat(entry.basename + '.js'))
        .pipe(rename(basename: entry.basename, suffix: '.min'))
        .pipe(uglify())
        .pipe(gulp.dest(entry.dest))
    );

    return es.merge.apply(null, tasks).pipe(notify('Javascript Compiled and Minified'));
);

还有手表:

// Watch files
gulp.task('default', ['less', 'scripts'], function () 
    gulp.watch([config.paths.less.src + '/*.less'], ['less'])
    gulp.watch([config.paths.javascript.watchdir + '/*.js'], ['scripts'])
);

【问题讨论】:

【参考方案1】:

在已经 uglfied 的库上运行 Uglify 是一个巨大的性能杀手。尝试将那些从您的缩小过程中排除,这应该会加快速度!

+1 用于使用流数组!!

【讨论】:

看起来如果用非 uglified 替换 uglified js,它对于普通的监视任务仍然不够快......好吧,它有点快但不足以满足我的需要。我想为我的供应商脚本(如 jquery)创建一个独特的任务,为我的常见 js(如 home.js..contact.js.. 等)创建一个独特的任务。这样,我将有一个很长的任务,其中包含我不编辑的文件。可能只是所有大型 javascript 的混合使任务变慢.. jQuery、Tweenmax、imagesloaded、isotope、lightgallery。

以上是关于Gulp 循环配置文件和合并任务...慢的主要内容,如果未能解决你的问题,请参考以下文章

javascript Gulp 4 - 具有外部配置的多文件任务。使用gulp-load-plugins的基本gulpfile模板,用于多个任务文件

gulpfile配置

gulp自动化方案

使用gulp 合并压缩打包,实时监控文件,实现本地server

gulp

gulp和webpack之间的区别