2015-08-14 5 views
5

Wenn ich den folgenden Code in meiner .scss Datei verwendenschluck-Sass stellt Google Fonts CSS in die Datei, bricht protokoll relativen Link

@import url('//fonts.googleapis.com/css?family=SomeFont:400,700,400italic'); 

die SASS-Parser I (NodeJS gulp-sass) verwenden gerne die Downloads Datei von diesem Ort und enthält sie als Klartext in der kompilierten Ausgabe.

Hier ist meine Gulpfile:

var gulp = require('gulp'), 
    sourcemaps = require('gulp-sourcemaps'), 
    autoprefixer = require('gulp-autoprefixer'), 
    minify = require('gulp-minify-css'), 
    rename = require('gulp-rename'), 
    sass = require('gulp-sass'), 
    uglify = require('gulp-uglify'), 
    plumber = require('gulp-plumber'); 

gulp.task('sass', function() { 
    gulp.src('www/sass/*.scss') 
     .pipe(plumber(function(err){ 
      console.log(err); 
      this.emit('end'); 
     })) 
     .pipe(sourcemaps.init()) 
      .pipe(sass({ 
       outputStyle: 'expanded', 
       errLogToConsole: true, 
      })) 
      .pipe(autoprefixer('last 2 version')) 
      .pipe(rename({suffix: '.min' })) 
      .pipe(minify()) 
     .pipe(sourcemaps.write('.')) 
     .pipe(gulp.dest('www/css')); 
}); 

Problem ist, meine Seite HTTPS verwendet, und wenn die Datei vom Compiler angefordert wird, holt er die Datei HTTP und als solche die URLs in der zurückgegebenen Antwort unter Verwendung auch sind HTTP was zu einer Menge von Warnungen führt, die die Konsole füllen, während die Schriften nicht geladen werden.

Gibt es eine Möglichkeit, dem Compiler zu sagen, diese Zeile in Ruhe zu lassen?

+0

Kann nicht reproduzieren, Ihr Problem ist nicht mit Sass: http://sassmeister.com/gist/7651112d36e67a3cee8d – cimmanon

Antwort

13

Das Problem war nicht mit gulp-sass selbst, aber mit gulp-minify-css, die die Komprimierung der gerenderten CSS-Dateien. Die Lösung ist {processImport: false}-minify passieren:

gulp.task('sass', function() { 
    gulp.src('www/sass/*.scss') 
     .pipe(plumber(function(err){ 
      console.log(err); 
      this.emit('end'); 
     })) 
     .pipe(sourcemaps.init()) 
      .pipe(sass({ 
       outputStyle: 'expanded', 
       errLogToConsole: true, 
      })) 
      .pipe(autoprefixer('last 2 version')) 
      .pipe(rename({suffix: '.min' })) 

      // Here 
      .pipe(minify({processImport: false})) 

     .pipe(sourcemaps.write('.')) 
     .pipe(gulp.dest('www/css')); 
}); 
+1

Ich habe viele andere Alternativen zu dieser Lösung versucht, weil ich wollte, dass die Schriftart CSS in meiner minimierten CSS-Datei inline sein. Ich hatte auch eine andere Website, die den Import ohne Zeitüberschreitung zu akzeptieren schien. Dies war jedoch die einzige Lösung, die für meinen einen Fall funktionierte. So seltsam, aber trotzdem war es. Ich würde gerne wissen, warum einige Google-Font-Importe nicht Timeout und andere tun. – KoldBane