2016-07-07 62 views
0

我正在使用gulp-uglify來縮小我的代碼,並且有一件事我想改變。我的下一個gulpfile.js。當我做gulp calendar-uglify時,我得到了編譯裏面/編譯/目錄和名稱calendar.min.js。如果我在uglify內更改名稱,然後再次運行該命令,gulp會再次生成該名稱。gulp-uglify無法更改名稱

我的意思是,似乎uglify無法編譯與我寫的名字的文件。 Gulp-uglify allways採用concat文件的文件名。

我該怎麼做才能改變這種狀況?

TY,

雅斯特爾

gulpfile.js

// Dependencies 
var gulp  = require('gulp'), 
     concat = require('gulp-concat'), 
     uglify = require('gulp-uglify'); 

// Private callbacks 

/** 
* Calendar js concat 
* @private 
**/ 
var _calendarConcat = function(){ 
    return gulp.src(['./src/olympics/Calendar.js', './src/entry/calendar.js']) 
    .pipe(concat('calendar.min.js')) 
    .pipe(gulp.dest('./dist')); 
}; 

/** 
* Calendar js uglify 
* @private 
**/ 
var _calendarUglify = function(){ 
    return gulp.src('./dist/calendar.min.js') 
    .pipe(uglify('calendar.min.js', { 
     mangle: true, 
     output: { 
     beautify: true 
     } 
    })) 
    .pipe(gulp.dest('./compile/')); 
}; 

// Task def 

gulp.task('calendar-concat', _calendarConcat); 
gulp.task('calendar-uglify', _calendarUglify); 

回答

2

gulp-uglify documentation沒有明確說明該方法簽名uglify()任何地方,但你可以看看the source code推測它出。它本質上是這樣的:

uglify([opts, [uglify]]) 

所以沒有辦法指定使用uglify()不同的文件名。

反正沒有必要。 Gulp插件應該做好一件事,一件事。這樣你可以將它們組合成更復雜的管線。

在你的情況,你要尋找的gulp-rename plugin它讓你重命名文件:

var rename = require('gulp-rename'); 

var _calendarUglify = function(){ 
    return gulp.src('./dist/calendar.min.js') 
    .pipe(uglify({ 
     mangle: true, 
     output: { 
     beautify: true 
     } 
    })) 
    // renames the file to calendar2.min.js 
    .pipe(rename({basename:'calendar2.min'})) 
    .pipe(gulp.dest('./compile/')); 
};