aboutsummaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/dependencies/RequireEnsurePlugin.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/webpack/lib/dependencies/RequireEnsurePlugin.js')
-rw-r--r--node_modules/webpack/lib/dependencies/RequireEnsurePlugin.js114
1 files changed, 74 insertions, 40 deletions
diff --git a/node_modules/webpack/lib/dependencies/RequireEnsurePlugin.js b/node_modules/webpack/lib/dependencies/RequireEnsurePlugin.js
index b8a66727d..c818e91bc 100644
--- a/node_modules/webpack/lib/dependencies/RequireEnsurePlugin.js
+++ b/node_modules/webpack/lib/dependencies/RequireEnsurePlugin.js
@@ -1,40 +1,74 @@
-/*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
-*/
-"use strict";
-
-const RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
-const RequireEnsureDependency = require("./RequireEnsureDependency");
-
-const NullFactory = require("../NullFactory");
-
-const RequireEnsureDependenciesBlockParserPlugin = require("./RequireEnsureDependenciesBlockParserPlugin");
-
-const ParserHelpers = require("../ParserHelpers");
-
-class RequireEnsurePlugin {
-
- apply(compiler) {
- compiler.plugin("compilation", (compilation, params) => {
- const normalModuleFactory = params.normalModuleFactory;
-
- compilation.dependencyFactories.set(RequireEnsureItemDependency, normalModuleFactory);
- compilation.dependencyTemplates.set(RequireEnsureItemDependency, new RequireEnsureItemDependency.Template());
-
- compilation.dependencyFactories.set(RequireEnsureDependency, new NullFactory());
- compilation.dependencyTemplates.set(RequireEnsureDependency, new RequireEnsureDependency.Template());
-
- params.normalModuleFactory.plugin("parser", (parser, parserOptions) => {
-
- if(typeof parserOptions.requireEnsure !== "undefined" && !parserOptions.requireEnsure)
- return;
-
- parser.apply(new RequireEnsureDependenciesBlockParserPlugin());
- parser.plugin("evaluate typeof require.ensure", ParserHelpers.evaluateToString("function"));
- parser.plugin("typeof require.ensure", ParserHelpers.toConstantDependency(JSON.stringify("function")));
- });
- });
- }
-}
-module.exports = RequireEnsurePlugin;
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+"use strict";
+
+const RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
+const RequireEnsureDependency = require("./RequireEnsureDependency");
+
+const NullFactory = require("../NullFactory");
+
+const RequireEnsureDependenciesBlockParserPlugin = require("./RequireEnsureDependenciesBlockParserPlugin");
+
+const ParserHelpers = require("../ParserHelpers");
+
+class RequireEnsurePlugin {
+ apply(compiler) {
+ compiler.hooks.compilation.tap(
+ "RequireEnsurePlugin",
+ (compilation, { normalModuleFactory }) => {
+ compilation.dependencyFactories.set(
+ RequireEnsureItemDependency,
+ normalModuleFactory
+ );
+ compilation.dependencyTemplates.set(
+ RequireEnsureItemDependency,
+ new RequireEnsureItemDependency.Template()
+ );
+
+ compilation.dependencyFactories.set(
+ RequireEnsureDependency,
+ new NullFactory()
+ );
+ compilation.dependencyTemplates.set(
+ RequireEnsureDependency,
+ new RequireEnsureDependency.Template()
+ );
+
+ const handler = (parser, parserOptions) => {
+ if (
+ parserOptions.requireEnsure !== undefined &&
+ !parserOptions.requireEnsure
+ )
+ return;
+
+ new RequireEnsureDependenciesBlockParserPlugin().apply(parser);
+ parser.hooks.evaluateTypeof
+ .for("require.ensure")
+ .tap(
+ "RequireEnsurePlugin",
+ ParserHelpers.evaluateToString("function")
+ );
+ parser.hooks.typeof
+ .for("require.ensure")
+ .tap(
+ "RequireEnsurePlugin",
+ ParserHelpers.toConstantDependency(
+ parser,
+ JSON.stringify("function")
+ )
+ );
+ };
+
+ normalModuleFactory.hooks.parser
+ .for("javascript/auto")
+ .tap("RequireEnsurePlugin", handler);
+ normalModuleFactory.hooks.parser
+ .for("javascript/dynamic")
+ .tap("RequireEnsurePlugin", handler);
+ }
+ );
+ }
+}
+module.exports = RequireEnsurePlugin;