2015-06-25 23 views
2

當我運行gulp scripts時,all.js和all.min.js都會縮小。有人知道爲什麼發生這種情況?gulp-uglify縮小腳本,它不應該是

gulp.task("scripts", function() { 

    var concatted = gulp.src(['js/first.js', 'js/second.js']) 
         .pipe(concat('all.js')); 

    // output concatenated scripts to js/all.js 
    concatted.pipe(gulp.dest('js')); 

    // minify concatenated scripts and output to js/all.min.js 
    concatted.pipe(uglify()) 
      .pipe(rename('all.min.js') 
      .pipe(gulp.dest('js')) 

}); 

回答

3

的問題是在這裏

// output concatenated scripts to js/all.js 
concatted.pipe(gulp.dest('js')); 

你是不是修改後的流返回到concatted

你可以改變這

// output concatenated scripts to js/all.js 
concatted = concatted.pipe(gulp.dest('js')); 

但這也將按預期

gulp.task("scripts", function() { 
    return gulp.src(['js/first.js', 'js/second.js']) 
     .pipe(concat('all.js')) 
     .pipe(gulp.dest('js')) 
     .pipe(uglify()) 
     .pipe(rename('all.min.js') 
     .pipe(gulp.dest('js')); 
}); 
+0

謝謝!這對我有很大的幫助,我是新手,我做的教程沒有在任務中返回任何東西。 –

+1

返回流是使您的任務異步的一種方法。如果您想將它們用作其他任務的依賴項,則應該使任務異步。見https://github.com/gulpjs/gulp/blob/master/docs/API.md#async-task-support – Phil

+0

謝謝你解釋! –

0

發生了什麼事是你正在串聯兩個腳本

var concatted = gulp.src(['js/first.js', 'js/second.js']) 
        .pipe(concat('all.js')); 
        // Both scripts are now in 'all.js' 

涅槃他們之前

concatted.pipe(uglify()) 
     .pipe(rename('all.min.js') 
     .pipe(gulp.dest('js')) 

一個可能的解決方案是:

gulp.src('js/first.js') 
    .pipe(uglify()) 
    .pipe(rename('all.min.js')) 
    .pipe(gulp.dest('js')); 

希望它幫助。

+0

我編輯/改寫我的清晰度問題。我想將連接腳本輸出到兩個文件:all.js和all.min.js.出於某種原因all.js最終也被縮小了。 –

相關問題