From 93a4a809ff46994a5352e49eafc4ebd8763bdfc7 Mon Sep 17 00:00:00 2001 From: SmileSmith Date: Sun, 3 Dec 2017 15:59:44 +0800 Subject: [PATCH 1/3] support ie filter of AlphaImageLoader --- lib/processCss.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/processCss.js b/lib/processCss.js index 8979f7ad..d353d5be 100644 --- a/lib/processCss.js +++ b/lib/processCss.js @@ -97,6 +97,20 @@ var parserPlugin = postcss.plugin("css-loader-parser", function(options) { item.nodes.forEach(processNode); break; case "item": + if (item.name.indexOf('progid:DXImageTransform.Microsoft.AlphaImageLoader') >= 0){ + delete item.innerSpacingBefore; + delete item.innerSpacingAfter; + var matchSrc = item.name.match(/src=[\'\"]([^\'\"]+)[\'\"]/); + if (!matchSrc) break; + var srcUrl = matchSrc[1]; + if (options.url && !/^#/.test(srcUrl) && (isAlias(srcUrl) || loaderUtils.isUrlRequest(srcUrl, options.root))) { + item.name = item.name.replace(srcUrl, "___CSS_LOADER_URL___" + urlItems.length + "___"); + urlItems.push({ + url: srcUrl + }); + } + break; + } var importIndex = imports["$" + item.name]; if (typeof importIndex === "number") { item.name = "___CSS_LOADER_IMPORT___" + importIndex + "___"; From 9478f5ed5497a4d9307ec1813815b5b6966ae0da Mon Sep 17 00:00:00 2001 From: SmileSmith Date: Sun, 3 Dec 2017 16:21:24 +0800 Subject: [PATCH 2/3] no necessary \ character --- lib/processCss.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/processCss.js b/lib/processCss.js index d353d5be..757425f3 100644 --- a/lib/processCss.js +++ b/lib/processCss.js @@ -100,7 +100,7 @@ var parserPlugin = postcss.plugin("css-loader-parser", function(options) { if (item.name.indexOf('progid:DXImageTransform.Microsoft.AlphaImageLoader') >= 0){ delete item.innerSpacingBefore; delete item.innerSpacingAfter; - var matchSrc = item.name.match(/src=[\'\"]([^\'\"]+)[\'\"]/); + var matchSrc = item.name.match(/src=['"]([^'"]+)['"]/); if (!matchSrc) break; var srcUrl = matchSrc[1]; if (options.url && !/^#/.test(srcUrl) && (isAlias(srcUrl) || loaderUtils.isUrlRequest(srcUrl, options.root))) { From 8644dc23fbaf5932224feec634c3542128ff2491 Mon Sep 17 00:00:00 2001 From: SmileSmith Date: Sun, 3 Dec 2017 17:00:47 +0800 Subject: [PATCH 3/3] add unit test --- test/urlTest.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/urlTest.js b/test/urlTest.js index bfe5c4ee..d202beca 100644 --- a/test/urlTest.js +++ b/test/urlTest.js @@ -189,4 +189,12 @@ describe("url", function() { test("external schema-less url", ".class { background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz }", [ [1, ".class { background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz }", ""] ], "?-url"); + test("filter ie AlphaImageLoader ", + ".highlight { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"http://example.com/image.jpg\", sizingMethod='scale'); }", [ + [1, ".highlight { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"http://example.com/image.jpg\", sizingMethod='scale'); }", ""] + ], "?-url"); + test("filter ie AlphaImageLoader relativePath", + ".highlight { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"./image.png\", sizingMethod='scale'); }", [ + [1, ".highlight { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"./image.png\", sizingMethod='scale'); }", ""] + ], "?-url"); });