2016-09-05 7 views
0

sassをクリーンなCSS(プレフィックス付き、非CSSedおよび縮小済み)にコンパイルするためのグループをチェーンする最も良い方法は何ですか。適切なソースマップを取得する(gulp sass + cleanCss + prefixer + uncss)

次の例では、ソースマップを作成しますが、ブラウザインスペクタで表示すると、ソースファイルの間違った行番号を指しています。この問題を解決しようとする試みで

var plugins = require('gulp-load-plugins')(), 
    bourbon = require('node-bourbon').includePaths, 
    neat = require('node-neat').includePaths; 
gulp.task('default', function() { 
    return gulp.src('src/scss/**/*.scss') 
    .pipe(plugins.sourcemaps.init()) 
    .pipe(plugins.sass({includePaths: bourbon, includePaths: neat})) 
    .on('error',plugins.util.log.bind(plugins.util, 'Sass Error')) 
    .pipe(plugins.concat('styles.css')) 
    .pipe(plugins.uncss({html: ['dist/**/*.html']})) 
    .pipe(plugins.autoprefixer()) 
    .pipe(plugins.cleanCss()) 
    .pipe(plugins.sourcemaps.write('.')) 
    .pipe(gulp.dest('dist/css/')); 
}); 

私はautoprefixercleanCss前に出力sourcemapsにしようとしたが、それは「ニート」と「Burbon」のパスに関連するエラーが発生:Error: Broken @import declaration of "../neat" Broken @import declaration of "../colors" Broken @import declaration of "../variables" Broken @import declaration of "../grid" Broken @import declaration of "../tables"

+0

。これは、ブラウザのインス​​ペクタを使用しているときの行番号を意味しますか? – henry

+0

はい@henry、ブラウザのインス​​ペクタで行番号を参照しています。それを反映するように質問を更新します。ありがとうございました – ramin

答えて

0

私は、このタスクで動作あなたのcleanCSSの代わりにCSSOを使用していますが、あなたが望むものを使用してください、トリッキーな部分はソースマップです。

  1. は、圧縮ファイル
  2. 貼り付けSourceMaps SCSSを指して生成されたCSSファイルで右接頭語のサポートを追加します。CSSにソースパス
  3. 初期SourceMaps
  4. コンパイルSCSSを宣言しますCSSファイル(コメントを保存するようパッケージに指示しない限り、おそらくソースマップを削除する)
  5. destパスを宣言する

Gulpfile:あなたは "行" は間違っていると言うSASSタスク

const gulp   = require('gulp'), 

     autoprefixer = require('gulp-autoprefixer'), 
     csso   = require('gulp-csso'), 
     sass   = require('gulp-sass'), 
     sourcemaps  = require('gulp-sourcemaps'); 


gulp.task('sass', ['sass'],() => { 

    return gulp 
    .src('src/scss/**/*.scss') 
    .pipe(sourcemaps.init()) 
    .pipe(sass().on('error', sass.logError)) 
    .pipe(autoprefixer({ browser: ['last 2 version', '> 5%'] })) 
    .pipe(sourcemaps.write()) 
    .pipe(csso()) 
    .pipe(gulp.dest('dist/css')); 
}); 
+0

答えをありがとう。あなたの答えは一般的に正しいが、これは私の場合はうまくいかない。 css0(またはcleanCss)の前にステップを移動すると、「エラー:Broken @import宣言が「../neat」になります。Broken @import宣言が「../colors」になります。壊れた@import宣言「../variables」Broken @ "../grid"のインポート宣言 "../ tables"の壊れた@import宣言 – ramin

+0

gulpfileコードをgit gistに提供できますか?自分でテストする –

+0

確かに、gistへのリンクです:[gulpfile.js](https://gist.github.com/raminv80/9c75e148c2d94653f3258ae56752aa20) 完全なプロジェクトに参加している人は、ここで見つけることができます[https://github.com/raminv80/chug/tree/bower](https://github.com/raminv80/chug/tree/bower) – ramin

関連する問題