Merge pull request #262 from unic/master

Fix issue with sourcemaps when using gulp-sourcemaps and autoprefixer
This commit is contained in:
Sam Richard 2015-05-09 11:02:48 -04:00
commit fd539150d7
3 changed files with 36 additions and 2 deletions

View file

@ -73,8 +73,8 @@ var gulpSass = function gulpSass(options, sync) {
sassFileSrc = file.path.split('/').pop();
// Replace the stdin with the original file name
sassMap.sources[sassMap.sources.indexOf(sassMapFile)] = sassFileSrc;
// Replace the map file with the original file name
sassMap.file = sassFileSrc;
// Replace the map file with the original file name (but new extension)
sassMap.file = gutil.replaceExtension(sassFileSrc, '.css');
// Apply the map
applySourceMap(file, sassMap);
}

View file

@ -28,7 +28,12 @@
"vinyl-sourcemaps-apply": "~0.1.1"
},
"devDependencies": {
"autoprefixer-core": "^5.1.11",
"eslint": "^0.17.1",
"gulp": "^3.8.11",
"gulp-postcss": "^5.1.6",
"gulp-sourcemaps": "^1.5.2",
"gulp-tap": "^0.1.3",
"mocha": "^2.2.1",
"should": "^5.2.0"
}

View file

@ -5,6 +5,11 @@ var gutil = require('gulp-util');
var path = require('path');
var fs = require('fs');
var sass = require('../index');
var gulp = require('gulp');
var sourcemaps = require('gulp-sourcemaps');
var postcss = require('gulp-postcss');
var autoprefixer = require('autoprefixer-core');
var tap = require('gulp-tap');
var createVinyl = function createVinyl(filename, contents) {
var base = path.join(__dirname, 'scss');
@ -380,4 +385,28 @@ describe('gulp-sass -- sync compile', function() {
});
stream.write(sassFile);
});
it('should work with gulp-sourcemaps and autoprefixer', function(done) {
var expectedSources = [
'includes/_cats.scss',
'includes/_dogs.sass',
'inheritance.scss'
];
gulp.src(path.join(__dirname, '/scss/inheritance.scss'))
.pipe(sourcemaps.init())
.pipe(sass.sync())
.pipe(tap(function(file) {
should.exist(file.sourceMap);
file.sourceMap.sources.should.eql(expectedSources);
}))
.pipe(postcss([autoprefixer()]))
.pipe(sourcemaps.write())
.pipe(gulp.dest(path.join(__dirname, '/results/')))
.pipe(tap(function(file) {
should.exist(file.sourceMap);
file.sourceMap.sources.should.eql(expectedSources);
}))
.on('end', done);
});
});