merge
This commit is contained in:
commit
77159456fb
20
index.js
20
index.js
|
@ -42,18 +42,26 @@ module.exports = function (options) {
|
|||
opts.includePaths = [fileDir];
|
||||
}
|
||||
|
||||
// temporary hack to target a change (mistake?) in nodeSass.
|
||||
opts.includePath = opts.includePaths;
|
||||
|
||||
opts.success = function (css, map) {
|
||||
var sourceMap;
|
||||
if (typeof opts.onSuccess === 'function') opts.onSuccess(css, map);
|
||||
opts.success = function (css, sourceMap) {
|
||||
if (typeof opts.onSuccess === 'function') opts.onSuccess(css, sourceMap);
|
||||
|
||||
if (map) {
|
||||
if (sourceMap) {
|
||||
// hack to remove the already added sourceMappingURL from libsass
|
||||
css = css.replace(/\/\*#\s*sourceMappingURL\=.*\*\//, '');
|
||||
|
||||
applySourceMap(file, map);
|
||||
// libsass gives us sources' paths relative to file;
|
||||
// gulp-sourcemaps needs sources' paths relative to file.base;
|
||||
// so alter the sources' paths to please gulp-sourcemaps.
|
||||
sourceMap = JSON.parse(sourceMap);
|
||||
sourceMap.sources = sourceMap.sources.map(function(source) {
|
||||
var abs = path.resolve(path.dirname(file.path), source);
|
||||
return path.relative(file.base, abs);
|
||||
});
|
||||
sourceMap = JSON.stringify(sourceMap);
|
||||
|
||||
applySourceMap(file, sourceMap);
|
||||
}
|
||||
handleOutput(css, file, cb);
|
||||
};
|
||||
|
|
|
@ -1,2 +1,6 @@
|
|||
$blue: #3bbfce;
|
||||
$margin: 16px;
|
||||
$margin: 16px;
|
||||
|
||||
body {
|
||||
background: pink;
|
||||
}
|
||||
|
|
1
test/scss/subdir/multilevelimport.scss
vendored
Normal file
1
test/scss/subdir/multilevelimport.scss
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
@import "../inheritance";
|
33
test/test.js
33
test/test.js
|
@ -140,3 +140,36 @@ test('call custom error callback when opts.onError is given', function (t) {
|
|||
|
||||
stream.write(errorFile);
|
||||
});
|
||||
|
||||
test('sourcemaps', function (t) {
|
||||
var sassFile = createVinyl('subdir/multilevelimport.scss');
|
||||
|
||||
// Pretend sourcemap.init() happened by mimicking
|
||||
// the object it would create.
|
||||
sassFile.sourceMap = {
|
||||
version: 3,
|
||||
file: 'scss/subdir/multilevelimport.scss',
|
||||
names: [],
|
||||
mappings: '',
|
||||
sources: [ 'scss/subdir/multilevelimport.scss' ],
|
||||
sourcesContent: [ '@import "../inheritance";\n' ]
|
||||
};
|
||||
|
||||
// Expected sources are relative to file.base
|
||||
var expectedSources = [
|
||||
'includes/_cats.scss',
|
||||
'inheritance.scss'
|
||||
];
|
||||
|
||||
var stream = gsass();
|
||||
|
||||
stream.on('data', function (cssFile) {
|
||||
t.deepEqual(
|
||||
cssFile.sourceMap.sources,
|
||||
expectedSources,
|
||||
'sourcemap paths are relative to file.base'
|
||||
);
|
||||
t.end();
|
||||
});
|
||||
stream.write(sassFile);
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue