我正在使用 event-stream
以便我可以编译SASS并在一个任务中将其与CSS合并 . 它工作得很好我唯一的问题是 sourcemap
正在CSS中合并 .
gulp code
gulp.task('css', function(){
var sassGlob = "assets/css/**/*.scss";
var cssGlob = "assets/css/**/*.css";;
var dest = "./dist/css/min/'";
// compile sass
var sassFiles = gulp.src(sassGlob)
.pipe(plugins.rubySass({
style: 'expanded', precision: 2
}));
// concatenate css + compiled sass
return es.concat(gulp.src(cssGlob), sassFiles)
.pipe(plugins.concat('style.min.css'))
.pipe(gulp.dest(paths.styles.dest));
});
来源: main.SCSS
header {
padding: 2px;
}
来源: main2.css
body {
padding: 2px;
}
输出: style.min.css
body {
padding: 2px;
}
header {
padding: 2px;
}
/*# sourceMappingURL=main.css.map */
{
"version": 3,
"mappings": "AAAA,IAAK;EACD,OAAO,EAAE,GAAG",
"sources": ["../main.scss"],
"names": [],
"file": "main.css"
}
Things I've tried
1) tried: 将rubySass的sourcemap设置为false result: 没有区别
.pipe(plugins.rubySass({
style: 'expanded', sourcemap: 'none', precision: 2
}));
- tried:
gulp-concat-sourcemap
,这会创建我的外部源图文件,但我仍然在我的style.min.css
中
返回es.concatSourceMap(gulp.src(cssGlob),sassFiles).pipe(plugins.concat('style.min.css')) . pipe(gulp.dest(paths.styles.dest));
当我检查生成的源映射的输出时,我注意到了这一点
{
"version": 3,
"file": "style.min.css",
"sources": [
"assets/css/other.css",
"main2.css",
"main2.css.map"
],
"names": [],
"mappings": "AAAA;AACA;AACA;;ACFA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA"
}
基于此,它似乎将.map文件连接到CSS,这是我们看到的行为 . 所以我试着把它过滤掉 .
3) tried: 使用 gulp-filter
来过滤出 Map 文件,使其不被css连接起来 result: 没有区别
return es.merge(cssFiles, sassFiles)
.pipe($.filter("!*.map))
“))
1 回答
我've encountered the same issue not long ago. It'与使用 dargs 将参数传递给sass gem有关,你可以找到更多关于它的信息here .
自#114以来,这应该可行 .
@milesj给出了一个小的hacky解决方案,并解决了现在的问题: