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