gulp-uglify не может изменить имя

Я использую gulp-uglify для минимизации своего кода и хочу кое-что изменить.

У меня есть следующий gulpfile.js . Когда я делаю gulp calendar-uglify, я получаю компиляцию внутри каталога /compile/ и с именем calendar.min.js. Если я изменю имя внутри uglify и снова запущу команду, gulp снова сгенерирует имя раньше.

Я имею в виду, кажется, что uglify не может скомпилировать файл с именем, которое я написал. Gulp-uglify всегда берет имя файла 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);

person Ismael Moral    schedule 07.07.2016    source источник


Ответы (1)


В gulp-uglify документации нигде явно не указана сигнатура метода для uglify(), но вы можете посмотреть < href="https://github.com/terinjokes/gulp-uglify/blob/master/minifier.js#L46" rel="nofollow">исходный код, чтобы разобраться. По сути это:

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/'));
};
person Sven Schoenung    schedule 07.07.2016