mirror of https://github.com/webpack/webpack.git
move more ConstDependencies to `toConstantDependency`
This commit is contained in:
parent
b0665075da
commit
965b7261fa
|
|
@ -37,13 +37,7 @@ class APIPlugin {
|
||||||
|
|
||||||
params.normalModuleFactory.plugin("parser", parser => {
|
params.normalModuleFactory.plugin("parser", parser => {
|
||||||
Object.keys(REPLACEMENTS).forEach(key => {
|
Object.keys(REPLACEMENTS).forEach(key => {
|
||||||
parser.plugin(`expression ${key}`, expr => {
|
parser.plugin(`expression ${key}`, ParserHelpers.toConstantDependency(REPLACEMENTS[key]));
|
||||||
const dep = new ConstDependency(REPLACEMENTS[key], expr.range);
|
|
||||||
dep.loc = expr.loc;
|
|
||||||
parser.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
|
|
||||||
parser.plugin(`evaluate typeof ${key}`, ParserHelpers.evaluateToString(REPLACEMENT_TYPES[key]));
|
parser.plugin(`evaluate typeof ${key}`, ParserHelpers.evaluateToString(REPLACEMENT_TYPES[key]));
|
||||||
});
|
});
|
||||||
IGNORES.forEach(key => {
|
IGNORES.forEach(key => {
|
||||||
|
|
|
||||||
|
|
@ -73,12 +73,7 @@ class DefinePlugin {
|
||||||
res.setRange(expr.range);
|
res.setRange(expr.range);
|
||||||
return res;
|
return res;
|
||||||
});
|
});
|
||||||
parser.plugin("expression " + key, (expr) => {
|
parser.plugin("expression " + key, ParserHelpers.toConstantDependency(code));
|
||||||
let dep = new ConstDependency(code, expr.range);
|
|
||||||
dep.loc = expr.loc;
|
|
||||||
parser.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
let typeofCode = isTypeof ? code : "typeof (" + code + ")";
|
let typeofCode = isTypeof ? code : "typeof (" + code + ")";
|
||||||
parser.plugin("evaluate typeof " + key, (expr) => {
|
parser.plugin("evaluate typeof " + key, (expr) => {
|
||||||
|
|
@ -91,10 +86,7 @@ class DefinePlugin {
|
||||||
parser.plugin("typeof " + key, (expr) => {
|
parser.plugin("typeof " + key, (expr) => {
|
||||||
let res = parser.evaluate(typeofCode);
|
let res = parser.evaluate(typeofCode);
|
||||||
if(!res.isString()) return;
|
if(!res.isString()) return;
|
||||||
let dep = new ConstDependency(JSON.stringify(res.string), expr.range);
|
return ParserHelpers.toConstantDependency(JSON.stringify(res.string)).bind(parser)(expr);
|
||||||
dep.loc = expr.loc;
|
|
||||||
parser.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -103,18 +95,8 @@ class DefinePlugin {
|
||||||
parser.plugin("can-rename " + key, () => true);
|
parser.plugin("can-rename " + key, () => true);
|
||||||
parser.plugin("evaluate Identifier " + key, (expr) => new BasicEvaluatedExpression().setRange(expr.range));
|
parser.plugin("evaluate Identifier " + key, (expr) => new BasicEvaluatedExpression().setRange(expr.range));
|
||||||
parser.plugin("evaluate typeof " + key, ParserHelpers.evaluateToString("object"));
|
parser.plugin("evaluate typeof " + key, ParserHelpers.evaluateToString("object"));
|
||||||
parser.plugin("expression " + key, (expr) => {
|
parser.plugin("expression " + key, ParserHelpers.toConstantDependency(code));
|
||||||
let dep = new ConstDependency(code, expr.range);
|
parser.plugin("typeof " + key, ParserHelpers.toConstantDependency(JSON.stringify("object")));
|
||||||
dep.loc = expr.loc;
|
|
||||||
parser.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
parser.plugin("typeof " + key, (expr) => {
|
|
||||||
let dep = new ConstDependency("\"object\"", expr.range);
|
|
||||||
dep.loc = expr.loc;
|
|
||||||
parser.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -34,12 +34,7 @@ ExtendedAPIPlugin.prototype.apply = function(compiler) {
|
||||||
|
|
||||||
params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
|
params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
|
||||||
Object.keys(REPLACEMENTS).forEach(function(key) {
|
Object.keys(REPLACEMENTS).forEach(function(key) {
|
||||||
parser.plugin("expression " + key, function(expr) {
|
parser.plugin("expression " + key, ParserHelpers.toConstantDependency(REPLACEMENTS[key]));
|
||||||
var dep = new ConstDependency(REPLACEMENTS[key], expr.range);
|
|
||||||
dep.loc = expr.loc;
|
|
||||||
this.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
parser.plugin("evaluate typeof " + key, ParserHelpers.evaluateToString(REPLACEMENT_TYPES[key]));
|
parser.plugin("evaluate typeof " + key, ParserHelpers.evaluateToString(REPLACEMENT_TYPES[key]));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -197,12 +197,7 @@ HotModuleReplacementPlugin.prototype.apply = function(compiler) {
|
||||||
});
|
});
|
||||||
|
|
||||||
params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
|
params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
|
||||||
parser.plugin("expression __webpack_hash__", function(expr) {
|
parser.plugin("expression __webpack_hash__", ParserHelpers.toConstantDependency("__webpack_require__.h()"));
|
||||||
var dep = new ConstDependency("__webpack_require__.h()", expr.range);
|
|
||||||
dep.loc = expr.loc;
|
|
||||||
this.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
parser.plugin("evaluate typeof __webpack_hash__", ParserHelpers.evaluateToString("string"));
|
parser.plugin("evaluate typeof __webpack_hash__", ParserHelpers.evaluateToString("string"));
|
||||||
parser.plugin("evaluate Identifier module.hot", function(expr) {
|
parser.plugin("evaluate Identifier module.hot", function(expr) {
|
||||||
return new BasicEvaluatedExpression()
|
return new BasicEvaluatedExpression()
|
||||||
|
|
|
||||||
|
|
@ -72,28 +72,13 @@ NodeStuffPlugin.prototype.apply = function(compiler) {
|
||||||
res.setRange(expr.range);
|
res.setRange(expr.range);
|
||||||
return res;
|
return res;
|
||||||
});
|
});
|
||||||
parser.plugin("expression require.main", function(expr) {
|
parser.plugin("expression require.main", ParserHelpers.toConstantDependency("__webpack_require__.c[__webpack_require__.s]"));
|
||||||
var dep = new ConstDependency("__webpack_require__.c[__webpack_require__.s]", expr.range);
|
|
||||||
dep.loc = expr.loc;
|
|
||||||
this.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
parser.plugin(
|
parser.plugin(
|
||||||
"expression require.extensions",
|
"expression require.extensions",
|
||||||
ParserHelpers.expressionIsUnsupported("require.extensions is not supported by webpack. Use a loader instead.")
|
ParserHelpers.expressionIsUnsupported("require.extensions is not supported by webpack. Use a loader instead.")
|
||||||
);
|
);
|
||||||
parser.plugin("expression module.loaded", function(expr) {
|
parser.plugin("expression module.loaded", ParserHelpers.toConstantDependency("module.l"));
|
||||||
var dep = new ConstDependency("module.l", expr.range);
|
parser.plugin("expression module.id", ParserHelpers.toConstantDependency("module.i"));
|
||||||
dep.loc = expr.loc;
|
|
||||||
this.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
parser.plugin("expression module.id", function(expr) {
|
|
||||||
var dep = new ConstDependency("module.i", expr.range);
|
|
||||||
dep.loc = expr.loc;
|
|
||||||
this.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
parser.plugin("expression module.exports", function() {
|
parser.plugin("expression module.exports", function() {
|
||||||
var module = this.state.module;
|
var module = this.state.module;
|
||||||
var isHarmony = module.meta && module.meta.harmonyModule;
|
var isHarmony = module.meta && module.meta.harmonyModule;
|
||||||
|
|
|
||||||
|
|
@ -44,9 +44,7 @@ ProvidePlugin.prototype.apply = function(compiler) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(scopedName) {
|
if(scopedName) {
|
||||||
var dep = new ConstDependency(nameIdentifier, expr.range);
|
ParserHelpers.toConstantDependency(nameIdentifier).bind(this)(expr);
|
||||||
dep.loc = expr.loc;
|
|
||||||
this.state.current.addDependency(dep);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
*/
|
*/
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
const ParserHelpers = require("./ParserHelpers");
|
||||||
const ConstDependency = require("./dependencies/ConstDependency");
|
const ConstDependency = require("./dependencies/ConstDependency");
|
||||||
const NullFactory = require("./NullFactory");
|
const NullFactory = require("./NullFactory");
|
||||||
|
|
||||||
|
|
@ -18,27 +19,11 @@ module.exports = class RequireJsStuffPlugin {
|
||||||
if(typeof parserOptions.requireJs !== "undefined" && !parserOptions.requireJs)
|
if(typeof parserOptions.requireJs !== "undefined" && !parserOptions.requireJs)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
function remove(expr) {
|
parser.plugin("call require.config", ParserHelpers.toConstantDependency(";"));
|
||||||
var dep = new ConstDependency(";", expr.range);
|
parser.plugin("call requirejs.config", ParserHelpers.toConstantDependency(";"));
|
||||||
dep.loc = expr.loc;
|
|
||||||
this.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
parser.plugin("call require.config", remove);
|
|
||||||
parser.plugin("call requirejs.config", remove);
|
|
||||||
|
|
||||||
parser.plugin("expression require.version", function(expr) {
|
parser.plugin("expression require.version", ParserHelpers.toConstantDependency(JSON.stringify("0.0.0")));
|
||||||
var dep = new ConstDependency(JSON.stringify("0.0.0"), expr.range);
|
parser.plugin("expression requirejs.onError", ParserHelpers.toConstantDependency(JSON.stringify("__webpack_require__.oe")));
|
||||||
dep.loc = expr.loc;
|
|
||||||
this.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
parser.plugin("expression requirejs.onError", function(expr) {
|
|
||||||
var dep = new ConstDependency(JSON.stringify("__webpack_require__.oe"), expr.range);
|
|
||||||
dep.loc = expr.loc;
|
|
||||||
this.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,13 @@
|
||||||
MIT License http://www.opensource.org/licenses/mit-license.php
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
||||||
Author Tobias Koppers @sokra
|
Author Tobias Koppers @sokra
|
||||||
*/
|
*/
|
||||||
var ConstDependency = require("./ConstDependency");
|
|
||||||
var CommonJsRequireDependency = require("./CommonJsRequireDependency");
|
var CommonJsRequireDependency = require("./CommonJsRequireDependency");
|
||||||
var CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
|
var CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
|
||||||
var RequireHeaderDependency = require("./RequireHeaderDependency");
|
var RequireHeaderDependency = require("./RequireHeaderDependency");
|
||||||
var LocalModuleDependency = require("./LocalModuleDependency");
|
var LocalModuleDependency = require("./LocalModuleDependency");
|
||||||
var ContextDependencyHelpers = require("./ContextDependencyHelpers");
|
var ContextDependencyHelpers = require("./ContextDependencyHelpers");
|
||||||
var LocalModulesHelpers = require("./LocalModulesHelpers");
|
var LocalModulesHelpers = require("./LocalModulesHelpers");
|
||||||
|
var ParserHelpers = require("../ParserHelpers");
|
||||||
|
|
||||||
function CommonJsRequireDependencyParserPlugin(options) {
|
function CommonJsRequireDependencyParserPlugin(options) {
|
||||||
this.options = options;
|
this.options = options;
|
||||||
|
|
@ -18,12 +18,7 @@ module.exports = CommonJsRequireDependencyParserPlugin;
|
||||||
|
|
||||||
CommonJsRequireDependencyParserPlugin.prototype.apply = function(parser) {
|
CommonJsRequireDependencyParserPlugin.prototype.apply = function(parser) {
|
||||||
var options = this.options;
|
var options = this.options;
|
||||||
parser.plugin("expression require.cache", function(expr) {
|
parser.plugin("expression require.cache", ParserHelpers.toConstantDependency("__webpack_require__.c"));
|
||||||
var dep = new ConstDependency("__webpack_require__.c", expr.range);
|
|
||||||
dep.loc = expr.loc;
|
|
||||||
this.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
parser.plugin("expression require", function(expr) {
|
parser.plugin("expression require", function(expr) {
|
||||||
var dep = new CommonJsRequireContextDependency(options.unknownContextRequest, options.unknownContextRecursive, options.unknownContextRegExp, expr.range);
|
var dep = new CommonJsRequireContextDependency(options.unknownContextRequest, options.unknownContextRecursive, options.unknownContextRegExp, expr.range);
|
||||||
dep.critical = options.unknownContextCritical && "require function is used in a way in which dependencies cannot be statically extracted";
|
dep.critical = options.unknownContextCritical && "require function is used in a way in which dependencies cannot be statically extracted";
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@
|
||||||
|
|
||||||
const RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
|
const RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
|
||||||
const RequireEnsureDependency = require("./RequireEnsureDependency");
|
const RequireEnsureDependency = require("./RequireEnsureDependency");
|
||||||
const ConstDependency = require("./ConstDependency");
|
|
||||||
|
|
||||||
const NullFactory = require("../NullFactory");
|
const NullFactory = require("../NullFactory");
|
||||||
|
|
||||||
|
|
@ -33,12 +32,7 @@ class RequireEnsurePlugin {
|
||||||
|
|
||||||
parser.apply(new RequireEnsureDependenciesBlockParserPlugin());
|
parser.apply(new RequireEnsureDependenciesBlockParserPlugin());
|
||||||
parser.plugin("evaluate typeof require.ensure", ParserHelpers.evaluateToString("function"));
|
parser.plugin("evaluate typeof require.ensure", ParserHelpers.evaluateToString("function"));
|
||||||
parser.plugin("typeof require.ensure", (expr) => {
|
parser.plugin("typeof require.ensure", ParserHelpers.toConstantDependency(JSON.stringify("function")));
|
||||||
const dep = new ConstDependency("'function'", expr.range);
|
|
||||||
dep.loc = expr.loc;
|
|
||||||
parser.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@
|
||||||
|
|
||||||
const RequireIncludeDependency = require("./RequireIncludeDependency");
|
const RequireIncludeDependency = require("./RequireIncludeDependency");
|
||||||
const RequireIncludeDependencyParserPlugin = require("./RequireIncludeDependencyParserPlugin");
|
const RequireIncludeDependencyParserPlugin = require("./RequireIncludeDependencyParserPlugin");
|
||||||
const ConstDependency = require("./ConstDependency");
|
|
||||||
|
|
||||||
const ParserHelpers = require("../ParserHelpers");
|
const ParserHelpers = require("../ParserHelpers");
|
||||||
|
|
||||||
|
|
@ -26,13 +25,7 @@ class RequireIncludePlugin {
|
||||||
|
|
||||||
parser.apply(new RequireIncludeDependencyParserPlugin());
|
parser.apply(new RequireIncludeDependencyParserPlugin());
|
||||||
parser.plugin("evaluate typeof require.include", ParserHelpers.evaluateToString("function"));
|
parser.plugin("evaluate typeof require.include", ParserHelpers.evaluateToString("function"));
|
||||||
parser.plugin("typeof require.include", (expr) => {
|
parser.plugin("typeof require.include", ParserHelpers.toConstantDependency(JSON.stringify("function")));
|
||||||
const dep = new ConstDependency("'function'", expr.range);
|
|
||||||
dep.loc = expr.loc;
|
|
||||||
parser.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@
|
||||||
*/
|
*/
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
const ConstDependency = require("./ConstDependency");
|
|
||||||
const ParserHelpers = require("../ParserHelpers");
|
const ParserHelpers = require("../ParserHelpers");
|
||||||
|
|
||||||
class SystemPlugin {
|
class SystemPlugin {
|
||||||
|
|
@ -35,12 +34,7 @@ class SystemPlugin {
|
||||||
setNotSupported("System.set");
|
setNotSupported("System.set");
|
||||||
setNotSupported("System.get");
|
setNotSupported("System.get");
|
||||||
setNotSupported("System.register");
|
setNotSupported("System.register");
|
||||||
parser.plugin("expression System", (expr) => {
|
parser.plugin("expression System", ParserHelpers.toConstantDependency("{}"));
|
||||||
const dep = new ConstDependency("{}", expr.range);
|
|
||||||
dep.loc = expr.loc;
|
|
||||||
parser.state.current.addDependency(dep);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue