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 }", ""]