2015-10-23 22 views
6

Nie mogę wymyślić, co robię źle tutaj. Otrzymuję naprawdę dziwny komunikat o błędzie, gdy próbuję utworzyć plik sourcemap za pomocą Gulpa.Błąd Gulp podczas tworzenia sourcemap ("CssSyntaxError")

events.js:85 
     throw er; // Unhandled 'error' event 
      ^
CssSyntaxError: /www/static/sass/maps/main.css.map:1:198: Missed semicolon 

Chcę, aby były tworzone w osobnym pliku .map. Nie mogę zrozumieć, dlaczego mówi mi, że wystąpił błąd w pliku, o który go poprosiłem ...?

Co robię źle?

Oto moje gulpfile.js:

var gulp = require('gulp'), 
    sass = require('gulp-sass'), 
    minifyCSS = require('gulp-minify-css'), 
    autoprefixer = require('gulp-autoprefixer'), 
    sourcemaps = require('gulp-sourcemaps'), 
    input = 'static/sass/**/*.scss', 
    output = 'static/css'; 

var sassOptions = { 
    errLogToConsole: true, 
    outputStyle: 'expanded' 
}; 

gulp.task('sass', function() { 
    return gulp 
     .src(input) 
     .pipe(sourcemaps.init()) 
     .pipe(sass(sassOptions).on('error', sass.logError)) 
     .pipe(sourcemaps.write('.')) 
     .pipe(autoprefixer()) 
     .pipe(minifyCSS()) 
     .pipe(gulp.dest(output)) 
}); 

gulp.task('watch', function() { 
    gulp.watch(input, ['sass']); 
}); 

// Default task - Compile then set Watch 
gulp.task('default', ['sass', 'watch']); 
+0

Czemu umieszczając źródło mapy na serwerze produkcyjnym w ogóle? – cimmanon

+0

@imimmanon Nie umieszczam moich sourcemaps na żadnym serwerze produkcyjnym. Co dało ci ten pomysł? –

+0

Zrobiłeś: "Chcę, aby były tworzone w osobnym pliku .map, aby przeciętny użytkownik ich nie widział podczas odwiedzania witryny". Dlaczego przeciętny użytkownik miałby widzieć mapę źródłową, chyba że znajdował się na serwerze produkcyjnym? – cimmanon

Odpowiedz

26

Okazuje się, że to po prostu umieszczenie linii .pipe(sourcemaps.write('.')). Przesuwając go rozwiązać problem:

return gulp 
    .src(input) 
    .pipe(sourcemaps.init()) 
    .pipe(sass(sassOptions).on('error', sass.logError)) 
    .pipe(autoprefixer()) 
    .pipe(minifyCSS()) 
    .pipe(sourcemaps.write('.')) // This line moved to here 
    .pipe(gulp.dest(output)) 

chcielibyśmy wiedzieć, dlaczego: -/

+3

Dziękujemy! Wiedziałem, że wszystkie moje średniki były w porządku ... –

+0

samo tutaj, ale nie mam pojęcia, dlaczego sourcemaps muszą być w końcu – Jorre

+2

@Jorre Wierzę, sourcemaps.write() musi przyjść po autoprefixer(), ponieważ autoprefixer próbuje dodać prefiksy do mapy źródłowej, co powoduje błąd –

Powiązane problemy