aboutsummaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/dependencies/CommonJsPlugin.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2018-09-20 02:56:13 +0200
committerFlorian Dold <florian.dold@gmail.com>2018-09-20 02:56:13 +0200
commitbbff7403fbf46f9ad92240ac213df8d30ef31b64 (patch)
treec58400ec5124da1c7d56b01aea83309f80a56c3b /node_modules/webpack/lib/dependencies/CommonJsPlugin.js
parent003fb34971cf63466184351b4db5f7c67df4f444 (diff)
update packages
Diffstat (limited to 'node_modules/webpack/lib/dependencies/CommonJsPlugin.js')
-rw-r--r--node_modules/webpack/lib/dependencies/CommonJsPlugin.js247
1 files changed, 158 insertions, 89 deletions
diff --git a/node_modules/webpack/lib/dependencies/CommonJsPlugin.js b/node_modules/webpack/lib/dependencies/CommonJsPlugin.js
index 218cddb3d..6d441a872 100644
--- a/node_modules/webpack/lib/dependencies/CommonJsPlugin.js
+++ b/node_modules/webpack/lib/dependencies/CommonJsPlugin.js
@@ -1,89 +1,158 @@
-/*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
-*/
-"use strict";
-const ConstDependency = require("./ConstDependency");
-const CommonJsRequireDependency = require("./CommonJsRequireDependency");
-const CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
-const RequireResolveDependency = require("./RequireResolveDependency");
-const RequireResolveContextDependency = require("./RequireResolveContextDependency");
-const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency");
-const RequireHeaderDependency = require("./RequireHeaderDependency");
-
-const NullFactory = require("../NullFactory");
-
-const RequireResolveDependencyParserPlugin = require("./RequireResolveDependencyParserPlugin");
-const CommonJsRequireDependencyParserPlugin = require("./CommonJsRequireDependencyParserPlugin");
-
-const ParserHelpers = require("../ParserHelpers");
-
-class CommonJsPlugin {
- constructor(options) {
- this.options = options;
- }
-
- apply(compiler) {
- const options = this.options;
- compiler.plugin("compilation", (compilation, params) => {
- const normalModuleFactory = params.normalModuleFactory;
- const contextModuleFactory = params.contextModuleFactory;
-
- compilation.dependencyFactories.set(CommonJsRequireDependency, normalModuleFactory);
- compilation.dependencyTemplates.set(CommonJsRequireDependency, new CommonJsRequireDependency.Template());
-
- compilation.dependencyFactories.set(CommonJsRequireContextDependency, contextModuleFactory);
- compilation.dependencyTemplates.set(CommonJsRequireContextDependency, new CommonJsRequireContextDependency.Template());
-
- compilation.dependencyFactories.set(RequireResolveDependency, normalModuleFactory);
- compilation.dependencyTemplates.set(RequireResolveDependency, new RequireResolveDependency.Template());
-
- compilation.dependencyFactories.set(RequireResolveContextDependency, contextModuleFactory);
- compilation.dependencyTemplates.set(RequireResolveContextDependency, new RequireResolveContextDependency.Template());
-
- compilation.dependencyFactories.set(RequireResolveHeaderDependency, new NullFactory());
- compilation.dependencyTemplates.set(RequireResolveHeaderDependency, new RequireResolveHeaderDependency.Template());
-
- compilation.dependencyFactories.set(RequireHeaderDependency, new NullFactory());
- compilation.dependencyTemplates.set(RequireHeaderDependency, new RequireHeaderDependency.Template());
-
- params.normalModuleFactory.plugin("parser", (parser, parserOptions) => {
-
- if(typeof parserOptions.commonjs !== "undefined" && !parserOptions.commonjs)
- return;
-
- const requireExpressions = ["require", "require.resolve", "require.resolveWeak"];
- for(let expression of requireExpressions) {
- parser.plugin(`typeof ${expression}`, ParserHelpers.toConstantDependency(JSON.stringify("function")));
- parser.plugin(`evaluate typeof ${expression}`, ParserHelpers.evaluateToString("function"));
- parser.plugin(`evaluate Identifier ${expression}`, ParserHelpers.evaluateToIdentifier(expression, true));
- }
-
- parser.plugin("evaluate typeof module", ParserHelpers.evaluateToString("object"));
- parser.plugin("assign require", (expr) => {
- // to not leak to global "require", we need to define a local require here.
- const dep = new ConstDependency("var require;", 0);
- dep.loc = expr.loc;
- parser.state.current.addDependency(dep);
- parser.scope.definitions.push("require");
- return true;
- });
- parser.plugin("can-rename require", () => true);
- parser.plugin("rename require", (expr) => {
- // define the require variable. It's still undefined, but not "not defined".
- const dep = new ConstDependency("var require;", 0);
- dep.loc = expr.loc;
- parser.state.current.addDependency(dep);
- return false;
- });
- parser.plugin("typeof module", () => true);
- parser.plugin("evaluate typeof exports", ParserHelpers.evaluateToString("object"));
- parser.apply(
- new CommonJsRequireDependencyParserPlugin(options),
- new RequireResolveDependencyParserPlugin(options)
- );
- });
- });
- }
-}
-module.exports = CommonJsPlugin;
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+"use strict";
+const ConstDependency = require("./ConstDependency");
+const CommonJsRequireDependency = require("./CommonJsRequireDependency");
+const CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
+const RequireResolveDependency = require("./RequireResolveDependency");
+const RequireResolveContextDependency = require("./RequireResolveContextDependency");
+const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency");
+const RequireHeaderDependency = require("./RequireHeaderDependency");
+
+const NullFactory = require("../NullFactory");
+
+const RequireResolveDependencyParserPlugin = require("./RequireResolveDependencyParserPlugin");
+const CommonJsRequireDependencyParserPlugin = require("./CommonJsRequireDependencyParserPlugin");
+
+const ParserHelpers = require("../ParserHelpers");
+
+class CommonJsPlugin {
+ constructor(options) {
+ this.options = options;
+ }
+
+ apply(compiler) {
+ const options = this.options;
+ compiler.hooks.compilation.tap(
+ "CommonJsPlugin",
+ (compilation, { contextModuleFactory, normalModuleFactory }) => {
+ compilation.dependencyFactories.set(
+ CommonJsRequireDependency,
+ normalModuleFactory
+ );
+ compilation.dependencyTemplates.set(
+ CommonJsRequireDependency,
+ new CommonJsRequireDependency.Template()
+ );
+
+ compilation.dependencyFactories.set(
+ CommonJsRequireContextDependency,
+ contextModuleFactory
+ );
+ compilation.dependencyTemplates.set(
+ CommonJsRequireContextDependency,
+ new CommonJsRequireContextDependency.Template()
+ );
+
+ compilation.dependencyFactories.set(
+ RequireResolveDependency,
+ normalModuleFactory
+ );
+ compilation.dependencyTemplates.set(
+ RequireResolveDependency,
+ new RequireResolveDependency.Template()
+ );
+
+ compilation.dependencyFactories.set(
+ RequireResolveContextDependency,
+ contextModuleFactory
+ );
+ compilation.dependencyTemplates.set(
+ RequireResolveContextDependency,
+ new RequireResolveContextDependency.Template()
+ );
+
+ compilation.dependencyFactories.set(
+ RequireResolveHeaderDependency,
+ new NullFactory()
+ );
+ compilation.dependencyTemplates.set(
+ RequireResolveHeaderDependency,
+ new RequireResolveHeaderDependency.Template()
+ );
+
+ compilation.dependencyFactories.set(
+ RequireHeaderDependency,
+ new NullFactory()
+ );
+ compilation.dependencyTemplates.set(
+ RequireHeaderDependency,
+ new RequireHeaderDependency.Template()
+ );
+
+ const handler = (parser, parserOptions) => {
+ if (parserOptions.commonjs !== undefined && !parserOptions.commonjs)
+ return;
+
+ const requireExpressions = [
+ "require",
+ "require.resolve",
+ "require.resolveWeak"
+ ];
+ for (let expression of requireExpressions) {
+ parser.hooks.typeof
+ .for(expression)
+ .tap(
+ "CommonJsPlugin",
+ ParserHelpers.toConstantDependency(
+ parser,
+ JSON.stringify("function")
+ )
+ );
+ parser.hooks.evaluateTypeof
+ .for(expression)
+ .tap(
+ "CommonJsPlugin",
+ ParserHelpers.evaluateToString("function")
+ );
+ parser.hooks.evaluateIdentifier
+ .for(expression)
+ .tap(
+ "CommonJsPlugin",
+ ParserHelpers.evaluateToIdentifier(expression, true)
+ );
+ }
+
+ parser.hooks.evaluateTypeof
+ .for("module")
+ .tap("CommonJsPlugin", ParserHelpers.evaluateToString("object"));
+ parser.hooks.assign.for("require").tap("CommonJsPlugin", expr => {
+ // to not leak to global "require", we need to define a local require here.
+ const dep = new ConstDependency("var require;", 0);
+ dep.loc = expr.loc;
+ parser.state.current.addDependency(dep);
+ parser.scope.definitions.add("require");
+ return true;
+ });
+ parser.hooks.canRename
+ .for("require")
+ .tap("CommonJsPlugin", () => true);
+ parser.hooks.rename.for("require").tap("CommonJsPlugin", expr => {
+ // define the require variable. It's still undefined, but not "not defined".
+ const dep = new ConstDependency("var require;", 0);
+ dep.loc = expr.loc;
+ parser.state.current.addDependency(dep);
+ return false;
+ });
+ parser.hooks.typeof.for("module").tap("CommonJsPlugin", () => true);
+ parser.hooks.evaluateTypeof
+ .for("exports")
+ .tap("CommonJsPlugin", ParserHelpers.evaluateToString("object"));
+
+ new CommonJsRequireDependencyParserPlugin(options).apply(parser);
+ new RequireResolveDependencyParserPlugin(options).apply(parser);
+ };
+
+ normalModuleFactory.hooks.parser
+ .for("javascript/auto")
+ .tap("CommonJsPlugin", handler);
+ normalModuleFactory.hooks.parser
+ .for("javascript/dynamic")
+ .tap("CommonJsPlugin", handler);
+ }
+ );
+ }
+}
+module.exports = CommonJsPlugin;