LoginSignup
14
14

More than 5 years have passed since last update.

gulp-ruby-sass で source map が使えない場合

Last updated at Posted at 2014-05-08

compileするscssファイルにsourceMappingURLを記述すること!

sass({sourcemap: true})でsource mapを作成したら自動でcssの最後に/*# sourceMappingURL=main.css.map */が記述され勝手にひも付くっしょと思いがちですがそんなことは無いので、自力でscssに書いておきましょう。

sass()の使い方

js
gulp.task('sass', function() {
  return gulp.src('sass/main.scss')
    .pipe(plumber())
    .pipe(sass({sourcemap: true}))
    .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
    .pipe(gulp.dest('css'))
    .pipe(notify({ message: 'Styles task complete' }));
});

とするとcssフォルダに、main.cssとmain.css.mapが作られます。あとは、main.cssの最後の行に下記のように記述。

js
・・・・
/*# sourceMappingURL=main.css.map */
});

途中でrename()すると不具合起きるので注意

js
gulp.task('sass', function() {
  return gulp.src('sass/main.scss')
    .pipe(plumber())
    .pipe(sass({sourcemap: true}))
    .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
    .pipe(rename('main.css'))  // ← コイツ
    .pipe(gulp.dest('css'))
    .pipe(notify({ message: 'Styles task complete' }));
});

source mapがmain.cssとして作られ、main.css.mapは作られません。

style: 'compressed'は使えません

js
gulp.task('sass', function() {
    .pipe(sass({sourcemap: true, style: 'compressed'}))
});

compressedの場合はcssに記述した/*# sourceMappingURL=main.css.map */がコメントとして削除されてしまい、.cssと.mapがひも付きません。
nested, compact, expanded ならダイジョウブだけど、、、うーん圧縮したい。。。

14
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14