Repository: webpack-contrib/css-loader
Pull request #1014 (2019-12-10 15:27:55)

fix: reduce count of `require`
<!--
  HOLY CRAP a Pull Request. We ❤️ those!

  If you remove or skip this template, you'll make the 🐼 sad and the mighty god
  of Github will appear and pile-drive the close button from a great height
  while making animal noises.

  Please place an x (no spaces!) in all [ ] that apply
-->

This PR contains a:

- [x] **bugfix**
- [ ] new **feature**
- [ ] **code refactor**
- [x] **test update** <!-- if bug or feature is checked, this should be too -->
- [ ] **typo fix**
- [ ] **metadata update**

### Motivation / Use-Case

reduce count of require

### Breaking Changes

No

### Additional Info

No

codecov[bot]: # [Codecov](https://codecov.io/gh/webpack-contrib/css-loader/pull/1014?src=pr&el=h1) Report
> Merging [#1014](https://codecov.io/gh/webpack-contrib/css-loader/pull/1014?src=pr&el=desc) into [master](https://codecov.io/gh/webpack-contrib/css-loader/commit/60c65e003f3a9a2240439d9243d015f9e19dfc7b?src=pr&el=desc) will **increase** coverage by `0.01%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/webpack-contrib/css-loader/pull/1014/graphs/tree.svg?width=650&token=DlN3OQ0JnO&height=150&src=pr)](https://codecov.io/gh/webpack-contrib/css-loader/pull/1014?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master    #1014      +/-   ##
==========================================
+ Coverage   99.55%   99.56%   +0.01%     
==========================================
  Files          10       10              
  Lines         445      457      +12     
  Branches      128      130       +2     
==========================================
+ Hits          443      455      +12     
  Misses          2        2
```


| [Impacted Files](https://codecov.io/gh/webpack-contrib/css-loader/pull/1014?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/utils.js](https://codecov.io/gh/webpack-contrib/css-loader/pull/1014/diff?src=pr&el=tree#diff-c3JjL3V0aWxzLmpz) | `99.37% <100%> (ø)` | :arrow_up: |
| [src/plugins/postcss-import-parser.js](https://codecov.io/gh/webpack-contrib/css-loader/pull/1014/diff?src=pr&el=tree#diff-c3JjL3BsdWdpbnMvcG9zdGNzcy1pbXBvcnQtcGFyc2VyLmpz) | `100% <100%> (ø)` | :arrow_up: |
| [src/plugins/postcss-icss-parser.js](https://codecov.io/gh/webpack-contrib/css-loader/pull/1014/diff?src=pr&el=tree#diff-c3JjL3BsdWdpbnMvcG9zdGNzcy1pY3NzLXBhcnNlci5qcw==) | `100% <100%> (ø)` | :arrow_up: |
| [src/plugins/postcss-url-parser.js](https://codecov.io/gh/webpack-contrib/css-loader/pull/1014/diff?src=pr&el=tree#diff-c3JjL3BsdWdpbnMvcG9zdGNzcy11cmwtcGFyc2VyLmpz) | `100% <100%> (ø)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/webpack-contrib/css-loader/pull/1014?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/webpack-contrib/css-loader/pull/1014?src=pr&el=footer). Last update [60c65e0...b91c4ae](https://codecov.io/gh/webpack-contrib/css-loader/pull/1014?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


Patch:
diff --git a/src/plugins/postcss-icss-parser.js b/src/plugins/postcss-icss-parser.js
index cc349ff..f08e9e1 100644
--- a/src/plugins/postcss-icss-parser.js
+++ b/src/plugins/postcss-icss-parser.js
@@ -1,5 +1,6 @@
 import postcss from 'postcss';
 import { extractICSS, replaceValueSymbols, replaceSymbols } from 'icss-utils';
+import { urlToRequest } from 'loader-utils';
 
 const pluginName = 'postcss-icss-parser';
 
@@ -10,13 +11,34 @@ export default postcss.plugin(
       const importReplacements = Object.create(null);
       const { icssImports, icssExports } = extractICSS(css);
 
-      Object.keys(icssImports).forEach((url, importIndex) => {
-        const tokens = Object.keys(icssImports[url]);
+      const normalizedIcssImports = Object.keys(icssImports).reduce(
+        (accumulator, url) => {
+          const tokensMap = icssImports[url];
+          const tokens = Object.keys(tokensMap);
 
-        if (tokens.length === 0) {
-          return;
-        }
+          if (tokens.length === 0) {
+            return accumulator;
+          }
 
+          const normalizedUrl = urlToRequest(url);
+
+          if (!accumulator[normalizedUrl]) {
+            // eslint-disable-next-line no-param-reassign
+            accumulator[normalizedUrl] = tokensMap;
+          } else {
+            // eslint-disable-next-line no-param-reassign
+            accumulator[normalizedUrl] = {
+              ...accumulator[normalizedUrl],
+              ...tokensMap,
+            };
+          }
+
+          return accumulator;
+        },
+        {}
+      );
+
+      Object.keys(normalizedIcssImports).forEach((url, importIndex) => {
         const importName = `___CSS_LOADER_ICSS_IMPORT_${importIndex}___`;
 
         result.messages.push({
@@ -25,9 +47,12 @@ export default postcss.plugin(
           value: { type: 'icss-import', name: importName, url },
         });
 
+        const tokenMap = normalizedIcssImports[url];
+        const tokens = Object.keys(tokenMap);
+
         tokens.forEach((token, replacementIndex) => {
           const name = `___CSS_LOADER_ICSS_IMPORT_${importIndex}_REPLACEMENT_${replacementIndex}___`;
-          const localName = icssImports[url][token];
+          const localName = tokenMap[token];
 
           importReplacements[token] = name;
 
diff --git a/src/plugins/postcss-import-parser.js b/src/plugins/postcss-import-parser.js
index daeae3f..fe75aca 100644
--- a/src/plugins/postcss-import-parser.js
+++ b/src/plugins/postcss-import-parser.js
@@ -1,5 +1,6 @@
 import postcss from 'postcss';
 import valueParser from 'postcss-value-parser';
+import { isUrlRequest, urlToRequest } from 'loader-utils';
 
 const pluginName = 'postcss-import-parser';
 
@@ -28,12 +29,16 @@ function parseImport(params) {
     return null;
   }
 
-  const url = getUrl(nodes[0]);
+  let url = getUrl(nodes[0]);
 
   if (!url || url.trim().length === 0) {
     return null;
   }
 
+  if (isUrlRequest(url)) {
+    url = urlToRequest(url);
+  }
+
   return {
     url,
     media: valueParser
diff --git a/src/plugins/postcss-url-parser.js b/src/plugins/postcss-url-parser.js
index e480773..47f39fd 100644
--- a/src/plugins/postcss-url-parser.js
+++ b/src/plugins/postcss-url-parser.js
@@ -1,5 +1,6 @@
 import postcss from 'postcss';
 import valueParser from 'postcss-value-parser';
+import { urlToRequest } from 'loader-utils';
 
 const pluginName = 'postcss-url-parser';
 
@@ -77,7 +78,7 @@ function getUrlsFromValue(value, result, filter, decl) {
     }
 
     const splittedUrl = url.split(/(\?)?#/);
-    let normalizedUrl = decodeURIComponent(splittedUrl[0]);
+    let normalizedUrl = urlToRequest(decodeURIComponent(splittedUrl[0]));
     const [, singleQuery, hashValue] = splittedUrl;
     const hash =
       singleQuery || hashValue
diff --git a/src/utils.js b/src/utils.js
index c02cdfc..8319a53 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -4,11 +4,7 @@
 */
 import path from 'path';
 
-import loaderUtils, {
-  isUrlRequest,
-  stringifyRequest,
-  urlToRequest,
-} from 'loader-utils';
+import loaderUtils, { isUrlRequest, stringifyRequest } from 'loader-utils';
 import normalizePath from 'normalize-path';
 import cssesc from 'cssesc';
 import modulesValues from 'postcss-modules-values';
@@ -230,10 +226,7 @@ function getImportCode(
         importPrefix = getImportPrefix(loaderContext, importLoaders);
       }
 
-      const url = stringifyRequest(
-        loaderContext,
-        importPrefix + urlToRequest(item.url)
-      );
+      const url = stringifyRequest(loaderContext, importPrefix + item.url);
 
       importItems.push(`var ${item.name} = require(${url});`);
 
@@ -259,7 +252,7 @@ function getImportCode(
       let importName = urlImportNames.get(url);
 
       if (!importName) {
-        const preparedUrl = stringifyRequest(loaderContext, urlToRequest(url));
+        const preparedUrl = stringifyRequest(loaderContext, url);
 
         importName = `___CSS_LOADER_URL_PURE_IMPORT_${index}___`;
         importItems.push(`var ${importName} = require(${preparedUrl});`);


Test patch:
diff --git a/test/__snapshots__/import-option.test.js.snap b/test/__snapshots__/import-option.test.js.snap
index c85246a..6bce6e3 100644
--- a/test/__snapshots__/import-option.test.js.snap
+++ b/test/__snapshots__/import-option.test.js.snap
@@ -168,6 +168,8 @@ Array [
 .background {
   background: url(/webpack/public/path/img.png);
 }
+
+@import url(./test.css);
 ",
     "",
   ],
@@ -211,7 +213,7 @@ exports.i(___CSS_LOADER_AT_RULE_IMPORT_17___);
 exports.i(___CSS_LOADER_AT_RULE_IMPORT_18___);
 var ___CSS_LOADER_URL_IMPORT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_0___);
 // Module
-exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n  test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\"   \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and print;\\\\n@import url(test.css) SCREEN AND PRINT;\\\\n@import url(test.css)screen and print;\\\\n@import url(test.css)  screen and print;\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n  a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n  @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]);
+exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n  test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\"   \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and print;\\\\n@import url(test.css) SCREEN AND PRINT;\\\\n@import url(test.css)screen and print;\\\\n@import url(test.css)  screen and print;\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n  a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n  @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n}\\\\n\\\\n@import url(./test.css);\\\\n\\", \\"\\"]);
 "
 `;
 
@@ -346,6 +348,8 @@ Array [
 .background {
   background: url(/webpack/public/path/img.png);
 }
+
+@import url(./test.css);
 ",
     "",
   ],
@@ -360,7 +364,7 @@ var ___CSS_LOADER_URL_PURE_IMPORT_0___ = require(\\"./img.png\\");
 exports = module.exports = ___CSS_LOADER_API_IMPORT___(false);
 var ___CSS_LOADER_URL_IMPORT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_0___);
 // Module
-exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n  test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\"   \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and print;\\\\n@import url(test.css) SCREEN AND PRINT;\\\\n@import url(test.css)screen and print;\\\\n@import url(test.css)  screen and print;\\\\n@import url(test-media.css) screen and print;\\\\n@import url(test-other.css) (min-width: 100px);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css#hash);\\\\n@import url(http://example.com/style.css?#hash);\\\\n@import url(http://example.com/style.css?foo=bar#hash);\\\\n@import url(http://example.com/other-style.css) screen and print;\\\\n@import url(http://example.com/other-style.css) screen and print;\\\\n@import url(\\\\\\"//example.com/style.css\\\\\\");\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n@import url('query.css?foo=1&bar=1');\\\\n@import url('other-query.css?foo=1&bar=1#hash');\\\\n@import url('other-query.css?foo=1&bar=1#hash') screen and print;\\\\n@import url('https://fonts.googleapis.com/css?family=Roboto');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto');\\\\n\\\\n.class {\\\\n  a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n  @import 'path.css';\\\\n}\\\\n\\\\n@import url('./relative.css');\\\\n@import url('../import/top-relative.css');\\\\n@import url(~package/tilde.css);\\\\n@import url(~aliasesImport/alias.css);\\\\n@import url('./url.css');\\\\n\\\\n.background {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]);
+exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n  test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\"   \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and print;\\\\n@import url(test.css) SCREEN AND PRINT;\\\\n@import url(test.css)screen and print;\\\\n@import url(test.css)  screen and print;\\\\n@import url(test-media.css) screen and print;\\\\n@import url(test-other.css) (min-width: 100px);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css#hash);\\\\n@import url(http://example.com/style.css?#hash);\\\\n@import url(http://example.com/style.css?foo=bar#hash);\\\\n@import url(http://example.com/other-style.css) screen and print;\\\\n@import url(http://example.com/other-style.css) screen and print;\\\\n@import url(\\\\\\"//example.com/style.css\\\\\\");\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n@import url('query.css?foo=1&bar=1');\\\\n@import url('other-query.css?foo=1&bar=1#hash');\\\\n@import url('other-query.css?foo=1&bar=1#hash') screen and print;\\\\n@import url('https://fonts.googleapis.com/css?family=Roboto');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto');\\\\n\\\\n.class {\\\\n  a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n  @import 'path.css';\\\\n}\\\\n\\\\n@import url('./relative.css');\\\\n@import url('../import/top-relative.css');\\\\n@import url(~package/tilde.css);\\\\n@import url(~aliasesImport/alias.css);\\\\n@import url('./url.css');\\\\n\\\\n.background {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n}\\\\n\\\\n@import url(./test.css);\\\\n\\", \\"\\"]);
 "
 `;
 
diff --git a/test/__snapshots__/modules-option.test.js.snap b/test/__snapshots__/modules-option.test.js.snap
index 08fda30..d65a01b 100644
--- a/test/__snapshots__/modules-option.test.js.snap
+++ b/test/__snapshots__/modules-option.test.js.snap
@@ -6627,6 +6627,50 @@ Array [
 
 exports[`modules should accepts all arguments for getLocalIdent option: warnings 1`] = `Array []`;
 
+exports[`modules should avoid unnecessary "require": errors 1`] = `Array []`;
+
+exports[`modules should avoid unnecessary "require": module (evaluated) 1`] = `
+Array [
+  Array [
+    2,
+    "._22ETk3ZhhvjVe-4dAULcsF {
+  display: block;
+}
+",
+    "",
+  ],
+  Array [
+    1,
+    "._1UrsXQ2x66vvn0IAbZqRYi {
+  color: red;
+}
+
+._3xlGH7JLMDZsCqOwH83KaV {
+  color: red;
+}
+",
+    "",
+  ],
+]
+`;
+
+exports[`modules should avoid unnecessary "require": module 1`] = `
+"// Imports
+var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\");
+var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./imported-simple.css\\");
+exports = module.exports = ___CSS_LOADER_API_IMPORT___(false);
+exports.i(___CSS_LOADER_ICSS_IMPORT_0___);
+// Module
+exports.push([module.id, \\"._1UrsXQ2x66vvn0IAbZqRYi {\\\\n  color: red;\\\\n}\\\\n\\\\n._3xlGH7JLMDZsCqOwH83KaV {\\\\n  color: red;\\\\n}\\\\n\\", \\"\\"]);
+// Exports
+exports.locals = {
+	\\"simple-foo\\": \\"_1UrsXQ2x66vvn0IAbZqRYi \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"imported-simple\\"] + \\"\\",
+	\\"simple-bar\\": \\"_3xlGH7JLMDZsCqOwH83KaV \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"imported-simple\\"] + \\"\\"
+};"
+`;
+
+exports[`modules should avoid unnecessary "require": warnings 1`] = `Array []`;
+
 exports[`modules should correctly replace escaped symbols in selector with localIdentName option: errors 1`] = `Array []`;
 
 exports[`modules should correctly replace escaped symbols in selector with localIdentName option: locals 1`] = `
diff --git a/test/__snapshots__/url-option.test.js.snap b/test/__snapshots__/url-option.test.js.snap
index 1f3f357..36a1bf8 100644
--- a/test/__snapshots__/url-option.test.js.snap
+++ b/test/__snapshots__/url-option.test.js.snap
@@ -339,6 +339,10 @@ a {
   background: url(./img%29img.png);
   background: url(./img%20img.png);
 }
+
+.qqq {
+  background: url('img.png');
+}
 ",
     "",
   ],
@@ -386,7 +390,7 @@ var ___CSS_LOADER_URL_IMPORT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOAD
 var ___CSS_LOADER_URL_IMPORT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_9___, { hash: \\"?#iefix\\", needQuotes: true });
 var ___CSS_LOADER_URL_IMPORT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_15___);
 // Module
-exports.push([module.id, \\".class {\\\\n  background: url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(./img.png);\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\n    \\\\\\"./img.png\\\\\\"\\\\n  );\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( './img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\\\\\"./img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( ./img.png ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(~package/img.png) url(./other-img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\\\\\"./img img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( './img img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\"><filter id=\\\\\\"filter\\\\\\"><feGaussianBlur in=\\\\\\"SourceAlpha\\\\\\" stdDeviation=\\\\\\"0\\\\\\" /><feOffset dx=\\\\\\"1\\\\\\" dy=\\\\\\"2\\\\\\" result=\\\\\\"offsetblur\\\\\\" /><feFlood flood-color=\\\\\\"rgba(255,255,255,1)\\\\\\" /><feComposite in2=\\\\\\"offsetblur\\\\\\" operator=\\\\\\"in\\\\\\" /><feMerge><feMergeNode /><feMergeNode in=\\\\\\"SourceGraphic\\\\\\" /></feMerge></filter></svg>#filter');\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\") format('woff'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_1___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_2___ + \\") format('eot'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_3___ + \\") format('truetype'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_5___ + \\") format('svg'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_6___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_7___ + \\") format('embedded-opentype'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_8___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n  body {\\\\n    background: url(\\\\\\"./img.png\\\\\\");\\\\n  }\\\\n}\\\\n\\\\na {\\\\n  content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n  content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n  background: green url('./img.png') xyz;\\\\n}\\\\n\\\\n.a {\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_10___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_10___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n  background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('   ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\n  ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url('./img.png') url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\") url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n  background: ___CSS_LOADER_URL___;\\\\n  background: ___CSS_LOADER_URL___INDEX___;\\\\n  background: ___CSS_LOADER_URL___99999___;\\\\n  background: ___CSS_LOADER_IMPORT___;\\\\n  background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n  background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_11___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n  background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_12___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n  background: url('~package/img.png');\\\\n}\\\\n\\\\n.aliases {\\\\n  background: url('~aliasesImg/img.png') ;\\\\n}\\\\n\\\\na {\\\\n  background: url(./nested/img.png);\\\\n}\\\\n\\\\na {\\\\n  background: url(nested/img.png);\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  /* Broken */\\\\n  background-image: -webkit-image-set();\\\\n  background-image: -webkit-image-set('');\\\\n  background-image: image-set();\\\\n  background-image: image-set('');\\\\n  background-image: image-set(\\\\\\"\\\\\\");\\\\n  background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n  background-image: image-set(url());\\\\n  background-image: image-set(\\\\n    url()\\\\n  );\\\\n  background-image: image-set(URL());\\\\n  background-image: image-set(url(''));\\\\n  background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n  background-image: image-set(url('') 1x);\\\\n  background-image: image-set(1x);\\\\n  background-image: image-set(\\\\n    1x\\\\n  );\\\\n  background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n  /* Strings */\\\\n  background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_IMPORT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_14___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_13___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_14___ + \\" 2x);\\\\n  background-image: image-set(\\\\\\"./img img.png\\\\\\" 1x, \\\\\\"./img img.png\\\\\\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_14___ + \\" 2x),\\\\n    image-set(\\" + ___CSS_LOADER_URL_IMPORT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_14___ + \\" 2x);\\\\n  background-image: image-set(\\\\n    \\" + ___CSS_LOADER_URL_IMPORT_13___ + \\" 1x,\\\\n    \\" + ___CSS_LOADER_URL_IMPORT_14___ + \\" 2x,\\\\n    \\" + ___CSS_LOADER_URL_IMPORT_15___ + \\" 600dpi\\\\n  );\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_16___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_17___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_18___ + \\" 1x);\\\\n\\\\n  /* With \`url\` function */\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_10___ + \\") 2x);\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x);\\\\n  background-image: -webkit-image-set(\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_10___ + \\") 2x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_10___ + \\") 2x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_19___ + \\") 600dpi\\\\n  );\\\\n  background-image: image-set(url(\\\\\\"./img img.png\\\\\\") 1x, url(\\\\\\"./img img.png\\\\\\") 2x);\\\\n\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x, \\" + ___CSS_LOADER_URL_IMPORT_14___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n  /* Not allowed on windows */\\\\n  /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n  background: url(./img\\\\\\\\'img.png);\\\\n  background: url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png);\\\\n  background: url(./img\\\\\\\\(img.png);\\\\n  background: url(./img\\\\\\\\)img.png);\\\\n  background: url(./img\\\\\\\\ img.png);\\\\n  background: url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png);\\\\n\\\\n  background-image: image-set(\\\\n    /* Not allowed on windows */\\\\n    /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n    url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png) 2x,\\\\n    url(./img\\\\\\\\'img.png) 3x,\\\\n    url(./img\\\\\\\\(img.png) 4x,\\\\n    url(./img\\\\\\\\)img.png) 5x,\\\\n    url(./img\\\\\\\\ img.png) 6x,\\\\n    url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png) 7x\\\\n  );\\\\n}\\\\n\\\\n.class-class-class {\\\\n  background: url(\\\\\\"./img'''img.png\\\\\\");\\\\n  background: url(\\\\\\"./img'() img.png\\\\\\");\\\\n  background: url(\\\\\\"./img'img.png\\\\\\");\\\\n  background: url(\\\\\\"./img(img.png\\\\\\");\\\\n  background: url(\\\\\\"./img)img.png\\\\\\");\\\\n  background: url('./img img.png');\\\\n  background: url(\\\\\\"./img img.png\\\\\\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n  background: url('./img\\\\\\\\\\\\n(img.png');\\\\n  background: url('./img\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n(img.png');\\\\n}\\\\n\\\\n.other-test-case {\\\\n  background: url(\\\\\\"./img%27%27%27img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%27%28%29%20img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%27img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%28img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%29img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%20img.png\\\\\\");\\\\n  background: url(./img%27%27%27img.png);\\\\n  background: url(./img%27%28%29%20img.png);\\\\n  background: url(./img%27img.png);\\\\n  background: url(./img%28img.png);\\\\n  background: url(./img%29img.png);\\\\n  background: url(./img%20img.png);\\\\n}\\\\n\\", \\"\\"]);
+exports.push([module.id, \\".class {\\\\n  background: url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(./img.png);\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\n    \\\\\\"./img.png\\\\\\"\\\\n  );\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( './img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\\\\\"./img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( ./img.png ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(~package/img.png) url(./other-img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\\\\\"./img img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( './img img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\"><filter id=\\\\\\"filter\\\\\\"><feGaussianBlur in=\\\\\\"SourceAlpha\\\\\\" stdDeviation=\\\\\\"0\\\\\\" /><feOffset dx=\\\\\\"1\\\\\\" dy=\\\\\\"2\\\\\\" result=\\\\\\"offsetblur\\\\\\" /><feFlood flood-color=\\\\\\"rgba(255,255,255,1)\\\\\\" /><feComposite in2=\\\\\\"offsetblur\\\\\\" operator=\\\\\\"in\\\\\\" /><feMerge><feMergeNode /><feMergeNode in=\\\\\\"SourceGraphic\\\\\\" /></feMerge></filter></svg>#filter');\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\") format('woff'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_1___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_2___ + \\") format('eot'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_3___ + \\") format('truetype'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_5___ + \\") format('svg'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_6___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_7___ + \\") format('embedded-opentype'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_8___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n  body {\\\\n    background: url(\\\\\\"./img.png\\\\\\");\\\\n  }\\\\n}\\\\n\\\\na {\\\\n  content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n  content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n  background: green url('./img.png') xyz;\\\\n}\\\\n\\\\n.a {\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_10___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_10___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n  background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('   ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\n  ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url('./img.png') url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\") url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n  background: ___CSS_LOADER_URL___;\\\\n  background: ___CSS_LOADER_URL___INDEX___;\\\\n  background: ___CSS_LOADER_URL___99999___;\\\\n  background: ___CSS_LOADER_IMPORT___;\\\\n  background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n  background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_11___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n  background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_12___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n  background: url('~package/img.png');\\\\n}\\\\n\\\\n.aliases {\\\\n  background: url('~aliasesImg/img.png') ;\\\\n}\\\\n\\\\na {\\\\n  background: url(./nested/img.png);\\\\n}\\\\n\\\\na {\\\\n  background: url(nested/img.png);\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  /* Broken */\\\\n  background-image: -webkit-image-set();\\\\n  background-image: -webkit-image-set('');\\\\n  background-image: image-set();\\\\n  background-image: image-set('');\\\\n  background-image: image-set(\\\\\\"\\\\\\");\\\\n  background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n  background-image: image-set(url());\\\\n  background-image: image-set(\\\\n    url()\\\\n  );\\\\n  background-image: image-set(URL());\\\\n  background-image: image-set(url(''));\\\\n  background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n  background-image: image-set(url('') 1x);\\\\n  background-image: image-set(1x);\\\\n  background-image: image-set(\\\\n    1x\\\\n  );\\\\n  background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n  /* Strings */\\\\n  background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_IMPORT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_14___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_13___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_14___ + \\" 2x);\\\\n  background-image: image-set(\\\\\\"./img img.png\\\\\\" 1x, \\\\\\"./img img.png\\\\\\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_14___ + \\" 2x),\\\\n    image-set(\\" + ___CSS_LOADER_URL_IMPORT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_14___ + \\" 2x);\\\\n  background-image: image-set(\\\\n    \\" + ___CSS_LOADER_URL_IMPORT_13___ + \\" 1x,\\\\n    \\" + ___CSS_LOADER_URL_IMPORT_14___ + \\" 2x,\\\\n    \\" + ___CSS_LOADER_URL_IMPORT_15___ + \\" 600dpi\\\\n  );\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_16___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_17___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_18___ + \\" 1x);\\\\n\\\\n  /* With \`url\` function */\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_10___ + \\") 2x);\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x);\\\\n  background-image: -webkit-image-set(\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_10___ + \\") 2x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_10___ + \\") 2x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_19___ + \\") 600dpi\\\\n  );\\\\n  background-image: image-set(url(\\\\\\"./img img.png\\\\\\") 1x, url(\\\\\\"./img img.png\\\\\\") 2x);\\\\n\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") 1x, \\" + ___CSS_LOADER_URL_IMPORT_14___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n  /* Not allowed on windows */\\\\n  /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n  background: url(./img\\\\\\\\'img.png);\\\\n  background: url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png);\\\\n  background: url(./img\\\\\\\\(img.png);\\\\n  background: url(./img\\\\\\\\)img.png);\\\\n  background: url(./img\\\\\\\\ img.png);\\\\n  background: url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png);\\\\n\\\\n  background-image: image-set(\\\\n    /* Not allowed on windows */\\\\n    /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n    url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png) 2x,\\\\n    url(./img\\\\\\\\'img.png) 3x,\\\\n    url(./img\\\\\\\\(img.png) 4x,\\\\n    url(./img\\\\\\\\)img.png) 5x,\\\\n    url(./img\\\\\\\\ img.png) 6x,\\\\n    url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png) 7x\\\\n  );\\\\n}\\\\n\\\\n.class-class-class {\\\\n  background: url(\\\\\\"./img'''img.png\\\\\\");\\\\n  background: url(\\\\\\"./img'() img.png\\\\\\");\\\\n  background: url(\\\\\\"./img'img.png\\\\\\");\\\\n  background: url(\\\\\\"./img(img.png\\\\\\");\\\\n  background: url(\\\\\\"./img)img.png\\\\\\");\\\\n  background: url('./img img.png');\\\\n  background: url(\\\\\\"./img img.png\\\\\\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n  background: url('./img\\\\\\\\\\\\n(img.png');\\\\n  background: url('./img\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n(img.png');\\\\n}\\\\n\\\\n.other-test-case {\\\\n  background: url(\\\\\\"./img%27%27%27img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%27%28%29%20img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%27img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%28img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%29img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%20img.png\\\\\\");\\\\n  background: url(./img%27%27%27img.png);\\\\n  background: url(./img%27%28%29%20img.png);\\\\n  background: url(./img%27img.png);\\\\n  background: url(./img%28img.png);\\\\n  background: url(./img%29img.png);\\\\n  background: url(./img%20img.png);\\\\n}\\\\n\\\\n.qqq {\\\\n  background: url('img.png');\\\\n}\\\\n\\", \\"\\"]);
 "
 `;
 
@@ -797,6 +801,10 @@ a {
   background: url(./img%29img.png);
   background: url(./img%20img.png);
 }
+
+.qqq {
+  background: url('img.png');
+}
 ",
     "",
   ],
@@ -810,7 +818,7 @@ var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref-
 exports = module.exports = ___CSS_LOADER_API_IMPORT___(false);
 exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___);
 // Module
-exports.push([module.id, \\".class {\\\\n  background: url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(./img.png);\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\n    \\\\\\"./img.png\\\\\\"\\\\n  );\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( './img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\\\\\"./img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( ./img.png ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(~package/img.png) url(./other-img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\\\\\"./img img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( './img img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\"><filter id=\\\\\\"filter\\\\\\"><feGaussianBlur in=\\\\\\"SourceAlpha\\\\\\" stdDeviation=\\\\\\"0\\\\\\" /><feOffset dx=\\\\\\"1\\\\\\" dy=\\\\\\"2\\\\\\" result=\\\\\\"offsetblur\\\\\\" /><feFlood flood-color=\\\\\\"rgba(255,255,255,1)\\\\\\" /><feComposite in2=\\\\\\"offsetblur\\\\\\" operator=\\\\\\"in\\\\\\" /><feMerge><feMergeNode /><feMergeNode in=\\\\\\"SourceGraphic\\\\\\" /></feMerge></filter></svg>#filter');\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(./font.woff) format('woff'),\\\\n    url('./font.woff2') format('woff2'),\\\\n    url(\\\\\\"./font.eot\\\\\\") format('eot'),\\\\n    url(~package/font.ttf) format('truetype'),\\\\n    url(\\\\\\"./font with spaces.eot\\\\\\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n    url('./font.svg#svgFontName') format('svg'),\\\\n    url('./font.woff2?foo=bar') format('woff2'),\\\\n    url(\\\\\\"./font.eot?#iefix\\\\\\") format('embedded-opentype'),\\\\n    url(\\\\\\"./font with spaces.eot?#iefix\\\\\\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n  body {\\\\n    background: url(\\\\\\"./img.png\\\\\\");\\\\n  }\\\\n}\\\\n\\\\na {\\\\n  content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n  content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n  background: green url('./img.png') xyz;\\\\n}\\\\n\\\\n.a {\\\\n  background-image: -webkit-image-set(url('./img1x.png') 1x, url('./img2x.png') 2x)\\\\n}\\\\n\\\\n.a {\\\\n  background-image: image-set(url('./img1x.png') 1x, url('./img2x.png') 2x)\\\\n}\\\\n\\\\n.class {\\\\n  background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('   ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\n  ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url('./img.png') url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\") url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n  background: ___CSS_LOADER_URL___;\\\\n  background: ___CSS_LOADER_URL___INDEX___;\\\\n  background: ___CSS_LOADER_URL___99999___;\\\\n  background: ___CSS_LOADER_IMPORT___;\\\\n  background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n  background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n  background: url('img-simple.png');\\\\n}\\\\n\\\\n.not-resolved {\\\\n  background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n  background: url('../url/img-simple.png');\\\\n}\\\\n\\\\n.tilde {\\\\n  background: url('~package/img.png');\\\\n}\\\\n\\\\n.aliases {\\\\n  background: url('~aliasesImg/img.png') ;\\\\n}\\\\n\\\\na {\\\\n  background: url(./nested/img.png);\\\\n}\\\\n\\\\na {\\\\n  background: url(nested/img.png);\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  /* Broken */\\\\n  background-image: -webkit-image-set();\\\\n  background-image: -webkit-image-set('');\\\\n  background-image: image-set();\\\\n  background-image: image-set('');\\\\n  background-image: image-set(\\\\\\"\\\\\\");\\\\n  background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n  background-image: image-set(url());\\\\n  background-image: image-set(\\\\n    url()\\\\n  );\\\\n  background-image: image-set(URL());\\\\n  background-image: image-set(url(''));\\\\n  background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n  background-image: image-set(url('') 1x);\\\\n  background-image: image-set(1x);\\\\n  background-image: image-set(\\\\n    1x\\\\n  );\\\\n  background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n  /* Strings */\\\\n  background-image: -webkit-image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n  background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x);\\\\n  background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n  background-image: image-set(\\\\\\"./img img.png\\\\\\" 1x, \\\\\\"./img img.png\\\\\\" 2x);\\\\n  background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x),\\\\n    image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n  background-image: image-set(\\\\n    \\\\\\"./img1x.png\\\\\\" 1x,\\\\n    \\\\\\"./img2x.png\\\\\\" 2x,\\\\n    \\\\\\"./img3x.png\\\\\\" 600dpi\\\\n  );\\\\n  background-image: image-set(\\\\\\"./img1x.png?foo=bar\\\\\\" 1x);\\\\n  background-image: image-set(\\\\\\"./img1x.png#hash\\\\\\" 1x);\\\\n  background-image: image-set(\\\\\\"./img1x.png?#iefix\\\\\\" 1x);\\\\n\\\\n  /* With \`url\` function */\\\\n  background-image: -webkit-image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n  background-image: -webkit-image-set(url(\\\\\\"./img1x.png\\\\\\") 1x);\\\\n  background-image: -webkit-image-set(\\\\n    url(\\\\\\"./img1x.png\\\\\\") 1x\\\\n  );\\\\n  background-image: image-set(url(./img1x.png) 1x);\\\\n  background-image: image-set(\\\\n    url(./img1x.png) 1x\\\\n  );\\\\n  background-image: image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n  background-image: image-set(\\\\n    url(./img1x.png) 1x,\\\\n    url(./img2x.png) 2x,\\\\n    url(./img3x.png) 600dpi\\\\n  );\\\\n  background-image: image-set(url(\\\\\\"./img img.png\\\\\\") 1x, url(\\\\\\"./img img.png\\\\\\") 2x);\\\\n\\\\n  background-image: image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n  /* Not allowed on windows */\\\\n  /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n  background: url(./img\\\\\\\\'img.png);\\\\n  background: url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png);\\\\n  background: url(./img\\\\\\\\(img.png);\\\\n  background: url(./img\\\\\\\\)img.png);\\\\n  background: url(./img\\\\\\\\ img.png);\\\\n  background: url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png);\\\\n\\\\n  background-image: image-set(\\\\n    /* Not allowed on windows */\\\\n    /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n    url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png) 2x,\\\\n    url(./img\\\\\\\\'img.png) 3x,\\\\n    url(./img\\\\\\\\(img.png) 4x,\\\\n    url(./img\\\\\\\\)img.png) 5x,\\\\n    url(./img\\\\\\\\ img.png) 6x,\\\\n    url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png) 7x\\\\n  );\\\\n}\\\\n\\\\n.class-class-class {\\\\n  background: url(\\\\\\"./img'''img.png\\\\\\");\\\\n  background: url(\\\\\\"./img'() img.png\\\\\\");\\\\n  background: url(\\\\\\"./img'img.png\\\\\\");\\\\n  background: url(\\\\\\"./img(img.png\\\\\\");\\\\n  background: url(\\\\\\"./img)img.png\\\\\\");\\\\n  background: url('./img img.png');\\\\n  background: url(\\\\\\"./img img.png\\\\\\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n  background: url('./img\\\\\\\\\\\\n(img.png');\\\\n  background: url('./img\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n(img.png');\\\\n}\\\\n\\\\n.other-test-case {\\\\n  background: url(\\\\\\"./img%27%27%27img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%27%28%29%20img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%27img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%28img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%29img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%20img.png\\\\\\");\\\\n  background: url(./img%27%27%27img.png);\\\\n  background: url(./img%27%28%29%20img.png);\\\\n  background: url(./img%27img.png);\\\\n  background: url(./img%28img.png);\\\\n  background: url(./img%29img.png);\\\\n  background: url(./img%20img.png);\\\\n}\\\\n\\", \\"\\"]);
+exports.push([module.id, \\".class {\\\\n  background: url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(./img.png);\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\n    \\\\\\"./img.png\\\\\\"\\\\n  );\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( './img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\\\\\"./img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( ./img.png ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(~package/img.png) url(./other-img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\\\\\"./img img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( './img img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\"><filter id=\\\\\\"filter\\\\\\"><feGaussianBlur in=\\\\\\"SourceAlpha\\\\\\" stdDeviation=\\\\\\"0\\\\\\" /><feOffset dx=\\\\\\"1\\\\\\" dy=\\\\\\"2\\\\\\" result=\\\\\\"offsetblur\\\\\\" /><feFlood flood-color=\\\\\\"rgba(255,255,255,1)\\\\\\" /><feComposite in2=\\\\\\"offsetblur\\\\\\" operator=\\\\\\"in\\\\\\" /><feMerge><feMergeNode /><feMergeNode in=\\\\\\"SourceGraphic\\\\\\" /></feMerge></filter></svg>#filter');\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(./font.woff) format('woff'),\\\\n    url('./font.woff2') format('woff2'),\\\\n    url(\\\\\\"./font.eot\\\\\\") format('eot'),\\\\n    url(~package/font.ttf) format('truetype'),\\\\n    url(\\\\\\"./font with spaces.eot\\\\\\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n    url('./font.svg#svgFontName') format('svg'),\\\\n    url('./font.woff2?foo=bar') format('woff2'),\\\\n    url(\\\\\\"./font.eot?#iefix\\\\\\") format('embedded-opentype'),\\\\n    url(\\\\\\"./font with spaces.eot?#iefix\\\\\\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n  body {\\\\n    background: url(\\\\\\"./img.png\\\\\\");\\\\n  }\\\\n}\\\\n\\\\na {\\\\n  content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n  content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n  background: green url('./img.png') xyz;\\\\n}\\\\n\\\\n.a {\\\\n  background-image: -webkit-image-set(url('./img1x.png') 1x, url('./img2x.png') 2x)\\\\n}\\\\n\\\\n.a {\\\\n  background-image: image-set(url('./img1x.png') 1x, url('./img2x.png') 2x)\\\\n}\\\\n\\\\n.class {\\\\n  background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('   ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\n  ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url('./img.png') url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\") url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n  background: ___CSS_LOADER_URL___;\\\\n  background: ___CSS_LOADER_URL___INDEX___;\\\\n  background: ___CSS_LOADER_URL___99999___;\\\\n  background: ___CSS_LOADER_IMPORT___;\\\\n  background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n  background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n  background: url('img-simple.png');\\\\n}\\\\n\\\\n.not-resolved {\\\\n  background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n  background: url('../url/img-simple.png');\\\\n}\\\\n\\\\n.tilde {\\\\n  background: url('~package/img.png');\\\\n}\\\\n\\\\n.aliases {\\\\n  background: url('~aliasesImg/img.png') ;\\\\n}\\\\n\\\\na {\\\\n  background: url(./nested/img.png);\\\\n}\\\\n\\\\na {\\\\n  background: url(nested/img.png);\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  /* Broken */\\\\n  background-image: -webkit-image-set();\\\\n  background-image: -webkit-image-set('');\\\\n  background-image: image-set();\\\\n  background-image: image-set('');\\\\n  background-image: image-set(\\\\\\"\\\\\\");\\\\n  background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n  background-image: image-set(url());\\\\n  background-image: image-set(\\\\n    url()\\\\n  );\\\\n  background-image: image-set(URL());\\\\n  background-image: image-set(url(''));\\\\n  background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n  background-image: image-set(url('') 1x);\\\\n  background-image: image-set(1x);\\\\n  background-image: image-set(\\\\n    1x\\\\n  );\\\\n  background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n  /* Strings */\\\\n  background-image: -webkit-image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n  background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x);\\\\n  background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n  background-image: image-set(\\\\\\"./img img.png\\\\\\" 1x, \\\\\\"./img img.png\\\\\\" 2x);\\\\n  background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x),\\\\n    image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n  background-image: image-set(\\\\n    \\\\\\"./img1x.png\\\\\\" 1x,\\\\n    \\\\\\"./img2x.png\\\\\\" 2x,\\\\n    \\\\\\"./img3x.png\\\\\\" 600dpi\\\\n  );\\\\n  background-image: image-set(\\\\\\"./img1x.png?foo=bar\\\\\\" 1x);\\\\n  background-image: image-set(\\\\\\"./img1x.png#hash\\\\\\" 1x);\\\\n  background-image: image-set(\\\\\\"./img1x.png?#iefix\\\\\\" 1x);\\\\n\\\\n  /* With \`url\` function */\\\\n  background-image: -webkit-image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n  background-image: -webkit-image-set(url(\\\\\\"./img1x.png\\\\\\") 1x);\\\\n  background-image: -webkit-image-set(\\\\n    url(\\\\\\"./img1x.png\\\\\\") 1x\\\\n  );\\\\n  background-image: image-set(url(./img1x.png) 1x);\\\\n  background-image: image-set(\\\\n    url(./img1x.png) 1x\\\\n  );\\\\n  background-image: image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n  background-image: image-set(\\\\n    url(./img1x.png) 1x,\\\\n    url(./img2x.png) 2x,\\\\n    url(./img3x.png) 600dpi\\\\n  );\\\\n  background-image: image-set(url(\\\\\\"./img img.png\\\\\\") 1x, url(\\\\\\"./img img.png\\\\\\") 2x);\\\\n\\\\n  background-image: image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n  /* Not allowed on windows */\\\\n  /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n  background: url(./img\\\\\\\\'img.png);\\\\n  background: url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png);\\\\n  background: url(./img\\\\\\\\(img.png);\\\\n  background: url(./img\\\\\\\\)img.png);\\\\n  background: url(./img\\\\\\\\ img.png);\\\\n  background: url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png);\\\\n\\\\n  background-image: image-set(\\\\n    /* Not allowed on windows */\\\\n    /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n    url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png) 2x,\\\\n    url(./img\\\\\\\\'img.png) 3x,\\\\n    url(./img\\\\\\\\(img.png) 4x,\\\\n    url(./img\\\\\\\\)img.png) 5x,\\\\n    url(./img\\\\\\\\ img.png) 6x,\\\\n    url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png) 7x\\\\n  );\\\\n}\\\\n\\\\n.class-class-class {\\\\n  background: url(\\\\\\"./img'''img.png\\\\\\");\\\\n  background: url(\\\\\\"./img'() img.png\\\\\\");\\\\n  background: url(\\\\\\"./img'img.png\\\\\\");\\\\n  background: url(\\\\\\"./img(img.png\\\\\\");\\\\n  background: url(\\\\\\"./img)img.png\\\\\\");\\\\n  background: url('./img img.png');\\\\n  background: url(\\\\\\"./img img.png\\\\\\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n  background: url('./img\\\\\\\\\\\\n(img.png');\\\\n  background: url('./img\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n(img.png');\\\\n}\\\\n\\\\n.other-test-case {\\\\n  background: url(\\\\\\"./img%27%27%27img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%27%28%29%20img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%27img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%28img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%29img.png\\\\\\");\\\\n  background: url(\\\\\\"./img%20img.png\\\\\\");\\\\n  background: url(./img%27%27%27img.png);\\\\n  background: url(./img%27%28%29%20img.png);\\\\n  background: url(./img%27img.png);\\\\n  background: url(./img%28img.png);\\\\n  background: url(./img%29img.png);\\\\n  background: url(./img%20img.png);\\\\n}\\\\n\\\\n.qqq {\\\\n  background: url('img.png');\\\\n}\\\\n\\", \\"\\"]);
 "
 `;
 
@@ -1150,6 +1158,10 @@ a {
   background: url(\\"/webpack/public/path/img)img.png\\");
   background: url(\\"/webpack/public/path/img img.png\\");
 }
+
+.qqq {
+  background: url(/webpack/public/path/img.png);
+}
 ",
     "",
   ],
@@ -1181,14 +1193,13 @@ var ___CSS_LOADER_URL_PURE_IMPORT_20___ = require(\\"./img-simple.png\\");
 var ___CSS_LOADER_URL_PURE_IMPORT_21___ = require(\\"../url/img-simple.png\\");
 var ___CSS_LOADER_URL_PURE_IMPORT_22___ = require(\\"aliasesImg/img.png\\");
 var ___CSS_LOADER_URL_PURE_IMPORT_23___ = require(\\"./nested/img.png\\");
-var ___CSS_LOADER_URL_PURE_IMPORT_24___ = require(\\"./nested/img.png\\");
-var ___CSS_LOADER_URL_PURE_IMPORT_28___ = require(\\"./img3x.png\\");
-var ___CSS_LOADER_URL_PURE_IMPORT_29___ = require(\\"./img1x.png?foo=bar\\");
-var ___CSS_LOADER_URL_PURE_IMPORT_33___ = require(\\"./img'img.png\\");
-var ___CSS_LOADER_URL_PURE_IMPORT_34___ = require(\\"./img'''img.png\\");
-var ___CSS_LOADER_URL_PURE_IMPORT_35___ = require(\\"./img(img.png\\");
-var ___CSS_LOADER_URL_PURE_IMPORT_36___ = require(\\"./img)img.png\\");
-var ___CSS_LOADER_URL_PURE_IMPORT_37___ = require(\\"./img'() img.png\\");
+var ___CSS_LOADER_URL_PURE_IMPORT_27___ = require(\\"./img3x.png\\");
+var ___CSS_LOADER_URL_PURE_IMPORT_28___ = require(\\"./img1x.png?foo=bar\\");
+var ___CSS_LOADER_URL_PURE_IMPORT_32___ = require(\\"./img'img.png\\");
+var ___CSS_LOADER_URL_PURE_IMPORT_33___ = require(\\"./img'''img.png\\");
+var ___CSS_LOADER_URL_PURE_IMPORT_34___ = require(\\"./img(img.png\\");
+var ___CSS_LOADER_URL_PURE_IMPORT_35___ = require(\\"./img)img.png\\");
+var ___CSS_LOADER_URL_PURE_IMPORT_36___ = require(\\"./img'() img.png\\");
 exports = module.exports = ___CSS_LOADER_API_IMPORT___(false);
 exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___);
 var ___CSS_LOADER_URL_IMPORT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_0___);
@@ -1215,22 +1226,21 @@ var ___CSS_LOADER_URL_IMPORT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOAD
 var ___CSS_LOADER_URL_IMPORT_21___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_21___);
 var ___CSS_LOADER_URL_IMPORT_22___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_22___);
 var ___CSS_LOADER_URL_IMPORT_23___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_23___);
-var ___CSS_LOADER_URL_IMPORT_24___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_24___);
-var ___CSS_LOADER_URL_IMPORT_25___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_14___, { needQuotes: true });
-var ___CSS_LOADER_URL_IMPORT_26___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_15___, { needQuotes: true });
-var ___CSS_LOADER_URL_IMPORT_27___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_4___, { needQuotes: true });
+var ___CSS_LOADER_URL_IMPORT_24___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_14___, { needQuotes: true });
+var ___CSS_LOADER_URL_IMPORT_25___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_15___, { needQuotes: true });
+var ___CSS_LOADER_URL_IMPORT_26___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_4___, { needQuotes: true });
+var ___CSS_LOADER_URL_IMPORT_27___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_27___, { needQuotes: true });
 var ___CSS_LOADER_URL_IMPORT_28___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_28___, { needQuotes: true });
-var ___CSS_LOADER_URL_IMPORT_29___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_29___, { needQuotes: true });
-var ___CSS_LOADER_URL_IMPORT_30___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_14___, { hash: \\"#hash\\", needQuotes: true });
-var ___CSS_LOADER_URL_IMPORT_31___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_14___, { hash: \\"?#iefix\\", needQuotes: true });
-var ___CSS_LOADER_URL_IMPORT_32___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_28___);
+var ___CSS_LOADER_URL_IMPORT_29___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_14___, { hash: \\"#hash\\", needQuotes: true });
+var ___CSS_LOADER_URL_IMPORT_30___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_14___, { hash: \\"?#iefix\\", needQuotes: true });
+var ___CSS_LOADER_URL_IMPORT_31___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_27___);
+var ___CSS_LOADER_URL_IMPORT_32___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_32___);
 var ___CSS_LOADER_URL_IMPORT_33___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_33___);
 var ___CSS_LOADER_URL_IMPORT_34___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_34___);
 var ___CSS_LOADER_URL_IMPORT_35___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_35___);
 var ___CSS_LOADER_URL_IMPORT_36___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_36___);
-var ___CSS_LOADER_URL_IMPORT_37___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_PURE_IMPORT_37___);
 // Module
-exports.push([module.id, \\".class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\n    \\" + ___CSS_LOADER_URL_IMPORT_0___ + \\"\\\\n  );\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL_IMPORT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL_IMPORT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL_IMPORT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\" + ___CSS_LOADER_URL_IMPORT_2___ + \\") url(\\" + ___CSS_LOADER_URL_IMPORT_3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL_IMPORT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL_IMPORT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\"><filter id=\\\\\\"filter\\\\\\"><feGaussianBlur in=\\\\\\"SourceAlpha\\\\\\" stdDeviation=\\\\\\"0\\\\\\" /><feOffset dx=\\\\\\"1\\\\\\" dy=\\\\\\"2\\\\\\" result=\\\\\\"offsetblur\\\\\\" /><feFlood flood-color=\\\\\\"rgba(255,255,255,1)\\\\\\" /><feComposite in2=\\\\\\"offsetblur\\\\\\" operator=\\\\\\"in\\\\\\" /><feMerge><feMergeNode /><feMergeNode in=\\\\\\"SourceGraphic\\\\\\" /></feMerge></filter></svg>#filter');\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\" + ___CSS_LOADER_URL_IMPORT_5___ + \\") format('woff'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_6___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_7___ + \\") format('eot'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_8___ + \\") format('truetype'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_10___ + \\") format('svg'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_11___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_12___ + \\") format('embedded-opentype'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_13___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n  body {\\\\n    background: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n  }\\\\n}\\\\n\\\\na {\\\\n  content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n  content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n  background: green url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_15___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_15___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n  background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('   ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\n  ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_16___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_17___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_19___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\") url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\") url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: ___CSS_LOADER_URL___;\\\\n  background: ___CSS_LOADER_URL___INDEX___;\\\\n  background: ___CSS_LOADER_URL___99999___;\\\\n  background: ___CSS_LOADER_IMPORT___;\\\\n  background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n  background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_20___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n  background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_21___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_22___ + \\");\\\\n}\\\\n\\\\na {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_23___ + \\");\\\\n}\\\\n\\\\na {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_24___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  /* Broken */\\\\n  background-image: -webkit-image-set();\\\\n  background-image: -webkit-image-set('');\\\\n  background-image: image-set();\\\\n  background-image: image-set('');\\\\n  background-image: image-set(\\\\\\"\\\\\\");\\\\n  background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n  background-image: image-set(url());\\\\n  background-image: image-set(\\\\n    url()\\\\n  );\\\\n  background-image: image-set(URL());\\\\n  background-image: image-set(url(''));\\\\n  background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n  background-image: image-set(url('') 1x);\\\\n  background-image: image-set(1x);\\\\n  background-image: image-set(\\\\n    1x\\\\n  );\\\\n  background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n  /* Strings */\\\\n  background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_IMPORT_25___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_26___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_25___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_25___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_26___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_27___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_27___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_25___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_26___ + \\" 2x),\\\\n    image-set(\\" + ___CSS_LOADER_URL_IMPORT_25___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_26___ + \\" 2x);\\\\n  background-image: image-set(\\\\n    \\" + ___CSS_LOADER_URL_IMPORT_25___ + \\" 1x,\\\\n    \\" + ___CSS_LOADER_URL_IMPORT_26___ + \\" 2x,\\\\n    \\" + ___CSS_LOADER_URL_IMPORT_28___ + \\" 600dpi\\\\n  );\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_29___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_30___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_31___ + \\" 1x);\\\\n\\\\n  /* With \`url\` function */\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_15___ + \\") 2x);\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x);\\\\n  background-image: -webkit-image-set(\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_15___ + \\") 2x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_15___ + \\") 2x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_32___ + \\") 600dpi\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\") 2x);\\\\n\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x, \\" + ___CSS_LOADER_URL_IMPORT_26___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n  /* Not allowed on windows */\\\\n  /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_33___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_34___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_35___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_36___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_37___ + \\");\\\\n\\\\n  background-image: image-set(\\\\n    \\\\n    \\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_34___ + \\") 2x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_33___ + \\") 3x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_35___ + \\") 4x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_36___ + \\") 5x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\") 6x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_37___ + \\") 7x\\\\n  );\\\\n}\\\\n\\\\n.class-class-class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_34___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_37___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_33___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_35___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_36___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_35___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_35___ + \\");\\\\n}\\\\n\\\\n.other-test-case {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_34___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_37___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_33___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_35___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_36___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_34___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_37___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_33___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_35___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_36___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\");\\\\n}\\\\n\\", \\"\\"]);
+exports.push([module.id, \\".class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\n    \\" + ___CSS_LOADER_URL_IMPORT_0___ + \\"\\\\n  );\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL_IMPORT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL_IMPORT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL_IMPORT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\" + ___CSS_LOADER_URL_IMPORT_2___ + \\") url(\\" + ___CSS_LOADER_URL_IMPORT_3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL_IMPORT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL_IMPORT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\"><filter id=\\\\\\"filter\\\\\\"><feGaussianBlur in=\\\\\\"SourceAlpha\\\\\\" stdDeviation=\\\\\\"0\\\\\\" /><feOffset dx=\\\\\\"1\\\\\\" dy=\\\\\\"2\\\\\\" result=\\\\\\"offsetblur\\\\\\" /><feFlood flood-color=\\\\\\"rgba(255,255,255,1)\\\\\\" /><feComposite in2=\\\\\\"offsetblur\\\\\\" operator=\\\\\\"in\\\\\\" /><feMerge><feMergeNode /><feMergeNode in=\\\\\\"SourceGraphic\\\\\\" /></feMerge></filter></svg>#filter');\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\" + ___CSS_LOADER_URL_IMPORT_5___ + \\") format('woff'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_6___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_7___ + \\") format('eot'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_8___ + \\") format('truetype'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_9___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_10___ + \\") format('svg'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_11___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_12___ + \\") format('embedded-opentype'),\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_13___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n  body {\\\\n    background: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n  }\\\\n}\\\\n\\\\na {\\\\n  content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n  content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n  background: green url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_15___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_15___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n  background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('   ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\n  ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_16___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_17___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_19___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\") url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\") url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: ___CSS_LOADER_URL___;\\\\n  background: ___CSS_LOADER_URL___INDEX___;\\\\n  background: ___CSS_LOADER_URL___99999___;\\\\n  background: ___CSS_LOADER_IMPORT___;\\\\n  background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n  background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_20___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n  background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_21___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_22___ + \\");\\\\n}\\\\n\\\\na {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_23___ + \\");\\\\n}\\\\n\\\\na {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_23___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  /* Broken */\\\\n  background-image: -webkit-image-set();\\\\n  background-image: -webkit-image-set('');\\\\n  background-image: image-set();\\\\n  background-image: image-set('');\\\\n  background-image: image-set(\\\\\\"\\\\\\");\\\\n  background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n  background-image: image-set(url());\\\\n  background-image: image-set(\\\\n    url()\\\\n  );\\\\n  background-image: image-set(URL());\\\\n  background-image: image-set(url(''));\\\\n  background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n  background-image: image-set(url('') 1x);\\\\n  background-image: image-set(1x);\\\\n  background-image: image-set(\\\\n    1x\\\\n  );\\\\n  background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n  /* Strings */\\\\n  background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_IMPORT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_25___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_24___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_25___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_26___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_26___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_25___ + \\" 2x),\\\\n    image-set(\\" + ___CSS_LOADER_URL_IMPORT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_IMPORT_25___ + \\" 2x);\\\\n  background-image: image-set(\\\\n    \\" + ___CSS_LOADER_URL_IMPORT_24___ + \\" 1x,\\\\n    \\" + ___CSS_LOADER_URL_IMPORT_25___ + \\" 2x,\\\\n    \\" + ___CSS_LOADER_URL_IMPORT_27___ + \\" 600dpi\\\\n  );\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_28___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_29___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL_IMPORT_30___ + \\" 1x);\\\\n\\\\n  /* With \`url\` function */\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_15___ + \\") 2x);\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x);\\\\n  background-image: -webkit-image-set(\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_15___ + \\") 2x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_15___ + \\") 2x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_31___ + \\") 600dpi\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\") 2x);\\\\n\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL_IMPORT_14___ + \\") 1x, \\" + ___CSS_LOADER_URL_IMPORT_25___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n  /* Not allowed on windows */\\\\n  /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_32___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_33___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_34___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_35___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_36___ + \\");\\\\n\\\\n  background-image: image-set(\\\\n    \\\\n    \\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_33___ + \\") 2x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_32___ + \\") 3x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_34___ + \\") 4x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_35___ + \\") 5x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\") 6x,\\\\n    url(\\" + ___CSS_LOADER_URL_IMPORT_36___ + \\") 7x\\\\n  );\\\\n}\\\\n\\\\n.class-class-class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_33___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_36___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_32___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_34___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_35___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_34___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_34___ + \\");\\\\n}\\\\n\\\\n.other-test-case {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_33___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_36___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_32___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_34___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_35___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_33___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_36___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_32___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_34___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_35___ + \\");\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_4___ + \\");\\\\n}\\\\n\\\\n.qqq {\\\\n  background: url(\\" + ___CSS_LOADER_URL_IMPORT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]);
 "
 `;
 
diff --git a/test/fixtures/import/import.css b/test/fixtures/import/import.css
index f2f9f77..49d4158 100644
--- a/test/fixtures/import/import.css
+++ b/test/fixtures/import/import.css
@@ -65,3 +65,5 @@
 .background {
   background: url('./img.png');
 }
+
+@import url(./test.css);
diff --git a/test/fixtures/modules/composes-duplicate.css b/test/fixtures/modules/composes-duplicate.css
new file mode 100644
index 0000000..284d98f
--- /dev/null
+++ b/test/fixtures/modules/composes-duplicate.css
@@ -0,0 +1,9 @@
+.simple-foo {
+  color: red;
+  composes: imported-simple from 'imported-simple.css';
+}
+
+.simple-bar {
+  color: red;
+  composes: imported-simple from './imported-simple.css';
+}
diff --git a/test/fixtures/url/url.css b/test/fixtures/url/url.css
index a4abb06..de7ff93 100644
--- a/test/fixtures/url/url.css
+++ b/test/fixtures/url/url.css
@@ -325,3 +325,7 @@ a {
   background: url(./img%29img.png);
   background: url(./img%20img.png);
 }
+
+.qqq {
+  background: url('img.png');
+}
diff --git a/test/modules-option.test.js b/test/modules-option.test.js
index e9ae542..0625938 100644
--- a/test/modules-option.test.js
+++ b/test/modules-option.test.js
@@ -577,4 +577,25 @@ describe('modules', () => {
     expect(stats.compilation.warnings).toMatchSnapshot('warnings');
     expect(stats.compilation.errors).toMatchSnapshot('errors');
   });
+
+  it('should avoid unnecessary "require"', async () => {
+    const config = {
+      loader: {
+        options: {
+          modules: true,
+        },
+      },
+    };
+    const testId = './modules/composes-duplicate.css';
+    const stats = await webpack(testId, config);
+    const { modules } = stats.toJson();
+    const module = modules.find((m) => m.id === testId);
+
+    expect(module.source).toMatchSnapshot('module');
+    expect(evaluated(module.source, modules)).toMatchSnapshot(
+      'module (evaluated)'
+    );
+    expect(stats.compilation.warnings).toMatchSnapshot('warnings');
+    expect(stats.compilation.errors).toMatchSnapshot('errors');
+  });
 });