|
|
- /*
- 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;
|