我今天运行了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.scs
#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 上的相关问题