From 437effae056eeac98e99945cd5af46b8771a3c2b Mon Sep 17 00:00:00 2001 From: Jakub Pawlowicz Date: Tue, 14 Mar 2017 16:03:33 +0100 Subject: [PATCH] Fixes #903 - web UI and source maps. Fixes processing source maps in web UI, while disabling applying source maps and loading remote sources whenever source maps are disabled. Ideally we should build source maps in web UI but only if an inlined source map is provided - see #915. --- History.md | 1 + docs/js/settings.js | 3 ++- lib/reader/apply-source-maps.js | 2 +- lib/reader/load-original-sources.js | 4 +++- lib/reader/read-sources.js | 4 +--- test/source-map-test.js | 16 ++++++++++++++++ 6 files changed, 24 insertions(+), 6 deletions(-) diff --git a/History.md b/History.md index 583fbb4e..80ec3516 100644 --- a/History.md +++ b/History.md @@ -9,6 +9,7 @@ ================== * Fixed issue [#902](https://github.com/jakubpawlowicz/clean-css/issues/902) - case insensitive attribute matchers. +* Fixed issue [#903](https://github.com/jakubpawlowicz/clean-css/issues/903) - web UI and source maps. * Fixed issue [#907](https://github.com/jakubpawlowicz/clean-css/issues/907) - space after closing brace in `@supports`. * Fixed issue [#910](https://github.com/jakubpawlowicz/clean-css/issues/910) - too aggressive precision optimizations. diff --git a/docs/js/settings.js b/docs/js/settings.js index 57d63d2e..ac9e1194 100644 --- a/docs/js/settings.js +++ b/docs/js/settings.js @@ -51,7 +51,8 @@ 2: levelEnabled(settingsForm, 2) ? mapOptionsIn(level2OptionsContainer) : false - } + }, + sourceMap: false } } } diff --git a/lib/reader/apply-source-maps.js b/lib/reader/apply-source-maps.js index 259e9ced..d2f87250 100644 --- a/lib/reader/apply-source-maps.js +++ b/lib/reader/apply-source-maps.js @@ -29,7 +29,7 @@ function applySourceMaps(tokens, context, callback) { warnings: context.warnings }; - return tokens.length > 0 ? + return context.options.sourceMap && tokens.length > 0 ? doApplySourceMaps(applyContext) : callback(tokens); } diff --git a/lib/reader/load-original-sources.js b/lib/reader/load-original-sources.js index 673cf5bf..dbe2cad0 100644 --- a/lib/reader/load-original-sources.js +++ b/lib/reader/load-original-sources.js @@ -21,7 +21,9 @@ function loadOriginalSources(context, callback) { warnings: context.warnings }; - return doLoadOriginalSources(loadContext); + return context.options.sourceMap && context.options.sourceMapInlineSources ? + doLoadOriginalSources(loadContext) : + callback(); } function uriToSourceMapping(allSourceMapConsumers) { diff --git a/lib/reader/read-sources.js b/lib/reader/read-sources.js index 48c5b4ea..e12e2351 100644 --- a/lib/reader/read-sources.js +++ b/lib/reader/read-sources.js @@ -24,9 +24,7 @@ var UNKNOWN_URI = 'uri:unknown'; function readSources(input, context, callback) { return doReadSources(input, context, function (tokens) { return applySourceMaps(tokens, context, function () { - return context.options.sourceMapInlineSources ? - loadOriginalSources(context, function () { return callback(tokens); }) : - callback(tokens); + return loadOriginalSources(context, function () { return callback(tokens); }); }); }); } diff --git a/test/source-map-test.js b/test/source-map-test.js index 0e15578b..2910f808 100644 --- a/test/source-map-test.js +++ b/test/source-map-test.js @@ -1108,6 +1108,22 @@ vows.describe('source-map') nock.cleanAll(); } }, + 'missing source map from external host when source maps are disabled': { + topic: function () { + this.reqMocks = nock('http://127.0.0.1') + .get('/remote.css') + .reply(200, 'div>a{color:blue}/*# sourceMappingURL=missing.css.map */'); + + new CleanCSS({ inline: 'all', sourceMap: false }).minify('@import url(http://127.0.0.1/remote.css);', this.callback); + }, + 'has no warnings': function (errors, minified) { + assert.lengthOf(minified.warnings, 0); + }, + teardown: function () { + assert.isTrue(this.reqMocks.isDone()); + nock.cleanAll(); + } + }, 'available via POST only': { topic: function () { this.reqMocks = nock('http://127.0.0.1') -- 2.34.1