diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1c2c52a8..2a5afa07 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,16 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+## [0.28.9](https://github.com/webpack-contrib/css-loader/compare/v0.28.8...v0.28.9) (2018-01-17)
+
+
+### Bug Fixes
+
+* ignore invalid URLs (`url()`) ([#663](https://github.com/webpack-contrib/css-loader/issues/663)) ([d1d8221](https://github.com/webpack-contrib/css-loader/commit/d1d8221))
+
+
+
## [0.28.8](https://github.com/webpack-contrib/css-loader/compare/v0.28.7...v0.28.8) (2018-01-05)
diff --git a/lib/url/escape.js b/lib/url/escape.js
index be9bd2c8..25074a6e 100644
--- a/lib/url/escape.js
+++ b/lib/url/escape.js
@@ -1,4 +1,7 @@
module.exports = function escape(url) {
+ if (typeof url !== 'string') {
+ return url
+ }
// If url is already wrapped in quotes, remove them
if (/^['"].*['"]$/.test(url)) {
url = url.slice(1, -1);
diff --git a/package-lock.json b/package-lock.json
index 13c93fee..363c1933 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "css-loader",
- "version": "0.28.8",
+ "version": "0.28.9",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -2941,11 +2941,11 @@
}
},
"postcss-modules-extract-imports": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz",
- "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz",
+ "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=",
"requires": {
- "postcss": "6.0.15"
+ "postcss": "6.0.16"
},
"dependencies": {
"ansi-styles": {
@@ -2982,9 +2982,9 @@
"integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
},
"postcss": {
- "version": "6.0.15",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.15.tgz",
- "integrity": "sha512-v/SpyMzLbtkmh45zUdaqLAaqXqzPdSrw8p4cQVO0/w6YiYfpj4k+Wkzhn68qk9br+H+0qfddhdPEVnbmBPfXVQ==",
+ "version": "6.0.16",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz",
+ "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==",
"requires": {
"chalk": "2.3.0",
"source-map": "0.6.1",
diff --git a/package.json b/package.json
index 308bf8ce..c29a246a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "css-loader",
- "version": "0.28.8",
+ "version": "0.28.9",
"author": "Tobias Koppers @sokra",
"license": "MIT",
"description": "css loader module for webpack",
@@ -21,7 +21,7 @@
"lodash.camelcase": "^4.3.0",
"object-assign": "^4.1.1",
"postcss": "^5.0.6",
- "postcss-modules-extract-imports": "^1.1.0",
+ "postcss-modules-extract-imports": "^1.2.0",
"postcss-modules-local-by-default": "^1.2.0",
"postcss-modules-scope": "^1.1.0",
"postcss-modules-values": "^1.3.0",
diff --git a/test/helpers.js b/test/helpers.js
index df0d14b6..5764527a 100644
--- a/test/helpers.js
+++ b/test/helpers.js
@@ -16,7 +16,7 @@ function getEvaluated(output, modules) {
return require("../lib/url/escape");
if(module.indexOf("-!/path/css-loader!") === 0)
module = module.substr(19);
- if(modules && modules[module])
+ if(modules && module in modules)
return modules[module];
return "{" + module + "}";
});
diff --git a/test/urlTest.js b/test/urlTest.js
index 4690319c..543a47fe 100644
--- a/test/urlTest.js
+++ b/test/urlTest.js
@@ -125,6 +125,12 @@ describe("url", function() {
test("module from url-loader", ".class { background: green url(module) xyz }", [
[1, ".class { background: green url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA) xyz }", ""]
], "", { './module': "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA" });
+ test("module from null-loader (empty object from webpack)", ".class { background: green url(module) xyz }", [
+ [1, ".class { background: green url([object Object]) xyz }", ""]
+ ], "", { './module': {} });
+ test("module is null", ".class { background: green url(module) xyz }", [
+ [1, ".class { background: green url(null) xyz }", ""]
+ ], "", { './module': null });
test("background img with url", ".class { background: green url( \"img.png\" ) xyz }", [
[1, ".class { background: green url( \"img.png\" ) xyz }", ""]