Javascript 吞咽任务可以结合起来更快吗?

Javascript 吞咽任务可以结合起来更快吗?,javascript,task,gulp,gulp-concat,gulp-uglify,Javascript,Task,Gulp,Gulp Concat,Gulp Uglify,我有一个我刚写的吞咽文件,我是新来的。它正在工作,但我有比我认为我需要更多的任务 有人能帮我把javascript任务串成一个任务吗 我需要四个单独的js文件,当我完成时,所有这些文件都会变丑 gulpfile.js中的相关代码片段: var gulp = require('gulp') uglify = require('gulp-uglify'), rename = require('gulp-rename'), concat = re

我有一个我刚写的吞咽文件,我是新来的。它正在工作,但我有比我认为我需要更多的任务

有人能帮我把javascript任务串成一个任务吗

我需要四个单独的js文件,当我完成时,所有这些文件都会变丑

gulpfile.js中的相关代码片段:

    var gulp = require('gulp')
        uglify = require('gulp-uglify'),
        rename = require('gulp-rename'),
        concat = require('gulp-concat'),
        notify = require('gulp-notify'),
        cache = require('gulp-cache'),
        del = require('del');


    gulp.task('clean', function(cb) {
        del(['css/*', 'js/min/*'], cb)
    });

    gulp.task('featuretest', function() {
        return gulp.src('js/feature-test.js')
        .pipe(rename({suffix: '.min'}))
        .pipe(uglify())
        .pipe(gulp.dest('js/min'))
    });

    // This file: '/js/excanvas.min.js' is only loaded via lte IE8 conditional statement
    gulp.task('excanvas', function() {
        return gulp.src('js/polyfills/excanvas.js')
        .pipe(rename({suffix: '.min'}))
        .pipe(uglify())
        .pipe(gulp.dest('js/min'))
    });

    // This file: '/js/charts.min.js' is only used on very few pages
    gulp.task('charts', function() {
        return gulp.src(['js/highcharts-4.0.1.js', 'js/usfa-theme.js'])
        .pipe(concat('charts.js'))
        .pipe(rename({suffix: '.min'}))
        .pipe(uglify())
        .pipe(gulp.dest('js/min'))
    });

    // This file: '/js/main.min.js' is a concat of 'libs/jquery', a few polyfills (except excanvas.js and the highcharts)
    gulp.task('scripts', function() {
        return gulp.src(['js/libs/*.js', 'js/plugins/*.js', 'js/polyfills/*.js', '!js/excanvas.js', '!js/highcharts-4.0.1.js', 'js/custom.js'])
        .pipe(concat('main.js'))
        .pipe(rename({suffix: '.min'}))
        .pipe(uglify())
        .pipe(gulp.dest('js/min'))

        .pipe(notify({ message: 'Scripts task complete' }));
    });

    gulp.task('watch', function() {

      // Watch .js files
      gulp.watch('js/**/*.js', ['featuretest', 'excanvas', 'charts', 'scripts']);

    });



    gulp.task('default', ['clean'], function() {
        gulp.start('featuretest', 'excanvas', 'charts', 'scripts');
    });
我想做的是:

    var gulp = require('gulp')
        uglify = require('gulp-uglify'),
        rename = require('gulp-rename'),
        concat = require('gulp-concat'),
        notify = require('gulp-notify'),
        cache = require('gulp-cache'),
        del = require('del');


    gulp.task('clean', function(cb) {
        del(['css/*', 'js/min/*'], cb)
    });

    gulp.task('scripts', function() {
    // This file: '/js/feature-test.js' is loaded in the doc <head>
        return gulp.src('js/feature-test.js')
        .pipe(rename({suffix: '.min'}))
        .pipe(uglify())
        .pipe(gulp.dest('js/min'))

    // This file: '/js/excanvas.min.js' is only loaded via lte IE8 conditional statement at the end of the doc    
        return gulp.src('js/polyfills/excanvas.js')
        .pipe(rename({suffix: '.min'}))
        .pipe(uglify())
        .pipe(gulp.dest('js/min'))

    // This file: '/js/charts.min.js' is only used on very few pages and is loaded only when needed at the end of the doc
        return gulp.src(['js/highcharts-4.0.1.js', 'js/usfa-theme.js'])
        .pipe(concat('charts.js'))
        .pipe(rename({suffix: '.min'}))
        .pipe(uglify())
        .pipe(gulp.dest('js/min'))

    // This file: '/js/main.min.js' is a concat of 'libs/jquery', a few polyfills (except excanvas.js and the high charts), it is loaded at the end of every doc

        return gulp.src(['js/libs/*.js', 'js/plugins/*.js', 'js/polyfills/*.js', '!js/excanvas.js', '!js/highcharts-4.0.1.js', 'js/custom.js'])
        .pipe(concat('main.js'))
        .pipe(rename({suffix: '.min'}))
        .pipe(uglify())
        .pipe(gulp.dest('js/min'))

        .pipe(notify({ message: 'Scripts task complete' }));
    });

    gulp.task('watch', function() {

      // Watch .js files
      gulp.watch('js/**/*.js', ['scripts']);

    });



    gulp.task('default', ['clean'], function() {
        gulp.start('scripts');
    });
