2017-01-12 2 views
0

Мне просто интересно, можно ли передавать аргументы в командах Gulp.Аргумент Pass Gulp в команде

Например, я хотел бы использовать следующую команду:

gulp alpha 

Я тогда как alpha часть этой команды, чтобы передать в моей задаче стилей, как так:

gulp.task('styles', ([ ALPHA ARGUMENT HERE ]) => { 
    return gulp.src('src/styles/theme/[ ALPHA ARGUMENT HERE ]/main.scss') 
     .pipe(sassGlob()) 
     .pipe(sass({ 
      style: 'expanded', 
      quiet: true, 
      'default-encoding': 'UTF-8' 
     })) 
     .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4')) 
     .pipe(gulp.dest('public/css')) 
     //.pipe(rename({ suffix: '.min' })) 
     .pipe(rename('[ ALPHA ARGUMENT HERE ]-all.min.css')) 
     .pipe(minifycss({ 
      compatibility: 'ie8', 
      noAdvanced: true 
     })) 
     .pipe(gulp.dest('public/css/')); 
}); 

Затем, когда я запускаю задачу Gulp по умолчанию:

// Default Task Init 

gulp.task('default',() => { 
    gulp.start('production'); 
}); 

gulp.task('production', ['clean'],() => { 
    gulp.start('styles', 'images', 'fonts', 'scripts'); 
}); 

Я бы хотел, чтобы моя задача стилей имела генерацию создал файл с именем: alpha-all.min.css в моей папке public/css/.

В настоящее время я использую Gulp Yargs для непосредственного использования задач в командной строке.

Возможно ли это в рамках Gulp?

+0

Невозможно. 'gulp alpha' сообщает gulp для запуска задачи с именем' alpha', а не для запуска задачи 'default' с параметром' alpha'. Невозможно обойти это. –

+0

@SvenSchoenung, мне удалось сделать это с помощью Yargs, но не идеально, но работает :) –

ответ

0

мне удалось решить эту проблему сам, если кто-нибудь хотел бы знать, как сделать это, я использовал следующую задачу:

var theme = argv.destination; 

gulp.task('styles',() => { 
    return gulp.src('src/styles/theme/' + theme + '/main.scss') 
     .pipe(sassGlob()) 
     .pipe(sass({ 
      style: 'expanded', 
      quiet: true, 
      'default-encoding': 'UTF-8' 
     })) 
     .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4')) 
     .pipe(gulp.dest('public/css')) 
     //.pipe(rename({ suffix: '.min' })) 
     .pipe(rename(theme + '-all.min.css')) 
     .pipe(minifycss({ 
      compatibility: 'ie8', 
      noAdvanced: true 
     })) 
     .pipe(gulp.dest('public/css/')); 
}); 

С помощью глотком Yargs это я могу передать аргумент с помощью gulp --destination=alpha.

Смежные вопросы