gulp-uglify无法更改名称

时间:2016-07-07 11:45:45

标签: gulp gulp-uglify

我使用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);

1 个答案:

答案 0 :(得分: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/'));
};