Sourcemap“sources”数组链接到“../../stdin”而不是实际的SCSS文件

时间:2015-11-29 19:50:55

标签: node.js sass gulp gulp-sass gulp-sourcemaps

我今天跑了npm update,接下来是灾难。我无法安装软件包,但是在所有内容出现在正确的位置后,我启动了gulp任务,将我的SCSS代码编译成CSS。

此代码重现了我的问题:

var gulp = require('gulp'),
    sourcemaps = require('gulp-sourcemaps'),
    sass = require('gulp-sass');

gulp.task('sass', function() {
    gulp.src('www/sass/*.scss')
        .pipe(sourcemaps.init())
            .pipe(sass())
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest('www/css'));
});

gulp.task('default', ['sass'], function(){
    gulp.watch('www/sass/*.scss', {debounceDelay: 2000}, ['sass']);
});

通过gulp default运行这段代码后,结果如下:

WWW / SASS / example.scss

#test {
    color: red;
}

WWW / CSS / example.css

#test {
  color: red; }

/*# sourceMappingURL=example.css.map */

WWW / CSS / example.css.map

{"version":3,"sources":["../../stdin"],"names":[],"mappings":"AAAA,KAAK,CAAC;EACL,KAAK,EAAE,GAAI,GACX","file":"example.css","sourceRoot":"/sass"}

生成的源地图中的sources数组包含"../../stdin/"而不是"example.scss"!但为什么呢?

1 个答案:

答案 0 :(得分:2)

这是node-sass的错误,自gulp-sass版本2.1.1起修复。请参阅相关问题on Github