From 0bacfac7ef4a06b4810fbc140875f7a038caa5bc Mon Sep 17 00:00:00 2001 From: Luke Bennett Date: Fri, 19 Jul 2019 12:22:09 +0100 Subject: [PATCH] fix(options): use filename mutated after instantiation (#430) --- src/index.js | 2 +- .../expected/mutated.css | 4 +++ .../moduleFilenameMutableFilename/index.js | 1 + .../moduleFilenameMutableFilename/style.css | 3 +++ .../webpack.config.js | 27 +++++++++++++++++++ 5 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 test/cases/moduleFilenameMutableFilename/expected/mutated.css create mode 100644 test/cases/moduleFilenameMutableFilename/index.js create mode 100644 test/cases/moduleFilenameMutableFilename/style.css create mode 100644 test/cases/moduleFilenameMutableFilename/webpack.config.js 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; + })(), + ], +};