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

我今天跑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" ! 但为什么?

这是一个node-sass的错误,这个错误已经被解决了,就像gulp-sass 2.1.1版一样。 请参阅Github上的相关问题