From de98e0b232509d5f40c135d540a70e415272ff85 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 3 May 2017 15:35:00 +0200 Subject: node_modules --- .../lib/optimize/ChunkModuleIdRangePlugin.js | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 node_modules/webpack/lib/optimize/ChunkModuleIdRangePlugin.js (limited to 'node_modules/webpack/lib/optimize/ChunkModuleIdRangePlugin.js') diff --git a/node_modules/webpack/lib/optimize/ChunkModuleIdRangePlugin.js b/node_modules/webpack/lib/optimize/ChunkModuleIdRangePlugin.js new file mode 100644 index 000000000..8166fc315 --- /dev/null +++ b/node_modules/webpack/lib/optimize/ChunkModuleIdRangePlugin.js @@ -0,0 +1,55 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; +class ChunkModuleIdRangePlugin { + constructor(options) { + this.options = options; + } + apply(compiler) { + const options = this.options; + compiler.plugin("compilation", (compilation) => { + compilation.plugin("module-ids", (modules) => { + const chunk = this.chunks.filter((chunk) => { + return chunk.name === options.name; + })[0]; + if(!chunk) throw new Error("ChunkModuleIdRangePlugin: Chunk with name '" + options.name + "' was not found"); + let currentId = options.start; + let chunkModules; + if(options.order) { + chunkModules = chunk.modules.slice(); + switch(options.order) { + case "index": + chunkModules.sort((a, b) => { + return a.index - b.index; + }); + break; + case "index2": + chunkModules.sort((a, b) => { + return a.index2 - b.index2; + }); + break; + default: + throw new Error("ChunkModuleIdRangePlugin: unexpected value of order"); + } + + } else { + chunkModules = modules.filter((m) => { + return m.chunks.indexOf(chunk) >= 0; + }); + } + + for(let i = 0; i < chunkModules.length; i++) { + const m = chunkModules[i]; + if(m.id === null) { + m.id = currentId++; + } + if(options.end && currentId > options.end) + break; + } + }); + }); + } +} +module.exports = ChunkModuleIdRangePlugin; -- cgit v1.2.3