所以我有以下任务:
gulp.task('sass', function () {
gulp.src(['./angular/app/**/*.s+(a|c)ss'])
.pipe($.concat('app.css'))
.pipe($.sourcemaps.init())
.pipe($.sass({ includePaths: ['./angular/app/global'] }).on('error', $.sass.logError))
.pipe($.if(gulpUtil.env.env === 'prod', $.uglify().on('error', onError)))
.pipe($.sourcemaps.write('./'))
.pipe(gulp.dest('public/css'))
.pipe($.notify({
title: 'Gulp',
subtitle: 'success',
message: 'sass compiled',
sound: "Pop"
}))
.pipe($.livereload());
});
这就像它应该的那样工作,它会在 CSS 文件旁边生成映射文件。在 css 文件中,底线如下:
/*# sourceMappingURL=app.css.map */
但是 chrome 和 Firefox 都会在该地图文件中加载。我做错了什么吗?还是有什么不工作的地方?
尽管具有类似任务的JS文件确实在我的devTools的souces选项卡中拆分了js
发现问题,是与连接冲突。
所以通过以下方式修复它:
var prefix = function () {
var prefix = new Buffer("n/* Added dynamically */n", 'utf-8');
return through.obj(function(file, enc, cb) {
file.contents = Buffer.concat([prefix, file.contents]);
this.push(file);
cb();
});
};
gulp.task('sass', function () {
gulp.src(['./angular/app/**/*.s+(a|c)ss'])
.pipe(prefix())
.pipe($.sourcemaps.init())
.pipe($.sass({ includePaths: ['./angular/app/global']}).on('error', $.sass.logError))
.pipe($.if(gulpUtil.env.env === 'prod', $.uglify().on('error', onError)))
.pipe($.concat('app.css'))
.pipe($.sourcemaps.write())
.pipe(gulp.dest('public/css'))
.pipe($.notify({
title: 'Gulp',
subtitle: 'success',
message: 'sass compiled',
sound: "Pop"
}))
.pipe($.livereload());
});
我现在遇到的唯一问题是源映射不能位于不同的文件中。