Skip to content

Instantly share code, notes, and snippets.

@iam-msm
Forked from McNull/gulp-autoprefixer-map.js
Created August 29, 2014 13:12
Show Gist options
  • Save iam-msm/edffbe086319c38e25aa to your computer and use it in GitHub Desktop.
Save iam-msm/edffbe086319c38e25aa to your computer and use it in GitHub Desktop.
#!/usr/bin/env node
/*
Hack to enable source maps in with gulp-sourcemaps and autoprefixer.
Created by null on 12/08/14.
npm --save-dev install through2
npm --save-dev install autoprefixer
npm --save-dev install vinyl-sourcemaps-apply
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/'))
});
*/
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();
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment