我的任务如下:
var gulp = require('gulp'),
sass = require('gulp-ruby-sass'),
autoprefixer = require('gulp-autoprefixer');
gulp.src('html/css/sass/*.scss')
.pipe(sass({
style: 'compressed',
loadPath: 'plugin/css/sass',
sourcemap: true,
sourcemapPath: '/css/sass',
container : 'local_sass'
}))
.pipe(autoprefixer())
.pipe(gulp.dest('html/css'));我遇到的问题是SASS编译器正确地生成源代码映射并添加源地图注释,但是自动重定位程序删除了注释(我也不认为它正在更新源地图)。
我试过移除自动修复器,它工作得很好,但是当我把它放回去时,他们的评论就被删除了。我也尝试过添加{ map: true },但是每个源地图都有一个名称to.css.map。我也尝试过添加from和to,但是我不知道如何告诉它当前的文件名,所以它总是写入同一个文件名。
我将如何获得自动修复程序合作和更新源地图?我还需要用别的插件吗?
套餐:
"gulp": "~3.8.6",
"gulp-autoprefixer": "~0.0.8",
"gulp-ruby-sass": "~0.7.0",发布于 2015-08-18 00:11:32
如果切换到吞咽源图,可以使用gulp-sass。gulp-sass和gulp-autoprefixer都支持gulp。
实现如下所示:
var gulp = require('gulp');
var gulpSass = require('gulp-sass');
var gulpAutoprefixer = require('gulp-autoprefixer');
var sourcemaps = require('gulp-sourcemaps');
gulp.task('javascript', function() {
gulp.src('src/**/*.scss')
.pipe(sourcemaps.init())
.pipe(gulpSass())
.pipe(gulpAutoprefixer())
.pipe(sourcemaps.write('../maps'))
.pipe(gulp.dest('dist'));
});它将在地图目录中写入.map文件。
Note:从源.scss到目标.css的所有操作都必须在sourcemaps.init()和sourcemaps.write()之间的流中。这包括任何小型化,比如gulp-uglify,这也包括支座 gulp-sourcemaps。
发布于 2014-08-12 09:45:48
我为启用源地图支持具有gulp的自动重定位器创建了一个小插件
var through = require('through2');
var prefix = require('autoprefixer');
var applySourceMap = require('vinyl-sourcemaps-apply');
module.exports = function(browsers, options) {
options = options || {};
return through.obj(function(file, enc, cb) {
if(file.isStream()) {
throw new Error('Streams not supported');
}
if(!file.isNull()) {
if(file.sourceMap) {
options.map = {
annotation: false
};
options.to = options.from = file.relative;
}
var contents = file.contents.toString();
var result = prefix(browsers).process(contents, options);
contents = result.css;
file.contents = new Buffer(contents);
if(file.sourceMap) {
applySourceMap(file, result.map.toString());
}
}
this.push(file);
cb();
});
};它正在使用吞咽源图,因此任何支持gulp-sourcemaps的gulp插件都可以在流管道中使用:
var sourcemaps = require('gulp-sourcemaps');
var concat = require('gulp-concat'); // Supports gulp-sourcemaps
var prefixer = require('./gulp-autoprefixer-map.js');
gulp.task('css', [], function() {
gulp.src('src/**/*.css')
.pipe(sourcemaps.init())
.pipe(concat('app.css'))
.pipe(prefixer())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('dest/'))
});不幸的是,目前还没有对SASS的支持,但也许有人可以使用上面的插件一起黑客并更新这个答案。
https://stackoverflow.com/questions/24967532
复制相似问题