From bbff7403fbf46f9ad92240ac213df8d30ef31b64 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 20 Sep 2018 02:56:13 +0200 Subject: update packages --- node_modules/webpack/lib/LibManifestPlugin.js | 149 +++++++++++++++----------- 1 file changed, 86 insertions(+), 63 deletions(-) (limited to 'node_modules/webpack/lib/LibManifestPlugin.js') diff --git a/node_modules/webpack/lib/LibManifestPlugin.js b/node_modules/webpack/lib/LibManifestPlugin.js index dc2f0ae14..54dbf10a0 100644 --- a/node_modules/webpack/lib/LibManifestPlugin.js +++ b/node_modules/webpack/lib/LibManifestPlugin.js @@ -1,63 +1,86 @@ -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -"use strict"; - -const path = require("path"); -const asyncLib = require("async"); - -class LibManifestPlugin { - constructor(options) { - this.options = options; - } - - apply(compiler) { - compiler.plugin("emit", (compilation, callback) => { - asyncLib.forEach(compilation.chunks, (chunk, callback) => { - if(!chunk.isInitial()) { - callback(); - return; - } - const targetPath = compilation.getPath(this.options.path, { - hash: compilation.hash, - chunk - }); - const name = this.options.name && compilation.getPath(this.options.name, { - hash: compilation.hash, - chunk - }); - const manifest = { - name, - type: this.options.type, - content: chunk.mapModules(module => { - if(module.libIdent) { - const ident = module.libIdent({ - context: this.options.context || compiler.options.context - }); - if(ident) { - return { - ident, - data: { - id: module.id, - meta: module.meta, - exports: Array.isArray(module.providedExports) ? module.providedExports : undefined - } - }; - } - } - }).filter(Boolean).reduce((obj, item) => { - obj[item.ident] = item.data; - return obj; - }, Object.create(null)) - }; - const content = new Buffer(JSON.stringify(manifest), "utf8"); //eslint-disable-line - compiler.outputFileSystem.mkdirp(path.dirname(targetPath), err => { - if(err) return callback(err); - compiler.outputFileSystem.writeFile(targetPath, content, callback); - }); - }, callback); - }); - } -} -module.exports = LibManifestPlugin; +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; + +const path = require("path"); +const asyncLib = require("neo-async"); +const SingleEntryDependency = require("./dependencies/SingleEntryDependency"); + +class LibManifestPlugin { + constructor(options) { + this.options = options; + } + + apply(compiler) { + compiler.hooks.emit.tapAsync( + "LibManifestPlugin", + (compilation, callback) => { + asyncLib.forEach( + compilation.chunks, + (chunk, callback) => { + if (!chunk.isOnlyInitial()) { + callback(); + return; + } + const targetPath = compilation.getPath(this.options.path, { + hash: compilation.hash, + chunk + }); + const name = + this.options.name && + compilation.getPath(this.options.name, { + hash: compilation.hash, + chunk + }); + const manifest = { + name, + type: this.options.type, + content: Array.from(chunk.modulesIterable, module => { + if ( + this.options.entryOnly && + !module.reasons.some( + r => r.dependency instanceof SingleEntryDependency + ) + ) { + return; + } + if (module.libIdent) { + const ident = module.libIdent({ + context: this.options.context || compiler.options.context + }); + if (ident) { + return { + ident, + data: { + id: module.id, + buildMeta: module.buildMeta + } + }; + } + } + }) + .filter(Boolean) + .reduce((obj, item) => { + obj[item.ident] = item.data; + return obj; + }, Object.create(null)) + }; + const content = Buffer.from(JSON.stringify(manifest), "utf8"); + compiler.outputFileSystem.mkdirp(path.dirname(targetPath), err => { + if (err) return callback(err); + compiler.outputFileSystem.writeFile( + targetPath, + content, + callback + ); + }); + }, + callback + ); + } + ); + } +} +module.exports = LibManifestPlugin; -- cgit v1.2.3