我使用gulp-uglify来缩小我的代码,我希望改变这一点。
我有下一个gulpfile.js
。当我gulp calendar-uglify
时,我在/ compile /目录下编译并使用名称calendar.min.js
。如果我更改uglify
内的名称并再次运行命令,gulp会再次生成名称。
我的意思是,似乎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);
答案 0 :(得分:2)
gulp-uglify
documentation并未在任何地方明确说明uglify()
的方法签名,但您可以查看the source code来解决问题。基本上就是这样:
uglify([opts, [uglify]])
其中
opts
是options的可选地图。uglify
是可选的instance of uglifyJs 因此,无法使用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/'));
};