2017-01-02 12 views
0

次の状況があります。私は一般的に一つの中心にすべてのサブファイルを追加最適な詰め物サプルコンパイル

@import "fonts"; 
@import "custom_mixins"; 
@import "variables"; 
@import "base"; 

: 私はcore.scssファイルを持っています。コンパスと一息で 次の私は、このファイルをコンパイルします。

gulp.task('compass', function() { 
    return gulp.src('css/src/core.scss') 
     .pipe(compass({ 
      config_file: './config.rb', 
      css: 'css/dist', 
      sass: 'css/src' 
     })); 
}); 

をそれが正常に動作しますが、ここで私は問題を抱えています。 _variables.scssでたとえば1行を変更するたびに、すべてのファイルをcore.cssファイルに再コンパイルします。 1回線の変更には2秒近くかかります。私がキャッシュする方法はありますか?scchサブファイルは、毎回再コンパイルされません。 Gulpにオプションがあります。gulp-rememberプラグインを覚えておいてください。変更されていないcssファイルを連結する前に覚えておいてください。しかしここに私は1つのCSSファイルから作成された1つのCSSファイルを持っています...

+0

本当にコンパスが必要ですか? libsassを使うgulp-sassを使ってコンパスのコンパイルより速いのはなぜですか? –

+0

コンパスを使用するタスクがあります...しかし、sassにタスクを最適化するオプションがある場合はどうすればいいですか...教えてください... – ovod

答えて

0

コンパスの代わりにgulp-sassを使用することをお勧めします。コンパスはミックスインとファンクションの束に過ぎず、依存関係をコンパスする必要なしに自分のファイルに統合することができます。 Gulp-sassは、C++のSassポートlibsassを使用しているため、Rubyのsassコンパイルよりも高速です。

まず、node-sassをNPMまたはYarnでインストールし、Gulpfileで呼び出す必要があります。あなたはSASSのバージョンにコンパスのタスクを変更します

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

gulp.task('sass', function() { 
    return gulp.src('css/src/core.scss') 
    .pipe(sass({ 
     outputStyle: 'nested' 
    }).on('error', sass.logError)); 
    .pipe(gulp.dest('css/dist'); 
}); 

てみてください、あなたのコンパイルは、おそらく速くなります。 Sassオプションを変更したり、ソースマップやその他のオプションを追加することができます。

+0

@importディレクティブ経由でインポートされた変更されたサブファイルを無視する方法はありますか? – ovod

+0

gulp-cachedまたはgulp-rememberを使用して確実に機能しない場合、gulp-sass-inheritanceは、変更されたsassファイルのみを再構築する最適なオプションのようです。 –

関連する問題