使用Gulp的源地图中的来源是错误的

时间:2018-02-16 16:12:52

标签: sass gulp source-maps gulp-sourcemaps

我正在尝试使用Gulp和gulp-sourcemaps创建有效的源地图。源映射实际上是创建的,但在内部,“sources”参数未加载我的SASS文件的相应路径。这就是我得到的:

"version":3,"file":"style.css","sources":["style.css"]

当我需要加载这样的内容时(由考拉应用创建):

"version":3,"file":"style.css","sources": ["../sass/style.scss","../sass/typography/_fonts.scss","../sass/helpers/_variables.scss"........

这是我的 Gulp任务

 gulp.task('sass', function () {
  return gulp.src('style/sass/**/*.scss')
  .pipe(sass(
    {
      'outputStyle': 'expanded'
    }
  ))
  .pipe(sourcemaps.init())
  .pipe(sass().on('error', sass.logError))
  .pipe(sourcemaps.write('.')
  .pipe(gulp.dest('./style/css'))
  .pipe(bs.reload({stream: true}));
});

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

sourcemaps.init()必须在之前 sass管道,所以:

gulp.task('sass', function () {
  return gulp.src('style/sass/**/*.scss')
   .pipe(sourcemaps.init())
   .pipe(sass( {
      'outputStyle': 'expanded'
     }).on('error', sass.logError))
   .pipe(sourcemaps.write())
   .pipe(gulp.dest('./style/css'))
   .pipe(bs.reload({stream: true}));
});

请参阅gulp-sass with sourcemaps

由于某种原因你有两个 sass调用,摆脱第一个并将其选项放入第二个sass管道调用。