Gulp生成的源地图在Chrome中不起作用

dra*_*035 10 google-chrome sass source-maps gulp

除了source maps在Chrome中启用之外,在我的gulpfile.js中,我根据这个答案进行errLogToConsole: true, sourceComments: 'map', sourceMap: 'sass'调用时使用它作为参数:sass

gulp.task('sass', function() {
  return gulp.src('../assets/styles/**/*.scss')
  .pipe(plumber({ errorHandler: onError }))
  .pipe(sass({errLogToConsole: true, sourceComments: 'map', sourceMap: 'sass'}))
  .pipe(autoprefixer())
  .pipe(gulp.dest('../dist/styles'))
  .pipe(browserSync.reload({
    stream: true
  }))
});
Run Code Online (Sandbox Code Playgroud)

然而SCSS内容仍然没有出现在DevTools中.为什么?

注意:源映射注释确实显示在已编译的CSS中,如下面的屏幕截图所示

在此输入图像描述

Bal*_*zar 3

我不太确定gulp-sass您使用的哪个版本允许您传递这些 sourceMaps 选项,但是使用最新版本,它们利用gulp-sourcemaps代替,允许您执行如下操作:

const sourcemaps = require('gulp-sourcemaps')

gulp.task('sass', function () {
  return gulp.src('../assets/styles/**/*.scss')
    .pipe(plumber({ errorHandler: onError }))
    .pipe(sourcemaps.init())
    .pipe(sass().on('error', sass.logError))
    .pipe(sourcemaps.write())
    .pipe(autoprefixer())
    .pipe(gulp.dest('../dist/styles'))
    .pipe(browserSync.reload({
      stream: true
    }))
})
Run Code Online (Sandbox Code Playgroud)

默认情况下,它会将源映射内联到输出文件,但您可以在函数中指定一个文件sourcemaps.write来更改此行为。