【发布时间】:2014-11-06 06:02:03
【问题描述】:
我正在使用event-stream,以便在一项任务中编译 SASS 并将其与 CSS 合并。效果很好,我唯一的问题是 sourcemap 正在合并到 CSS 中。
gulp 代码
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"
}
我尝试过的事情
1) 试过: 将 rubySass 的 sourcemap 设置为 false 结果: 没有区别
.pipe(plugins.rubySass({
style: 'expanded', sourcemap: 'none', precision: 2
}));
-
试过:
gulp-concat-sourcemap,这会创建我的外部源映射文件,但我的style.min.css中仍然有它return 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) 试过: 使用gulp-filter 过滤掉地图文件不被拼接在css 结果:没有区别
return es.merge(cssFiles, sassFiles)
.pipe($.filter("!*.map))
"))
【问题讨论】:
标签: sass gulp source-maps event-stream gulp-sass