diff --git a/src/index.js b/src/index.js index 92a6aaa7..bbe672a4 100644 --- a/src/index.js +++ b/src/index.js @@ -124,7 +124,7 @@ class MiniCssExtractPlugin { this.options = Object.assign( { filename: DEFAULT_FILENAME, - moduleFilename: () => options.filename || DEFAULT_FILENAME, + moduleFilename: () => this.options.filename || DEFAULT_FILENAME, ignoreOrder: false, }, options diff --git a/test/cases/moduleFilenameMutableFilename/expected/mutated.css b/test/cases/moduleFilenameMutableFilename/expected/mutated.css new file mode 100644 index 00000000..b9f60c7d --- /dev/null +++ b/test/cases/moduleFilenameMutableFilename/expected/mutated.css @@ -0,0 +1,4 @@ +body { + background: palegreen; +} + diff --git a/test/cases/moduleFilenameMutableFilename/index.js b/test/cases/moduleFilenameMutableFilename/index.js new file mode 100644 index 00000000..aa3357bf --- /dev/null +++ b/test/cases/moduleFilenameMutableFilename/index.js @@ -0,0 +1 @@ +import './style.css'; diff --git a/test/cases/moduleFilenameMutableFilename/style.css b/test/cases/moduleFilenameMutableFilename/style.css new file mode 100644 index 00000000..9373d1a0 --- /dev/null +++ b/test/cases/moduleFilenameMutableFilename/style.css @@ -0,0 +1,3 @@ +body { + background: palegreen; +} diff --git a/test/cases/moduleFilenameMutableFilename/webpack.config.js b/test/cases/moduleFilenameMutableFilename/webpack.config.js new file mode 100644 index 00000000..cf8cfbe2 --- /dev/null +++ b/test/cases/moduleFilenameMutableFilename/webpack.config.js @@ -0,0 +1,27 @@ +const Self = require('../../../'); + +module.exports = { + entry: { + main: './index.js', + }, + module: { + rules: [ + { + test: /\.css$/, + use: [Self.loader, 'css-loader'], + }, + ], + }, + output: { + filename: '[name].js', + }, + plugins: [ + (() => { + const self = new Self({ filename: 'constructed.css' }); + + self.options.filename = 'mutated.css'; + + return self; + })(), + ], +};