diff options
Diffstat (limited to 'node_modules/webpack/lib/dependencies/RequireIncludePlugin.js')
-rw-r--r-- | node_modules/webpack/lib/dependencies/RequireIncludePlugin.js | 94 |
1 files changed, 61 insertions, 33 deletions
diff --git a/node_modules/webpack/lib/dependencies/RequireIncludePlugin.js b/node_modules/webpack/lib/dependencies/RequireIncludePlugin.js index f80e9b91f..e7d535bc3 100644 --- a/node_modules/webpack/lib/dependencies/RequireIncludePlugin.js +++ b/node_modules/webpack/lib/dependencies/RequireIncludePlugin.js @@ -1,33 +1,61 @@ -/*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
-*/
-"use strict";
-
-const RequireIncludeDependency = require("./RequireIncludeDependency");
-const RequireIncludeDependencyParserPlugin = require("./RequireIncludeDependencyParserPlugin");
-
-const ParserHelpers = require("../ParserHelpers");
-
-class RequireIncludePlugin {
-
- apply(compiler) {
- compiler.plugin("compilation", (compilation, params) => {
- const normalModuleFactory = params.normalModuleFactory;
-
- compilation.dependencyFactories.set(RequireIncludeDependency, normalModuleFactory);
- compilation.dependencyTemplates.set(RequireIncludeDependency, new RequireIncludeDependency.Template());
-
- params.normalModuleFactory.plugin("parser", (parser, parserOptions) => {
-
- if(typeof parserOptions.requireInclude !== "undefined" && !parserOptions.requireInclude)
- return;
-
- parser.apply(new RequireIncludeDependencyParserPlugin());
- parser.plugin("evaluate typeof require.include", ParserHelpers.evaluateToString("function"));
- parser.plugin("typeof require.include", ParserHelpers.toConstantDependency(JSON.stringify("function")));
- });
- });
- }
-}
-module.exports = RequireIncludePlugin;
+/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; + +const RequireIncludeDependency = require("./RequireIncludeDependency"); +const RequireIncludeDependencyParserPlugin = require("./RequireIncludeDependencyParserPlugin"); + +const ParserHelpers = require("../ParserHelpers"); + +class RequireIncludePlugin { + apply(compiler) { + compiler.hooks.compilation.tap( + "RequireIncludePlugin", + (compilation, { normalModuleFactory }) => { + compilation.dependencyFactories.set( + RequireIncludeDependency, + normalModuleFactory + ); + compilation.dependencyTemplates.set( + RequireIncludeDependency, + new RequireIncludeDependency.Template() + ); + + const handler = (parser, parserOptions) => { + if ( + parserOptions.requireInclude !== undefined && + !parserOptions.requireInclude + ) + return; + + new RequireIncludeDependencyParserPlugin().apply(parser); + parser.hooks.evaluateTypeof + .for("require.include") + .tap( + "RequireIncludePlugin", + ParserHelpers.evaluateToString("function") + ); + parser.hooks.typeof + .for("require.include") + .tap( + "RequireIncludePlugin", + ParserHelpers.toConstantDependency( + parser, + JSON.stringify("function") + ) + ); + }; + + normalModuleFactory.hooks.parser + .for("javascript/auto") + .tap("RequireIncludePlugin", handler); + normalModuleFactory.hooks.parser + .for("javascript/dynamic") + .tap("RequireIncludePlugin", handler); + } + ); + } +} +module.exports = RequireIncludePlugin; |