You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/* MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra */ "use strict"; const SingleEntryDependency = require("./dependencies/SingleEntryDependency");
/** @typedef {import("./Compiler")} Compiler */
class SingleEntryPlugin { /** * An entry plugin which will handle * creation of the SingleEntryDependency * * @param {string} context context path * @param {string} entry entry path * @param {string} name entry key name */ constructor(context, entry, name) { this.context = context; this.entry = entry; this.name = name; }
/** * @param {Compiler} compiler the compiler instance * @returns {void} */ apply(compiler) { compiler.hooks.compilation.tap( "SingleEntryPlugin", (compilation, { normalModuleFactory }) => { compilation.dependencyFactories.set( SingleEntryDependency, normalModuleFactory ); } );
compiler.hooks.make.tapAsync( "SingleEntryPlugin", (compilation, callback) => { const { entry, name, context } = this;
const dep = SingleEntryPlugin.createDependency(entry, name); compilation.addEntry(context, dep, name, callback); } ); }
/** * @param {string} entry entry request * @param {string} name entry name * @returns {SingleEntryDependency} the dependency */ static createDependency(entry, name) { const dep = new SingleEntryDependency(entry); dep.loc = { name }; return dep; } }
module.exports = SingleEntryPlugin;
|