diff --git a/package.json b/package.json index 975a6b8b..c2cf23fd 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "node": ">= 4.3 < 5.0.0 || >= 5.10" }, "peerDependencies": { - "webpack": "^3.0.0" + "webpack": "^3.1.0" }, "homepage": "http://github.com/webpack-contrib/extract-text-webpack-plugin", "repository": { diff --git a/src/index.js b/src/index.js index 6105992e..161f67bd 100644 --- a/src/index.js +++ b/src/index.js @@ -144,6 +144,7 @@ class ExtractTextPlugin { async.forEach(chunks, (chunk, callback) => { // eslint-disable-line no-shadow const extractedChunk = extractedChunks[chunks.indexOf(chunk)]; const shouldExtract = !!(options.allChunks || isInitialOrHasNoParents(chunk)); + chunk.sortModules(); async.forEach(chunk.mapModules((c) => { return c; }), (module, callback) => { // eslint-disable-line no-shadow, arrow-body-style let meta = module[NS]; if (meta && (!meta.options.id || meta.options.id === id)) { diff --git a/test/cases/chunk-modules-ordered-by-id/a.js b/test/cases/chunk-modules-ordered-by-id/a.js new file mode 100644 index 00000000..e72da909 --- /dev/null +++ b/test/cases/chunk-modules-ordered-by-id/a.js @@ -0,0 +1 @@ +require('./c.txt'); diff --git a/test/cases/chunk-modules-ordered-by-id/b.txt b/test/cases/chunk-modules-ordered-by-id/b.txt new file mode 100644 index 00000000..6b0f2b45 --- /dev/null +++ b/test/cases/chunk-modules-ordered-by-id/b.txt @@ -0,0 +1,3 @@ +.block { + color: tomato; +} diff --git a/test/cases/chunk-modules-ordered-by-id/c.txt b/test/cases/chunk-modules-ordered-by-id/c.txt new file mode 100644 index 00000000..b0fb26a3 --- /dev/null +++ b/test/cases/chunk-modules-ordered-by-id/c.txt @@ -0,0 +1,3 @@ +.App { + color: black; +} diff --git a/test/cases/chunk-modules-ordered-by-id/expected/file.css b/test/cases/chunk-modules-ordered-by-id/expected/file.css new file mode 100644 index 00000000..cf83e47d --- /dev/null +++ b/test/cases/chunk-modules-ordered-by-id/expected/file.css @@ -0,0 +1,6 @@ +.block { + color: tomato; +} +.App { + color: black; +} diff --git a/test/cases/chunk-modules-ordered-by-id/index.js b/test/cases/chunk-modules-ordered-by-id/index.js new file mode 100644 index 00000000..5a240449 --- /dev/null +++ b/test/cases/chunk-modules-ordered-by-id/index.js @@ -0,0 +1,2 @@ +require('./a'); +require('./b.txt'); diff --git a/test/cases/chunk-modules-ordered-by-id/webpack.config.js b/test/cases/chunk-modules-ordered-by-id/webpack.config.js new file mode 100644 index 00000000..0fbc2d5c --- /dev/null +++ b/test/cases/chunk-modules-ordered-by-id/webpack.config.js @@ -0,0 +1,7 @@ +var ExtractTextPlugin = require("../../../"); +module.exports = { + entry: "./index", + plugins: [ + new ExtractTextPlugin("file.css") + ] +};