6

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

4

1 回答 1

2

这是一个从versionnode-sass开始修复的错误。查看Github 上的相关问题gulp-sass2.1.1

于 2015-12-12T10:28:09.840 回答