var gulp=require('gulp'))
uglify=需要('gulp-uglify'),
重命名=需要('gulp-rename'),
concat=require('gulp-concat'),
notify=需要('gulp-notify'),
cache=require('gulp-cache'),
del=需要('del');
吞咽任务(“清洁”,功能(cb){
del(['css/*','js/min/*',cb)
});
gulp.task('scripts',function()){
//此文件:'/js/feature test.js'已加载到文档中
返回gulp.src('js/featuretest.js')
.pipe(重命名({后缀:'.min'}))
.管道(丑()
.pipe(大口目的地('js/min'))
//此文件“/js/excanvas.min.js”仅通过文档末尾的lte IE8条件语句加载
return gulp.src('js/polyfills/excanvas.js')
.pipe(重命名({后缀:'.min'}))
.管道(丑()
.pipe(大口目的地('js/min'))
//此文件:'/js/charts.min.js'仅在极少数页面上使用,仅在需要时在文档末尾加载
return gulp.src(['js/highcharts-4.0.1.js','js/usfa theme.js']))
.pipe(concat('charts.js'))
.pipe(重命名({后缀:'.min'}))
.管道(丑()
.pipe(大口目的地('js/min'))
//此文件:'/js/main.min.js'是'libs/jquery'的一个concat,有几个polyfill(excanvas.js和high charts除外),它加载在每个文档的末尾
返回gulp.src(['js/libs/*.js','js/plugins/*.js','js/polyfills/*.js','!js/excanvas.js','!js/highcharts-4.0.1.js','js/custom.js'])
.pipe(concat('main.js'))
.pipe(重命名({后缀:'.min'}))
.管道(丑()
.pipe(大口目的地('js/min'))
.pipe(通知({message:'Scripts task complete'}));
});
吞咽任务('watch',function(){
//监视.js文件
gulp.watch('js/***.js',['scripts']);
});
gulp.task('default',['clean',function()){
吞咽开始(“脚本”);
});

如果您问的问题是如何将单独的操作组合到单个任务中,您可以将流与
gulp util
组合

var gulp = require('gulp')
    uglify = require('gulp-uglify'),
    util = require('gulp-util');

gulp.task('scripts', function() {
    var featureTest = gulp.src('js/feature-test.js')...

    var excanvas = gulp.src('js/polyfills/excanvas.js')...

    var charts = gulp.src(['js/highcharts-4.0.1.js', 'js/usfa-theme.js'])...

    var scripts = gulp.src(['js/libs/*.js', 'js/plugins/*.js', 'js/polyfills/*.js', '!js/excanvas.js', '!js/highcharts-4.0.1.js', 'js/custom.js'])...

   // combine streams
   return util.combine(featureTest, excanvas, charts, scripts);
});

这将给你一个单一的任务,但它不会更快。如果你不强迫事情按顺序进行,那么gulp将以最快的速度完成。

你是否只在寻找一个任务(看不清JavaScript文件)?如果是这样,那么上面发布的
脚本
任务就足够了。。。featuretest,excanvas,charts,scripts注:这里也有concat,但我不能concat所有这些文件,我需要4个单独的文件。不要使用
.pipe(concat('xxx.js'))
@Aperçu:上面编辑的代码谢谢,我找到了!