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.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/dependencies/RequireEnsurePlugin.js b/node_modules/webpack/lib/dependencies/RequireEnsurePlugin.js
new file mode 100644
index 000000000..b8a66727d
--- /dev/null
+++ b/node_modules/webpack/lib/dependencies/RequireEnsurePlugin.js
@@ -0,0 +1,40 @@
+/*
+ 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;