diff --git a/lib/plugins/index.js b/lib/plugins/index.js
index 8272227b..bfd66b28 100644
--- a/lib/plugins/index.js
+++ b/lib/plugins/index.js
@@ -1,9 +1,9 @@
const importParser = require('./postcss-import-parser');
-const parser = require('./postcss-parser');
+const icssParser = require('./postcss-icss-parser');
const urlParser = require('./postcss-url-parser');
module.exports = {
importParser,
- parser,
+ icssParser,
urlParser,
};
diff --git a/lib/plugins/postcss-parser.js b/lib/plugins/postcss-icss-parser.js
similarity index 64%
rename from lib/plugins/postcss-parser.js
rename to lib/plugins/postcss-icss-parser.js
index 093d0529..f8e8c448 100644
--- a/lib/plugins/postcss-parser.js
+++ b/lib/plugins/postcss-icss-parser.js
@@ -1,18 +1,18 @@
const postcss = require('postcss');
const valueParser = require('postcss-value-parser');
const icssUtils = require('icss-utils');
-const Tokenizer = require('css-selector-tokenizer');
const loaderUtils = require('loader-utils');
+const pluginName = 'postcss-icss-parser';
+
module.exports = postcss.plugin(
- 'postcss-parser',
+ pluginName,
(options) =>
function process(css) {
const importItems = options.importItems || [];
const urlItems = options.urlItems || [];
- const icss = icssUtils.extractICSS(css);
-
const imports = {};
+ const icss = icssUtils.extractICSS(css);
const exports = icss.icssExports;
Object.keys(icss.icssImports).forEach((key) => {
@@ -50,46 +50,21 @@ module.exports = postcss.plugin(
return str;
}
- Object.keys(exports).forEach((exportName) => {
- exports[exportName] = replaceImportsInString(exports[exportName]);
- });
-
- function processNode(item) {
- switch (item.type) {
- case 'value':
- item.nodes.forEach(processNode);
- break;
- case 'nested-item':
- item.nodes.forEach(processNode);
- break;
- case 'item': {
- const importIndex = imports[`$${item.name}`];
- if (typeof importIndex === 'number') {
- // eslint-disable-next-line no-param-reassign
- item.name = `___CSS_LOADER_IMPORT___${importIndex}___`;
- }
- break;
- }
- // no default
- }
- }
-
+ // Replace tokens in declarations
css.walkDecls((decl) => {
- const values = Tokenizer.parseValues(decl.value);
-
- values.nodes.forEach((value) => {
- value.nodes.forEach(processNode);
- });
-
// eslint-disable-next-line no-param-reassign
- decl.value = Tokenizer.stringifyValues(values);
+ decl.value = replaceImportsInString(decl.value.toString());
});
+ // Replace tokens in at-rules
css.walkAtRules((atrule) => {
- if (typeof atrule.params === 'string') {
- // eslint-disable-next-line no-param-reassign
- atrule.params = replaceImportsInString(atrule.params);
- }
+ // eslint-disable-next-line no-param-reassign
+ atrule.params = replaceImportsInString(atrule.params.toString());
+ });
+
+ // Replace tokens in export
+ Object.keys(exports).forEach((exportName) => {
+ exports[exportName] = replaceImportsInString(exports[exportName]);
});
/* eslint-disable no-param-reassign */
diff --git a/lib/processCss.js b/lib/processCss.js
index d5c5d502..1968d655 100644
--- a/lib/processCss.js
+++ b/lib/processCss.js
@@ -10,7 +10,7 @@ const extractImports = require('postcss-modules-extract-imports');
const modulesScope = require('postcss-modules-scope');
const modulesValues = require('postcss-modules-values');
-const { importParser, parser, urlParser } = require('./plugins');
+const { importParser, icssParser, urlParser } = require('./plugins');
const Warning = require('./Warning');
const CssSyntaxError = require('./CssSyntaxError');
@@ -73,7 +73,7 @@ module.exports = function processCss(content, map, options, callback) {
plugins.push(urlParser(parserOptions));
}
- plugins.push(parser(parserOptions));
+ plugins.push(icssParser(parserOptions));
postcss(plugins)
.process(content, {
diff --git a/package-lock.json b/package-lock.json
index 74b30c69..1e02243d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4658,12 +4658,14 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -4678,17 +4680,20 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"core-util-is": {
"version": "1.0.2",
@@ -4805,7 +4810,8 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"ini": {
"version": "1.3.5",
@@ -4817,6 +4823,7 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -4831,6 +4838,7 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -4838,12 +4846,14 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"minipass": {
"version": "2.2.4",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"safe-buffer": "^5.1.1",
"yallist": "^3.0.0"
@@ -4862,6 +4872,7 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -4942,7 +4953,8 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"object-assign": {
"version": "4.1.1",
@@ -4954,6 +4966,7 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"wrappy": "1"
}
@@ -5075,6 +5088,7 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
diff --git a/test/__snapshots__/modules-option.test.js.snap b/test/__snapshots__/modules-option.test.js.snap
index 12018760..ae9ca978 100644
--- a/test/__snapshots__/modules-option.test.js.snap
+++ b/test/__snapshots__/modules-option.test.js.snap
@@ -1470,6 +1470,94 @@ Object {
exports[`modules option case name \`media\`: (use \`localsLoader.js\`) (\`modules\` option is true): warnings 1`] = `Array []`;
+exports[`modules option case name \`media-2\`: (use \`loader.js\`) (\`modules\` option is false): errors 1`] = `Array []`;
+
+exports[`modules option case name \`media-2\`: (use \`loader.js\`) (\`modules\` option is false): locals 1`] = `
+Object {
+ "small": "(max-width: 599px)",
+}
+`;
+
+exports[`modules option case name \`media-2\`: (use \`loader.js\`) (\`modules\` option is false): module (evaluated) 1`] = `
+Array [
+ Array [
+ 2,
+ "
+",
+ "",
+ ],
+ Array [
+ 1,
+ "@media (max-width: 599px) {
+ .header {
+ box-shadow: 0 0 4px #1F4F7F;
+ }
+}
+",
+ "",
+ ],
+]
+`;
+
+exports[`modules option case name \`media-2\`: (use \`loader.js\`) (\`modules\` option is false): warnings 1`] = `Array []`;
+
+exports[`modules option case name \`media-2\`: (use \`loader.js\`) (\`modules\` option is true): errors 1`] = `Array []`;
+
+exports[`modules option case name \`media-2\`: (use \`loader.js\`) (\`modules\` option is true): locals 1`] = `
+Object {
+ "header": "_header",
+ "small": "(max-width: 599px)",
+}
+`;
+
+exports[`modules option case name \`media-2\`: (use \`loader.js\`) (\`modules\` option is true): module (evaluated) 1`] = `
+Array [
+ Array [
+ 2,
+ "
+",
+ "",
+ ],
+ Array [
+ 1,
+ "@media (max-width: 599px) {
+ ._header {
+ box-shadow: 0 0 4px #1F4F7F;
+ }
+}
+",
+ "",
+ ],
+]
+`;
+
+exports[`modules option case name \`media-2\`: (use \`loader.js\`) (\`modules\` option is true): warnings 1`] = `Array []`;
+
+exports[`modules option case name \`media-2\`: (use \`localsLoader.js\`) (\`modules\` option is false): errors 1`] = `Array []`;
+
+exports[`modules option case name \`media-2\`: (use \`localsLoader.js\`) (\`modules\` option is false): locals 1`] = `undefined`;
+
+exports[`modules option case name \`media-2\`: (use \`localsLoader.js\`) (\`modules\` option is false): module (evaluated) 1`] = `
+Object {
+ "small": "(max-width: 599px)",
+}
+`;
+
+exports[`modules option case name \`media-2\`: (use \`localsLoader.js\`) (\`modules\` option is false): warnings 1`] = `Array []`;
+
+exports[`modules option case name \`media-2\`: (use \`localsLoader.js\`) (\`modules\` option is true): errors 1`] = `Array []`;
+
+exports[`modules option case name \`media-2\`: (use \`localsLoader.js\`) (\`modules\` option is true): locals 1`] = `undefined`;
+
+exports[`modules option case name \`media-2\`: (use \`localsLoader.js\`) (\`modules\` option is true): module (evaluated) 1`] = `
+Object {
+ "header": "_header",
+ "small": "(max-width: 599px)",
+}
+`;
+
+exports[`modules option case name \`media-2\`: (use \`localsLoader.js\`) (\`modules\` option is true): warnings 1`] = `Array []`;
+
exports[`modules option case name \`mode-switching\`: (use \`loader.js\`) (\`modules\` option is false): errors 1`] = `Array []`;
exports[`modules option case name \`mode-switching\`: (use \`loader.js\`) (\`modules\` option is false): locals 1`] = `
@@ -2381,3 +2469,209 @@ Object {
`;
exports[`modules option case name \`values-7\`: (use \`localsLoader.js\`) (\`modules\` option is true): warnings 1`] = `Array []`;
+
+exports[`modules option case name \`values-8\`: (use \`loader.js\`) (\`modules\` option is false): errors 1`] = `Array []`;
+
+exports[`modules option case name \`values-8\`: (use \`loader.js\`) (\`modules\` option is false): locals 1`] = `
+Object {
+ "shadow-color": "rgba(0, 0, 0, 0.5)",
+}
+`;
+
+exports[`modules option case name \`values-8\`: (use \`loader.js\`) (\`modules\` option is false): module (evaluated) 1`] = `
+Array [
+ Array [
+ 1,
+ ".shadow {
+ box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5),
+ 10px 0px 5px rgba(0, 0, 0, 0.5);
+}
+",
+ "",
+ ],
+]
+`;
+
+exports[`modules option case name \`values-8\`: (use \`loader.js\`) (\`modules\` option is false): warnings 1`] = `Array []`;
+
+exports[`modules option case name \`values-8\`: (use \`loader.js\`) (\`modules\` option is true): errors 1`] = `Array []`;
+
+exports[`modules option case name \`values-8\`: (use \`loader.js\`) (\`modules\` option is true): locals 1`] = `
+Object {
+ "shadow": "_shadow",
+ "shadow-color": "rgba(0, 0, 0, 0.5)",
+}
+`;
+
+exports[`modules option case name \`values-8\`: (use \`loader.js\`) (\`modules\` option is true): module (evaluated) 1`] = `
+Array [
+ Array [
+ 1,
+ "._shadow {
+ box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5),
+ 10px 0px 5px rgba(0, 0, 0, 0.5);
+}
+",
+ "",
+ ],
+]
+`;
+
+exports[`modules option case name \`values-8\`: (use \`loader.js\`) (\`modules\` option is true): warnings 1`] = `Array []`;
+
+exports[`modules option case name \`values-8\`: (use \`localsLoader.js\`) (\`modules\` option is false): errors 1`] = `Array []`;
+
+exports[`modules option case name \`values-8\`: (use \`localsLoader.js\`) (\`modules\` option is false): locals 1`] = `undefined`;
+
+exports[`modules option case name \`values-8\`: (use \`localsLoader.js\`) (\`modules\` option is false): module (evaluated) 1`] = `
+Object {
+ "shadow-color": "rgba(0, 0, 0, 0.5)",
+}
+`;
+
+exports[`modules option case name \`values-8\`: (use \`localsLoader.js\`) (\`modules\` option is false): warnings 1`] = `Array []`;
+
+exports[`modules option case name \`values-8\`: (use \`localsLoader.js\`) (\`modules\` option is true): errors 1`] = `Array []`;
+
+exports[`modules option case name \`values-8\`: (use \`localsLoader.js\`) (\`modules\` option is true): locals 1`] = `undefined`;
+
+exports[`modules option case name \`values-8\`: (use \`localsLoader.js\`) (\`modules\` option is true): module (evaluated) 1`] = `
+Object {
+ "shadow": "_shadow",
+ "shadow-color": "rgba(0, 0, 0, 0.5)",
+}
+`;
+
+exports[`modules option case name \`values-8\`: (use \`localsLoader.js\`) (\`modules\` option is true): warnings 1`] = `Array []`;
+
+exports[`modules option case name \`values-9\`: (use \`loader.js\`) (\`modules\` option is false): errors 1`] = `Array []`;
+
+exports[`modules option case name \`values-9\`: (use \`loader.js\`) (\`modules\` option is false): locals 1`] = `
+Object {
+ "def": "red",
+}
+`;
+
+exports[`modules option case name \`values-9\`: (use \`loader.js\`) (\`modules\` option is false): module (evaluated) 1`] = `
+Array [
+ Array [
+ 1,
+ ".foo1 {
+ prop: func(red);
+}
+
+.foo2 {
+ prop: func(10px red);
+}
+
+.foo3 {
+ prop: func(red 10px);
+}
+
+.foo4 {
+ prop: func(10px red 10px);
+}
+
+.foo5 {
+ prop: func(10px, red);
+}
+
+.foo6 {
+ prop: func(red, 10px);
+}
+
+.foo7 {
+ prop: func(10px, red, 10px);
+}
+",
+ "",
+ ],
+]
+`;
+
+exports[`modules option case name \`values-9\`: (use \`loader.js\`) (\`modules\` option is false): warnings 1`] = `Array []`;
+
+exports[`modules option case name \`values-9\`: (use \`loader.js\`) (\`modules\` option is true): errors 1`] = `Array []`;
+
+exports[`modules option case name \`values-9\`: (use \`loader.js\`) (\`modules\` option is true): locals 1`] = `
+Object {
+ "def": "red",
+ "foo1": "_foo1",
+ "foo2": "_foo2",
+ "foo3": "_foo3",
+ "foo4": "_foo4",
+ "foo5": "_foo5",
+ "foo6": "_foo6",
+ "foo7": "_foo7",
+}
+`;
+
+exports[`modules option case name \`values-9\`: (use \`loader.js\`) (\`modules\` option is true): module (evaluated) 1`] = `
+Array [
+ Array [
+ 1,
+ "._foo1 {
+ prop: func(red);
+}
+
+._foo2 {
+ prop: func(10px red);
+}
+
+._foo3 {
+ prop: func(red 10px);
+}
+
+._foo4 {
+ prop: func(10px red 10px);
+}
+
+._foo5 {
+ prop: func(10px, red);
+}
+
+._foo6 {
+ prop: func(red, 10px);
+}
+
+._foo7 {
+ prop: func(10px, red, 10px);
+}
+",
+ "",
+ ],
+]
+`;
+
+exports[`modules option case name \`values-9\`: (use \`loader.js\`) (\`modules\` option is true): warnings 1`] = `Array []`;
+
+exports[`modules option case name \`values-9\`: (use \`localsLoader.js\`) (\`modules\` option is false): errors 1`] = `Array []`;
+
+exports[`modules option case name \`values-9\`: (use \`localsLoader.js\`) (\`modules\` option is false): locals 1`] = `undefined`;
+
+exports[`modules option case name \`values-9\`: (use \`localsLoader.js\`) (\`modules\` option is false): module (evaluated) 1`] = `
+Object {
+ "def": "red",
+}
+`;
+
+exports[`modules option case name \`values-9\`: (use \`localsLoader.js\`) (\`modules\` option is false): warnings 1`] = `Array []`;
+
+exports[`modules option case name \`values-9\`: (use \`localsLoader.js\`) (\`modules\` option is true): errors 1`] = `Array []`;
+
+exports[`modules option case name \`values-9\`: (use \`localsLoader.js\`) (\`modules\` option is true): locals 1`] = `undefined`;
+
+exports[`modules option case name \`values-9\`: (use \`localsLoader.js\`) (\`modules\` option is true): module (evaluated) 1`] = `
+Object {
+ "def": "red",
+ "foo1": "_foo1",
+ "foo2": "_foo2",
+ "foo3": "_foo3",
+ "foo4": "_foo4",
+ "foo5": "_foo5",
+ "foo6": "_foo6",
+ "foo7": "_foo7",
+}
+`;
+
+exports[`modules option case name \`values-9\`: (use \`localsLoader.js\`) (\`modules\` option is true): warnings 1`] = `Array []`;
diff --git a/test/__snapshots__/url-option.test.js.snap b/test/__snapshots__/url-option.test.js.snap
index 6015b392..a502cc7d 100644
--- a/test/__snapshots__/url-option.test.js.snap
+++ b/test/__snapshots__/url-option.test.js.snap
@@ -148,6 +148,7 @@ b {
.class {
background: green url(
+
) xyz;
}
@@ -194,7 +195,7 @@ exports[`url option false: module 1`] = `
exports.i(require(\\"-!../../../index.js??ref--4-0!./imported.css\\"), \\"\\");
// 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,\\\\\\");\\\\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,#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,\\\\\\") url('img.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,\\\\\\");\\\\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,#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 \\\\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,\\\\\\") url('img.png');\\\\n}\\\\n\\", \\"\\"]);
// exports
"
@@ -348,6 +349,7 @@ b {
.class {
background: green url(
+
) xyz;
}
@@ -395,7 +397,7 @@ exports = module.exports = require(\\"../../../lib/runtime/api.js\\")(false);
exports.i(require(\\"-!../../../index.js??ref--4-0!./imported.css\\"), \\"\\");
// module
-exports.push([module.id, \\".class {\\\\n background: url(\\" + escape(require(\\"./img.png\\")) + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png\\")) + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png\\")) + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png\\") + \\"#hash\\") + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png\\")) + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + escape(require(\\"./img.png\\")) + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + escape(require(\\"./img.png\\")) + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + escape(require(\\"./img.png\\")) + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + escape(require(\\"package/img.png\\")) + \\") url(\\" + escape(require(\\"./other-img.png\\")) + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + escape(require(\\"./img img.png\\")) + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + escape(require(\\"./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,\\\\\\");\\\\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,#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(\\" + escape(require(\\"./font.woff\\")) + \\") format('woff'),\\\\n url(\\" + escape(require(\\"./font.woff2\\")) + \\") format('woff2'),\\\\n url(\\" + escape(require(\\"./font.eot\\")) + \\") format('eot'),\\\\n url(\\" + escape(require(\\"package/font.ttf\\")) + \\") format('truetype'),\\\\n url(\\" + escape(require(\\"./font with spaces.eot\\")) + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + escape(require(\\"./font.svg\\") + \\"#svgFontName\\") + \\") format('svg'),\\\\n url(\\" + escape(require(\\"./font.woff2?foo=bar\\")) + \\") format('woff2'),\\\\n url(\\" + escape(require(\\"./font.eot\\") + \\"?#iefix\\") + \\") format('embedded-opentype'),\\\\n url(\\" + escape(require(\\"./font with spaces.eot\\") + \\"?#iefix\\") + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\" + escape(require(\\"./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(\\" + escape(require(\\"./img.png\\")) + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + escape(require(\\"./img1x.png\\")) + \\") 1x, url(\\" + escape(require(\\"./img2x.png\\")) + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + escape(require(\\"./img1x.png\\")) + \\") 1x, url(\\" + escape(require(\\"./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(\\" + escape(require(\\"./img.png?foo\\")) + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png?foo=bar\\")) + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png?foo=bar\\") + \\"#hash\\") + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png?foo=bar\\") + \\"#hash\\") + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png?\\")) + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + escape(require(\\"./img.png\\")) + \\") url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url(\\" + escape(require(\\"./img.png\\")) + \\");\\\\n}\\\\n\\", \\"\\"]);
+exports.push([module.id, \\".class {\\\\n background: url(\\" + escape(require(\\"./img.png\\")) + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png\\")) + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png\\")) + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png\\") + \\"#hash\\") + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png\\")) + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + escape(require(\\"./img.png\\")) + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + escape(require(\\"./img.png\\")) + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + escape(require(\\"./img.png\\")) + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + escape(require(\\"package/img.png\\")) + \\") url(\\" + escape(require(\\"./other-img.png\\")) + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + escape(require(\\"./img img.png\\")) + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + escape(require(\\"./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,\\\\\\");\\\\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,#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(\\" + escape(require(\\"./font.woff\\")) + \\") format('woff'),\\\\n url(\\" + escape(require(\\"./font.woff2\\")) + \\") format('woff2'),\\\\n url(\\" + escape(require(\\"./font.eot\\")) + \\") format('eot'),\\\\n url(\\" + escape(require(\\"package/font.ttf\\")) + \\") format('truetype'),\\\\n url(\\" + escape(require(\\"./font with spaces.eot\\")) + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + escape(require(\\"./font.svg\\") + \\"#svgFontName\\") + \\") format('svg'),\\\\n url(\\" + escape(require(\\"./font.woff2?foo=bar\\")) + \\") format('woff2'),\\\\n url(\\" + escape(require(\\"./font.eot\\") + \\"?#iefix\\") + \\") format('embedded-opentype'),\\\\n url(\\" + escape(require(\\"./font with spaces.eot\\") + \\"?#iefix\\") + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\" + escape(require(\\"./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(\\" + escape(require(\\"./img.png\\")) + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + escape(require(\\"./img1x.png\\")) + \\") 1x, url(\\" + escape(require(\\"./img2x.png\\")) + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + escape(require(\\"./img1x.png\\")) + \\") 1x, url(\\" + escape(require(\\"./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 \\\\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(\\" + escape(require(\\"./img.png?foo\\")) + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png?foo=bar\\")) + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png?foo=bar\\") + \\"#hash\\") + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png?foo=bar\\") + \\"#hash\\") + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + escape(require(\\"./img.png?\\")) + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + escape(require(\\"./img.png\\")) + \\") url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url(\\" + escape(require(\\"./img.png\\")) + \\");\\\\n}\\\\n\\", \\"\\"]);
// exports
"
diff --git a/test/fixtures/modules/tests-cases/media-2/file.css b/test/fixtures/modules/tests-cases/media-2/file.css
new file mode 100644
index 00000000..1f9fb325
--- /dev/null
+++ b/test/fixtures/modules/tests-cases/media-2/file.css
@@ -0,0 +1 @@
+@value small: (max-width: 599px);
diff --git a/test/fixtures/modules/tests-cases/media-2/source.css b/test/fixtures/modules/tests-cases/media-2/source.css
new file mode 100644
index 00000000..e284fc6f
--- /dev/null
+++ b/test/fixtures/modules/tests-cases/media-2/source.css
@@ -0,0 +1,6 @@
+@value small from './file.css';
+@media small {
+ .header {
+ box-shadow: 0 0 4px #1F4F7F;
+ }
+}
diff --git a/test/fixtures/modules/tests-cases/values-8/source.css b/test/fixtures/modules/tests-cases/values-8/source.css
new file mode 100644
index 00000000..a6ab62e0
--- /dev/null
+++ b/test/fixtures/modules/tests-cases/values-8/source.css
@@ -0,0 +1,6 @@
+@value shadow-color: rgba(0, 0, 0, 0.5);
+
+.shadow {
+ box-shadow: 0 10px 10px shadow-color,
+ 10px 0px 5px shadow-color;
+}
diff --git a/test/fixtures/modules/tests-cases/values-9/source.css b/test/fixtures/modules/tests-cases/values-9/source.css
new file mode 100644
index 00000000..91d95b5f
--- /dev/null
+++ b/test/fixtures/modules/tests-cases/values-9/source.css
@@ -0,0 +1,29 @@
+@value def: red;
+
+.foo1 {
+ prop: func(def);
+}
+
+.foo2 {
+ prop: func(10px def);
+}
+
+.foo3 {
+ prop: func(def 10px);
+}
+
+.foo4 {
+ prop: func(10px def 10px);
+}
+
+.foo5 {
+ prop: func(10px, def);
+}
+
+.foo6 {
+ prop: func(def, 10px);
+}
+
+.foo7 {
+ prop: func(10px, def, 10px);
+}
diff --git a/test/helpers.js b/test/helpers.js
index 49975daf..4bbe720e 100644
--- a/test/helpers.js
+++ b/test/helpers.js
@@ -47,6 +47,7 @@ function evaluated(output, modules, moduleId = 1) {
'modules/tests-cases/composes-2',
'modules/tests-cases/composes-multiple',
'modules/tests-cases/composes-with-importing',
+ 'modules/tests-cases/media-2',
].map((importedPath) =>
path.resolve(__dirname, `./fixtures/${importedPath}`, module)
);