aboutsummaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/MultiEntryPlugin.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/webpack/lib/MultiEntryPlugin.js')
-rw-r--r--node_modules/webpack/lib/MultiEntryPlugin.js119
1 files changed, 80 insertions, 39 deletions
diff --git a/node_modules/webpack/lib/MultiEntryPlugin.js b/node_modules/webpack/lib/MultiEntryPlugin.js
index e7ca65189..b38a82399 100644
--- a/node_modules/webpack/lib/MultiEntryPlugin.js
+++ b/node_modules/webpack/lib/MultiEntryPlugin.js
@@ -1,39 +1,80 @@
-/*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
-*/
-"use strict";
-
-const MultiEntryDependency = require("./dependencies/MultiEntryDependency");
-const SingleEntryDependency = require("./dependencies/SingleEntryDependency");
-const MultiModuleFactory = require("./MultiModuleFactory");
-
-module.exports = class MultiEntryPlugin {
- constructor(context, entries, name) {
- this.context = context;
- this.entries = entries;
- this.name = name;
- }
-
- apply(compiler) {
- compiler.plugin("compilation", (compilation, params) => {
- const multiModuleFactory = new MultiModuleFactory();
- const normalModuleFactory = params.normalModuleFactory;
-
- compilation.dependencyFactories.set(MultiEntryDependency, multiModuleFactory);
- compilation.dependencyFactories.set(SingleEntryDependency, normalModuleFactory);
- });
- compiler.plugin("make", (compilation, callback) => {
- const dep = MultiEntryPlugin.createDependency(this.entries, this.name);
- compilation.addEntry(this.context, dep, this.name, callback);
- });
- }
-
- static createDependency(entries, name) {
- return new MultiEntryDependency(entries.map((e, idx) => {
- const dep = new SingleEntryDependency(e);
- dep.loc = name + ":" + (100000 + idx);
- return dep;
- }), name);
- }
-};
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+"use strict";
+
+const MultiEntryDependency = require("./dependencies/MultiEntryDependency");
+const SingleEntryDependency = require("./dependencies/SingleEntryDependency");
+const MultiModuleFactory = require("./MultiModuleFactory");
+
+/** @typedef {import("./Compiler")} Compiler */
+
+class MultiEntryPlugin {
+ /**
+ * The MultiEntryPlugin is invoked whenever this.options.entry value is an array of paths
+ * @param {string} context context path
+ * @param {string[]} entries array of entry paths
+ * @param {string} name entry key name
+ */
+ constructor(context, entries, name) {
+ this.context = context;
+ this.entries = entries;
+ this.name = name;
+ }
+
+ /**
+ * @param {Compiler} compiler the compiler instance
+ * @returns {void}
+ */
+ apply(compiler) {
+ compiler.hooks.compilation.tap(
+ "MultiEntryPlugin",
+ (compilation, { normalModuleFactory }) => {
+ const multiModuleFactory = new MultiModuleFactory();
+
+ compilation.dependencyFactories.set(
+ MultiEntryDependency,
+ multiModuleFactory
+ );
+ compilation.dependencyFactories.set(
+ SingleEntryDependency,
+ normalModuleFactory
+ );
+ }
+ );
+
+ compiler.hooks.make.tapAsync(
+ "MultiEntryPlugin",
+ (compilation, callback) => {
+ const { context, entries, name } = this;
+
+ const dep = MultiEntryPlugin.createDependency(entries, name);
+ compilation.addEntry(context, dep, name, callback);
+ }
+ );
+ }
+
+ /**
+ * @param {string[]} entries each entry path string
+ * @param {string} name name of the entry
+ * @returns {MultiEntryDependency} returns a constructed Dependency
+ */
+ static createDependency(entries, name) {
+ return new MultiEntryDependency(
+ entries.map((e, idx) => {
+ const dep = new SingleEntryDependency(e);
+ // Because entrypoints are not dependencies found in an
+ // existing module, we give it a synthetic id
+ dep.loc = {
+ name,
+ index: idx
+ };
+ return dep;
+ }),
+ name
+ );
+ }
+}
+
+module.exports = MultiEntryPlugin;