2014-05-16 24 views
7

Ich versuche tatsächlich einen Schluck zu planen, Web-bezogene Sachen zu tun, wie Sass kompilieren, css zu minimieren, Javascript und so weiter. Aber ich habe wirklich Probleme mit Sass.gulp-sass nicht sass Dateien kompilieren

Hier ist eine Probe von meinem Code:

gulp.task('compile-sass', function() { 
    gulp.src(buildType+config.path.sass+"/main.sass") 
     .pipe(compass({ 
      css: 'css', 
      sass: 'sass' 
     })) 
    .pipe(gulp.dest(buildType+config.path.css+"/test")); 
}); 

Also hier bin ich mit Kompass, weil ich nur * .sass Dateien haben und keine .scss so schlucke-Sass wäre für mich nicht. Daher frage ich, ob jemand mir einen Hinweis geben könnte, warum diese Aufgabe nicht funktioniert. Hier ist, was meine Konsole zurück:

[gulp] Starting 'compile-sass'... 
[gulp] Finished 'compile-sass' after 6.11 ms 
[gulp] You must compile individual stylesheets from the project directory. 


events.js:72 
    throw er; // Unhandled 'error' event 
     ^
[gulp] Error in plugin 'gulp-compass': Compass failed 
at Transform.<anonymous> (/Users/myusername/node_modules/gulp-compass/index.js:37:28) 
at ChildProcess.<anonymous> (/Users/myusername/node_modules/gulp-compass/lib/compass.js:136:7) 
at ChildProcess.EventEmitter.emit (events.js:98:17) 
at maybeClose (child_process.js:753:16) 
at Socket.<anonymous> (child_process.js:966:11) 
at Socket.EventEmitter.emit (events.js:95:17) 
at Pipe.close (net.js:465:12) 

Ich weiß, ich bin nicht config.rb verwenden, aber zwei Dinge: 1) Ich fand kein Beispiel für eine solche Dateien 2) schlucke-Kompass doc gibt Beispiel ohne eine solche eine Datei, so nehme ich an, es ist optional

Vielen Dank im Voraus.

+0

Was sind die Werte für 'buildType + config.path.sass' und' buildType + config.path.css'? Sind sie ein relativer Pfad von der Wurzel des Projekts, wo Sie "Schluck" laufen lassen? In Bezug auf die Konfiguration ist es nicht 'gulp-compass' config, sondern [' compass' selbst.] (Http://compass-style.org/help/tutorials/configuration-reference/). Eine weitere Sache, Compass fügt nur Bibliotheken zu SASS hinzu. Davon abgesehen, ist die Fähigkeit, '.sass' und' .scss' zu kompilieren, nicht von Compass, aber SASS selbst, also sollte 'schluck-sass' die Arbeit für dich sowieso erledigen. –

+0

Danke für die schnelle Antwort. 'BuildType + config.path.sass' ist ein gültiger String, der aus einer JSON-Konfigurationsdatei kommt, ich benutze ihn in anderen Aufgaben in der gleichen gulp-Datei und es funktioniert perfekt. Wenn ich 'gulp-sass' anstelle von'compass 'benutze, erscheint beim Lesen der Datei ein weiterer Fehler (' [gulp] [gulp-sass] source string: 4: error: Fehler beim Lesen der Werte nach $ grey' und anderen) so was). Ich nehme an, dass '.sass' Dateien nicht von gulp-sass, sondern nur von' .scss' unterstützt werden. – soenguy

+1

Schluck ist es egal, was die Dateierweiterung ist. Es verwendet den 'node-sass'-Parser, der das tut. Erwägen Sie, 'gulp-ruby-sass' zu verwenden, da es Unterstützung für .scss- und .sass-Erweiterungen haben sollte. Es kann dann die möglichen Fehler reduzieren, um Ihr Problem einzugrenzen. – SteveLacy

Antwort

5

Dank SteveLacy konnte ich das beheben.

Wenn Sie nur .sass-Dateien haben und keine .scss, müssen Sie statt Schluck-Kompass oder Schluck-Sass Schluck-Rubin-Sass verwenden. Hier ist ein Beispiel meines Arbeits Code:

var sass = require('gulp-ruby-sass'); 

gulp.task('compile-sass', function() { 
    gulp.src(path/to/your/sass/folder/main.sass") 
     .pipe(sass()) 
    .pipe(gulp.dest('path/to/your/css/folder)); 
}); 
2

Die einfachste und einfache Art und Weise ist:

var sass = require('gulp-ruby-sass'); 

gulp.task('styles', function() { 
    gulp.src('sass/*.scss') 
    .pipe(sass({ 
     noCache : true, 
     style : "compact" 
    })) 
    .pipe(gulp.dest('css')); 
}); 
+1

Meinst du nicht "sass/*. Sass''? –

0

Ich weiß, dass dies nicht der richtige Ort für diese Antwort ist, aber es gab nicht viel auf Google für Leute mit Schluck-Ruby-Hass-Fehlern.

Für jeden, der einen Fehler erhält "source stimmt mit keinen Dateien überein." Stellen Sie sicher, dass der/die Pfad (e), die Sie in gulp.src() platzieren, mindestens eine Datei sass (oder scss) enthält.

In meiner Situation hatte ich 3 Pfade für die Aufgabe und nur 1 der Pfade war komplett leer. Durch Hinzufügen einer leeren Datei (_fake.scss) zu diesem Pfad wurde der Fehler behoben.

Hoffe das hilft jemandem!

Verwandte Themen