2015-04-24 9 views
8

byłem szczęśliwie kompilacji używając gulp.js ale po południu zacząłem uzyskiwanie ten błąd:Jak naprawić nieobsługiwane zdarzenie "błąd". Zerwana deklaracja @import "A" podczas używania Gulpa?

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: Broken @import declaration of "A" 

moich gulpfile.js wygląda tak:

var gulp = require('gulp'), 
    minifyCSS = require('gulp-minify-css'), 
    sass = require('gulp-ruby-sass'), 
    imagemin = require('gulp-imagemin') 
    minifyHTML = require('gulp-minify-html'), 
    uglify = require('gulp-uglify'), 
    fileinclude = require('gulp-file-include'); 

gulp.task('sass', function() { 
    return sass('node_modules/foundation/scss/') 
    .on('error', function (err) { 
     console.error('Error!', err.message); 
    }) 
    .pipe(gulp.dest('publish/css')); 
}); 

gulp.task('image', function(){ 
    gulp.src('images/*') 
    .pipe(imagemin()) 
    .pipe(gulp.dest('publish/images')); 
}); 

gulp.task('fileinclude', function() { 
    gulp.src(['index.html']) 
    .pipe(fileinclude({ 
     prefix: '@@', 
     basepath: '@file' 
    })) 
    .pipe(gulp.dest('./html/')); 
}); 

gulp.task('minify-css', function() { 
    gulp.src('publish/css/*.css') 
    .pipe(minifyCSS({keepBreaks:false})) 
    .pipe(gulp.dest('publish/css')); 
}); 

gulp.task('compress', function() { 
    return gulp.src(['./node_modules/foundation/js/foundation/*.js','./node_modules/foundation/js/vendor/*.js']) 
    .pipe(uglify()) 
    .pipe(gulp.dest('publish/js')); 
}); 

gulp.task('minify-html', function() { 
    var opts = { 
    conditionals: true, 
    spare:true 
    }; 

    return gulp.src('./html/*.html') 
    .pipe(minifyHTML(opts)) 
    .pipe(gulp.dest('./publish/')); 
}); 


gulp.task('watch', function(){ 
    gulp.watch('node_modules/foundation/scss/', ['sass']); 
    gulp.watch('publish/css/*', ['minify-css']); 
    gulp.watch('publish/images/*', ['image']); 
}); 

gulp.task('alpha', [ 'sass','fileinclude','minify-css','image','compress' ]); 

gulp.task('omega', ['minify-html']); 

gulp.task('build', ['alpha', 'omega']); 

gulp.task('default', ['build']); 

Mam wznowiona, próbował sprawdzanie porty dla konfliktów i Googled to wyczerpująco.

Czy ktoś może zobaczyć oczywisty problem, który może być przyczyną tego?

edytuj: Powinienem dodać, używam ram Foundation.

+0

Wydaje się być problem z plikami CSS. Zakładam, że to dlatego, że uruchamiasz minifyCSS i przechowujesz wyniki w tym samym katalogu. Czy istnieje powód, dla którego nie uruchamiasz go bezpośrednio po wywołaniu Sass iw nowym zadaniu? Czy są też inne pliki CSS? – ddprrt

+0

i czy masz gdzieś deklarację importu, w której próbujesz zaimportować "A.css"? Może dasz nam Gist z instrukcjami importu w twoich plikach – ddprrt

+0

Dziękuję, bardzo. Nie widzę żadnych A.css, ale umieszczenie skompilowanego css we własnym katalogu i _then_ minifying it i umieszczenie go w katalogu publikacyjnym najwyraźniej załatwiło sprawę. Musiałem również upewnić się, że używam kompasu w moim ruby-sassie, który naprawił błąd kompilacji, który otrzymywałem. Podejrzewam, że mój plik gulp może być znacznie wydajniejszy, więc popatrzę na to następne ... –

Odpowiedz

15

Pakiet gulp-minify-css był dla mnie winowajcą. Dodałem ten parametr do mojego pliku gulfile.js i naprawiłem go.

processImport: false 

Na przykład:

.pipe(plugins.minifyCss({ keepSpecialComments: 1, processImport: false })) 
+0

Ten bardzo nam pomógł. Wystąpił problem z wersją 1.2.4 na Linuksie, która miała problem z prawidłowym css @import. Na komputerach okien programistycznych wszystko było w porządku. Wyłączenie przetwarzania importu pomogło nam przejść przez bambusową kompilację, która została wykonana na serwerze Linux. Dzięki i kudos! – Pawel

+1

Wygląda na to, że w ogóle nie uwzględnia on importu? Nie jestem pewien, jak to rozwiązuje problem. – chrismarx

+0

Używam Grunta i udało mi się rozwiązać mój błąd z 'Broken @import declaration of" .. "" dzięki temu –