From 49956b69d5a65fe552101dbf65117ca14c05cb87 Mon Sep 17 00:00:00 2001 From: Jakub Pawlowicz Date: Mon, 1 Dec 2014 21:26:20 +0000 Subject: [PATCH] Fixes generating relative paths to mapped source files. --- lib/selectors/source-map-stringifier.js | 5 ++++- test/source-map-test.js | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/selectors/source-map-stringifier.js b/lib/selectors/source-map-stringifier.js index 1e54d1e0..7d33c2f8 100644 --- a/lib/selectors/source-map-stringifier.js +++ b/lib/selectors/source-map-stringifier.js @@ -1,4 +1,5 @@ var path = require('path'); +var fs = require('fs'); var url = require('url'); var SourceMapGenerator = require('source-map').SourceMapGenerator; @@ -18,7 +19,9 @@ function Rebuilder(options, restoreCallback, inputMapTracker) { this.rebaseTo = path.resolve(options.root); this.resolvePath = this.rootPathResolver; } else if (options.target) { - this.rebaseTo = path.dirname(path.resolve(process.cwd(), options.target)); + this.rebaseTo = path.resolve(process.cwd(), options.target); + if (!fs.existsSync(this.rebaseTo)) // options.target is a file yet to be created + this.rebaseTo = path.dirname(this.rebaseTo); this.resolvePath = this.relativePathResolver; } } diff --git a/test/source-map-test.js b/test/source-map-test.js index 4cb70057..4ac736d8 100644 --- a/test/source-map-test.js +++ b/test/source-map-test.js @@ -409,19 +409,19 @@ vows.describe('source-map') } }, 'complex but partial input map referenced by path': { - 'topic': new CleanCSS({ sourceMap: true }).minify('@import url(test/data/source-maps/no-map-import.css);'), + 'topic': new CleanCSS({ sourceMap: true, target: process.cwd() }).minify('@import url(test/data/source-maps/no-map-import.css);'), 'should have 4 mappings': function (minified) { assert.equal(4, minified.sourceMap._mappings.length); }, 'should have 2 mappings to .less file': function (minified) { var fromLess = minified.sourceMap._mappings.filter(function (mapping) { - return mapping.source == 'styles.less'; + return mapping.source == path.join('test', 'data', 'source-maps', 'styles.less'); }); assert.equal(2, fromLess.length); }, 'should have 2 mappings to .css file': function (minified) { var fromCSS = minified.sourceMap._mappings.filter(function (mapping) { - return mapping.source.indexOf('no-map.css') > 0; + return mapping.source == path.join('test', 'data', 'source-maps', 'no-map.css'); }); assert.equal(2, fromCSS.length); } -- 2.34.1