| /* |
| MIT License http://www.opensource.org/licenses/mit-license.php |
| Author Tobias Koppers @sokra |
| */ |
| "use strict"; |
| |
| class FlagInitialModulesAsUsedPlugin { |
| constructor(explanation) { |
| this.explanation = explanation; |
| } |
| |
| apply(compiler) { |
| compiler.hooks.compilation.tap( |
| "FlagInitialModulesAsUsedPlugin", |
| compilation => { |
| compilation.hooks.afterOptimizeChunks.tap( |
| "FlagInitialModulesAsUsedPlugin", |
| chunks => { |
| for (const chunk of chunks) { |
| if (!chunk.isOnlyInitial()) { |
| return; |
| } |
| for (const module of chunk.modulesIterable) { |
| module.used = true; |
| module.usedExports = true; |
| module.addReason(null, null, this.explanation); |
| } |
| } |
| } |
| ); |
| } |
| ); |
| } |
| } |
| |
| module.exports = FlagInitialModulesAsUsedPlugin; |