diff --git a/test/cases/asset-modules-salted/expected/c9e192c015437a21dea1.svg b/test/cases/asset-modules-salted/expected/c9e192c015437a21dea1.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/asset-modules-salted/expected/c9e192c015437a21dea1.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/asset-modules-salted/expected/main.css b/test/cases/asset-modules-salted/expected/main.css new file mode 100644 index 00000000..6e5140dd --- /dev/null +++ b/test/cases/asset-modules-salted/expected/main.css @@ -0,0 +1,5 @@ +body { + background: red; + background-image: url(c9e192c015437a21dea1.svg); +} + diff --git a/test/cases/asset-modules-salted/index.js b/test/cases/asset-modules-salted/index.js new file mode 100644 index 00000000..aa3357bf --- /dev/null +++ b/test/cases/asset-modules-salted/index.js @@ -0,0 +1 @@ +import './style.css'; diff --git a/test/cases/asset-modules-salted/react.svg b/test/cases/asset-modules-salted/react.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/asset-modules-salted/react.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/asset-modules-salted/style.css b/test/cases/asset-modules-salted/style.css new file mode 100644 index 00000000..52c2b3e4 --- /dev/null +++ b/test/cases/asset-modules-salted/style.css @@ -0,0 +1,4 @@ +body { + background: red; + background-image: url(./react.svg); +} diff --git a/test/cases/asset-modules-salted/test.filter.js b/test/cases/asset-modules-salted/test.filter.js new file mode 100644 index 00000000..042a0256 --- /dev/null +++ b/test/cases/asset-modules-salted/test.filter.js @@ -0,0 +1,3 @@ +const webpack = require('webpack'); + +module.exports = () => webpack.version[0] !== '4'; diff --git a/test/cases/asset-modules-salted/webpack.config.js b/test/cases/asset-modules-salted/webpack.config.js new file mode 100644 index 00000000..27119c4f --- /dev/null +++ b/test/cases/asset-modules-salted/webpack.config.js @@ -0,0 +1,36 @@ +import Self from '../../../src'; + +/** + * Bug report: + * Setting output.hashSalt together with optimization.realContentHash (e.g. prod mode) + * results in wrong urls for asset-modules. + */ + +module.exports = { + entry: './index.js', + output: { + // if salt is omitted, the realContentHash value works in css + hashSalt: 'i break things', + }, + optimization: { + // if this is disabled, filenames match even with hashSalt + realContentHash: true, + }, + module: { + rules: [ + { + test: /\.css$/, + use: [Self.loader, 'css-loader'], + }, + { + test: /\.svg$/, + type: 'asset/resource', + }, + ], + }, + plugins: [ + new Self({ + filename: '[name].css', + }), + ], +};