2017-12-16 2 views
0

Ich habe Schluckaufgabe im Projekt implementieren. Ich habe gulp-assests-version-replace installiert, um die Versionskontrolldatei der CSS-Datei zu erstellen.Schlucksequenz funktioniert nicht

Jetzt möchte ich obige Aufgabe nach dem Erstellen der app.css ausführen. Es wird vor dem Erstellen der app.css ausgeführt, sodass die Versionskontrolldatei nicht erstellt werden kann.

Unten ist die Schluckdatei zum Ausführen der Schluckaufgaben.

var gulp = require('gulp'); 

var autoprefixer = require('gulp-autoprefixer'); 
var changed  = require('gulp-changed'); 
var concat  = require('gulp-concat'); 
var del   = require('del'); 
var gulpif  = require('gulp-if'); 
var gutil  = require('gulp-util'); 
var imagemin  = require('gulp-imagemin'); 
var jshint  = require('gulp-jshint'); 
var notify  = require('gulp-notify'); 
var plumber  = require('gulp-plumber'); 
var rename  = require('gulp-rename'); 
var sass   = require('gulp-sass'); 
var assetsVersionReplace = require('gulp-assets-version-replace'); 
var uglify  = require('gulp-uglify'); 


var path = { 
    assets: 'skin/frontend/custom_theme/default/' 
}; 

var config = { 
    tasks: { 
     css: { 
      autoprefixerOptions: { 
       // For "browserslist" see "package.json" 
       cascade: false, 
       supports: false // See: https://github.com/filamentgroup/select-css/issues/17 
      }, 
      dest: path.assets + 'css/build', 
      sassOptions: { 
       outputStyle: 'compressed' 
      }, 
      src: path.assets + 'css/src/**/*.scss' 
     }, 
     version: { 
      autoprefixerOptions: { 
       // For "browserslist" see "package.json" 
       cascade: false, 
       supports: false // See: https://github.com/filamentgroup/select-css/issues/17 
      }, 
      dest: path.assets + 'css/build', 
      sassOptions: { 
       outputStyle: 'compressed' 
      }, 
      src: path.assets + 'css/build/app.css' 
     } 
    } 
} 

gulp.task('default', ['clean'], function() { 
    gulp.start('css'); 
    gulp.start('assetsVersionReplace'); 
}); 

    gulp.task('clean', function() { 
    return del([ 
     path.assets + 'css/build', 
     path.assets + 'js/build', 
     path.assets + 'js/min', 
     path.assets + 'img/build' 
    ]); 
}); 
gulp.task('css', function() { 
    return gulp.src(config.tasks.css.src) 
     .pipe(plumber({ 
      errorHandler: reportError 
     })) 
     .pipe(sass(config.tasks.css.sassOptions)) 
     .pipe(autoprefixer(config.tasks.css.autoprefixerOptions)) 
     .pipe(gulp.dest(config.tasks.css.dest)); 
}); 

gulp.task('assetsVersionReplace', function() { 
    return gulp.src(config.tasks.version.src) 
    .pipe(assetsVersionReplace({ 
     replaceTemplateList: [ 
     'app/design/frotend/custom_theme/default/template/page/head.phtml' 
     ] 
    })) 
    .pipe(gulp.dest(config.tasks.version.dest)) 
}); 

gulp.task('watch', function() { 
    // Run "default" immediately 
    gulp.start('default'); 

    // CSS 
    gulp.watch(config.tasks.css.src, ['css']); 
    gulp.watch(config.tasks.version.src,    ['assetsVersionReplace']); 
}); 

Wie kann ich laufen assetsVersionReplace Aufgabe nach der CSS-Erstellung (oder nach RUNNUNG 'CSS' Task)?

Antwort

0

Entweder ändern

gulp.task('assetsVersionReplace', function() { 

zu

gulp.task('assetsVersionReplace', ['css'], function() { 

oder, falls dies nicht möglich ist, fügen Sie einen Helfer Aufgabe

gulp.task('assetsVersionReplaceAfterCss', ['css'], function() { 
    gulp.start('assetsVersionReplace'); 
} 

und verwenden, die anstelle

0

Warum benutzt du keinen Schluck? Serie.

gulp.task('default', 
    gulp.series(
     'css', 
     'assetsVersionReplace' 
    ) 
); 
+0

gulp.series ist nur gulp4.0 - noch in der Beta! – Mark