2015-04-24 4 views
8

Ich habe gerne benutze gulp.js kompilieren, aber an diesem Nachmittag begann ich diesen Fehler:So beheben Sie das nicht behandelte "Fehler" -Ereignis. Gebrochene @ import-Deklaration von "A" bei der Verwendung von Gulp?

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

Meine gulpfile.js wie folgt aussieht:

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']); 

ich neu gestartet habe, versucht, Überprüfung Ports für Konflikte und Google diese erschöpfend.

Kann jemand ein offensichtliches Problem sehen, das das verursachen könnte?

edit: Ich sollte hinzufügen, ich benutze das Foundation-Framework.

+0

Es scheint ein Problem mit dem CSS-Dateien zu sein. Ich nehme an, es liegt daran, dass Sie minifyCSS ausführen und die Ergebnisse im selben Verzeichnis speichern. Gibt es einen Grund, warum du es nicht direkt nach deinem Sass-Anruf und in einer neuen Aufgabe ausführst? Gibt es noch andere CSS-Dateien? – ddprrt

+0

und haben Sie irgendwo eine Import-Anweisung, wo Sie versuchen, "A.css" zu importieren? Vielleicht können Sie uns mit Ihren Importanweisungen in Ihren Dateien einen Hinweis geben – ddprrt

+0

Vielen Dank, so sehr. Es gibt keine A.css, die ich sehen kann, aber das kompilierte css in ein eigenes Verzeichnis zu setzen und es dann zu verkleinern und in das Publish-Verzeichnis zu stellen, scheint den Zweck erfüllt zu haben. Ich musste auch sicherstellen, dass ich einen Kompass in meinem Ruby-Sass benutzte, der einen Kompliationsfehler behoben hatte, den ich bekam. Ich vermute, mein gulpfile könnte viel effizienter sein, also werde ich mir das nächste mal ansehen ... –

Antwort

15

Das Gulp-Minify-CSS-Paket war der Schuldige für mich. Ich habe diesen Parameter zu meiner Datei gulfile.js hinzugefügt und das Problem behoben.

processImport: false 

Zum Beispiel:

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

Dieser hat uns sehr geholfen. Wir hatten ein Problem mit Version 1.2.4 unter Linux, das ein Problem mit einem richtigen css @ import hatte. Auf Entwickler-Windows-Maschinen war alles in Ordnung. Durch das Deaktivieren der Importverarbeitung konnten wir die auf dem Linux-Server ausgeführten bamboo build durchlaufen. Danke und Kudos! – Pawel

+1

Dies scheint jedoch den Import überhaupt nicht zu enthalten? Nicht sicher, wie das das Problem löst – chrismarx

+0

Ich benutze Grunt und war in der Lage, meinen Fehler der 'Broken @ Import-Deklaration von" .. "' Dank zu lösen –