diff --git a/src/loader.js b/src/loader.js index fb51cbba..e7e93600 100644 --- a/src/loader.js +++ b/src/loader.js @@ -361,7 +361,7 @@ function pitch(request) { } this.importModule( - `${this._module.matchResource || this.resourcePath}.webpack[javascript/auto]!=!!!${request}`, + `${this._module && this._module.matchResource ? this._module.matchResource : this.resourcePath}.webpack[javascript/auto]!=!!!${request}`, { layer: options.layer, publicPath: /** @type {string} */ (publicPathForExtract), diff --git a/test/cases/match-resource-url/expected/main.css b/test/cases/match-resource-url/expected/main.css index 35a7a05d..eab8bb32 100644 --- a/test/cases/match-resource-url/expected/main.css +++ b/test/cases/match-resource-url/expected/main.css @@ -2,3 +2,11 @@ body { background-image: url(static/icon.svg); } +body { + background-image: url(./icon.svg); +} + +body { + background-image: url(./icon.svg); +} + diff --git a/test/cases/match-resource-url/expected/static/icon.svg b/test/cases/match-resource-url/expected/static/icon.svg new file mode 100644 index 00000000..3b4bcabe --- /dev/null +++ b/test/cases/match-resource-url/expected/static/icon.svg @@ -0,0 +1 @@ + diff --git a/test/cases/match-resource-url/index.js b/test/cases/match-resource-url/index.js index 0bb9d665..c24e4b54 100644 --- a/test/cases/match-resource-url/index.js +++ b/test/cases/match-resource-url/index.js @@ -1 +1,3 @@ import "./virtual.css!=!./source.txt"; +import "./virtual.css?=query!=!./source.txt"; +import "./other.css?=query"; diff --git a/test/cases/match-resource-url/other.css b/test/cases/match-resource-url/other.css new file mode 100644 index 00000000..8f8d8336 --- /dev/null +++ b/test/cases/match-resource-url/other.css @@ -0,0 +1,3 @@ +body { + background-image: url(./icon.svg); +} diff --git a/test/cases/match-resource-url/webpack.config.js b/test/cases/match-resource-url/webpack.config.js index c9cc91c2..3e45a4ca 100644 --- a/test/cases/match-resource-url/webpack.config.js +++ b/test/cases/match-resource-url/webpack.config.js @@ -6,8 +6,22 @@ module.exports = { rules: [ { test: /\.css$/, + resourceQuery: { not: /query/ }, use: [Self.loader, "css-loader"], }, + { + test: /\.css$/, + resourceQuery: /query/, + use: [ + Self.loader, + { + loader: "css-loader", + options: { + url: false, + }, + }, + ], + }, { test: /\.svg$/, issuer: /\.css$/,