7

见下文。我当前代码遇到的问题是 Sourcemap 没有通过 Browsersync 注入。我在这里遗漏了什么还是做错了?

供参考: https ://www.browsersync.io/docs/gulp/#gulp-sass-maps

// requirements
var gulp         = require('gulp');
var sass         = require('gulp-ruby-sass');
var browserSync  = require('browser-sync').create();
var prefix       = require('gulp-autoprefixer');
var rename       = require('gulp-rename');
var sourcemaps   = require('gulp-sourcemaps');
var cssclean     = require('gulp-clean-css');

// create sass tasks
gulp.task('sass', function() {
  return sass('assets/scss/style.scss', {sourcemap: true, style: 'compact'})
    .on('error', function (err) {
        console.error('Error!', err.message);
    })
    .pipe(rename({suffix: '.min'}))
    .pipe(cssclean())
    .pipe(prefix("last 2 versions", "> 1%", "ie 8", "Android 2", "Firefox ESR"))
    .pipe(sourcemaps.write('.'))
    .pipe(gulp.dest('assets/styles'))
    .pipe(browserSync.stream({match: '**/*.css'}))
});

gulp.task('serve', ['sass'], function() {

  browserSync.init({
    proxy: "localhost/portfolio2014",
    open:false
  });

  gulp.watch("assets/scss/**/*.scss", ['sass']);
  gulp.watch(["assets/styles/*.css", "site/**/*", "content/**/*", "assets/javascript/*.js"]).on('change', browserSync.reload);
});

// default task (just run gulp)
gulp.task('default', ['serve'] );
4

1 回答 1

4

你必须使用gulp-ruby-sass吗?下面的 gulpfile.js 在使用 sourcemaps 保存 .scss 文件时添加 sourcemapsgulp-sass并更新浏览器。

        var gulp = require('gulp');
        var sass = require('gulp-sass');
        var browserSync = require('browser-sync').create();
        var prefix = require('gulp-autoprefixer');
        var rename = require('gulp-rename');
        var sourcemaps = require('gulp-sourcemaps');
        var cssclean = require('gulp-clean-css');

        // create sass tasks
        gulp.task('sass', function () {
            return gulp.src('assets/scss/test.scss')
                .pipe(sourcemaps.init())
                .pipe(sass())
                .pipe(rename({ suffix: '.min' }))
                .pipe(cssclean())
                .pipe(prefix("last 2 versions", "> 1%", "ie 8", "Android 2", "Firefox ESR"))
                .pipe(sourcemaps.write(''))
                .pipe(gulp.dest('assets/styles'))
                .pipe(browserSync.stream({ match: '**/*.css' }))
                .on('error', function (err) {
                    console.error('Error!', err.message);
                });
        });

        gulp.task('serve', ['sass'], function () {

            browserSync.init({
                proxy: "localhost/portfolio2014",
                open: false
            });

            gulp.watch("assets/scss/**/*.scss", ['sass']);
            gulp.watch(["assets/styles/*.css", "assets/javascript/*.js"]).on('change', browserSync.reload);
        });

        // default task (just run gulp)
        gulp.task('default', ['serve']);
于 2016-03-24T20:26:36.873 回答