Skip to content

Commit 27d60f7

Browse files
authored
Merge pull request webpack#6126 from ooflorent/remove_plugin_calls
Remove more plugin calls
2 parents 5c3cb43 + 1dabdb9 commit 27d60f7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+236
-404
lines changed

lib/APIPlugin.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,16 @@ class APIPlugin {
3939
compilation.dependencyFactories.set(ConstDependency, new NullFactory());
4040
compilation.dependencyTemplates.set(ConstDependency, new ConstDependency.Template());
4141

42-
normalModuleFactory.plugin(["parser javascript/auto", "parser javascript/dynamic", "parser javascript/esm"], parser => {
42+
const handler = parser => {
4343
Object.keys(REPLACEMENTS).forEach(key => {
4444
parser.plugin(`expression ${key}`, NO_WEBPACK_REQUIRE[key] ? ParserHelpers.toConstantDependency(REPLACEMENTS[key]) : ParserHelpers.toConstantDependencyWithWebpackRequire(REPLACEMENTS[key]));
4545
parser.plugin(`evaluate typeof ${key}`, ParserHelpers.evaluateToString(REPLACEMENT_TYPES[key]));
4646
});
47-
});
47+
};
48+
49+
normalModuleFactory.hooks.parser.for("javascript/auto").tap("APIPlugin", handler);
50+
normalModuleFactory.hooks.parser.for("javascript/dynamic").tap("APIPlugin", handler);
51+
normalModuleFactory.hooks.parser.for("javascript/esm").tap("APIPlugin", handler);
4852
});
4953
}
5054
}

lib/CompatibilityPlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class CompatibilityPlugin {
1717
compilation.dependencyFactories.set(ConstDependency, new NullFactory());
1818
compilation.dependencyTemplates.set(ConstDependency, new ConstDependency.Template());
1919

20-
normalModuleFactory.plugin("parser javascript/auto", (parser, parserOptions) => {
20+
normalModuleFactory.hooks.parser.for("javascript/auto").tap("CompatibilityPlugin", (parser, parserOptions) => {
2121

2222
if(typeof parserOptions.browserify !== "undefined" && !parserOptions.browserify)
2323
return;

lib/ConstPlugin.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class ConstPlugin {
2020
compilation.dependencyFactories.set(ConstDependency, new NullFactory());
2121
compilation.dependencyTemplates.set(ConstDependency, new ConstDependency.Template());
2222

23-
normalModuleFactory.plugin(["parser javascript/auto", "parser javascript/dynamic", "parser javascript/esm"], parser => {
23+
const handler = parser => {
2424
parser.plugin("statement if", statement => {
2525
const param = parser.evaluateExpression(statement.test);
2626
const bool = param.asBool();
@@ -54,7 +54,11 @@ class ConstPlugin {
5454
parser.state.current.addVariable("__resourceQuery", JSON.stringify(getQuery(parser.state.module.resource)));
5555
return true;
5656
});
57-
});
57+
};
58+
59+
normalModuleFactory.hooks.parser.for("javascript/auto").tap("ConstPlugin", handler);
60+
normalModuleFactory.hooks.parser.for("javascript/dynamic").tap("ConstPlugin", handler);
61+
normalModuleFactory.hooks.parser.for("javascript/esm").tap("ConstPlugin", handler);
5862
});
5963
}
6064
}

lib/ContextExclusionPlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class ContextExclusionPlugin {
77

88
apply(compiler) {
99
compiler.hooks.contextModuleFactory.tap("ContextExclusionPlugin", (cmf) => {
10-
cmf.plugin("context-module-files", (files) => {
10+
cmf.hooks.contextModuleFiles.tap("ContextExclusionPlugin", (files) => {
1111
return files.filter(filePath => !this.negativeMatcher.test(filePath));
1212
});
1313
});

lib/ContextReplacementPlugin.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ class ContextReplacementPlugin {
4646
const newContentCreateContextMap = this.newContentCreateContextMap;
4747

4848
compiler.hooks.contextModuleFactory.tap("ContextReplacementPlugin", (cmf) => {
49-
cmf.plugin("before-resolve", (result, callback) => {
50-
if(!result) return callback();
49+
cmf.hooks.beforeResolve.tap("ContextReplacementPlugin", (result) => {
50+
if(!result) return;
5151
if(resourceRegExp.test(result.request)) {
5252
if(typeof newContentResource !== "undefined")
5353
result.request = newContentResource;
@@ -64,10 +64,10 @@ class ContextReplacementPlugin {
6464
});
6565
}
6666
}
67-
return callback(null, result);
67+
return result;
6868
});
69-
cmf.plugin("after-resolve", (result, callback) => {
70-
if(!result) return callback();
69+
cmf.hooks.afterResolve.tap("ContextReplacementPlugin", (result) => {
70+
if(!result) return;
7171
if(resourceRegExp.test(result.resource)) {
7272
if(typeof newContentResource !== "undefined")
7373
result.resource = path.resolve(result.resource, newContentResource);
@@ -90,7 +90,7 @@ class ContextReplacementPlugin {
9090
});
9191
}
9292
}
93-
return callback(null, result);
93+
return result;
9494
});
9595
});
9696
}

lib/DefinePlugin.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class DefinePlugin {
3838
compilation.dependencyFactories.set(ConstDependency, new NullFactory());
3939
compilation.dependencyTemplates.set(ConstDependency, new ConstDependency.Template());
4040

41-
normalModuleFactory.plugin(["parser javascript/auto", "parser javascript/dynamic", "parser javascript/esm"], (parser) => {
41+
const handler = (parser) => {
4242
const walkDefinitions = (definitions, prefix) => {
4343
Object.keys(definitions).forEach((key) => {
4444
const code = definitions[key];
@@ -120,7 +120,11 @@ class DefinePlugin {
120120
};
121121

122122
walkDefinitions(definitions, "");
123-
});
123+
};
124+
125+
normalModuleFactory.hooks.parser.for("javascript/auto").tap("DefinePlugin", handler);
126+
normalModuleFactory.hooks.parser.for("javascript/dynamic").tap("DefinePlugin", handler);
127+
normalModuleFactory.hooks.parser.for("javascript/esm").tap("DefinePlugin", handler);
124128
});
125129
}
126130
}

lib/DelegatedModuleFactoryPlugin.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class DelegatedModuleFactoryPlugin {
2121
apply(normalModuleFactory) {
2222
const scope = this.options.scope;
2323
if(scope) {
24-
normalModuleFactory.plugin("factory", factory => (data, callback) => {
24+
normalModuleFactory.hooks.factory.tap("DelegatedModuleFactoryPlugin", factory => (data, callback) => {
2525
const dependency = data.dependencies[0];
2626
const request = dependency.request;
2727
if(request && request.indexOf(scope + "/") === 0) {
@@ -43,7 +43,7 @@ class DelegatedModuleFactoryPlugin {
4343
return factory(data, callback);
4444
});
4545
} else {
46-
normalModuleFactory.plugin("module", module => {
46+
normalModuleFactory.hooks.module.tap("DelegatedModuleFactoryPlugin", module => {
4747
if(module.libIdent) {
4848
const request = module.libIdent(this.options);
4949
if(request && request in this.options.content) {

lib/EvalDevToolModuleTemplatePlugin.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class EvalDevToolModuleTemplatePlugin {
1616
}
1717

1818
apply(moduleTemplate) {
19-
moduleTemplate.plugin("module", (source, module) => {
19+
moduleTemplate.hooks.module.tap("EvalDevToolModuleTemplatePlugin", (source, module) => {
2020
const cacheEntry = cache.get(source);
2121
if(cacheEntry !== undefined) return cacheEntry;
2222
const content = source.source();
@@ -32,7 +32,7 @@ class EvalDevToolModuleTemplatePlugin {
3232
cache.set(source, result);
3333
return result;
3434
});
35-
moduleTemplate.plugin("hash", hash => {
35+
moduleTemplate.hooks.hash.tap("EvalDevToolModuleTemplatePlugin", hash => {
3636
hash.update("EvalDevToolModuleTemplatePlugin");
3737
hash.update("2");
3838
});

lib/EvalSourceMapDevToolModuleTemplatePlugin.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class EvalSourceMapDevToolModuleTemplatePlugin {
1919
apply(moduleTemplate) {
2020
const self = this;
2121
const options = this.options;
22-
moduleTemplate.plugin("module", (source, module) => {
22+
moduleTemplate.hooks.module.tap("EvalSourceMapDevToolModuleTemplatePlugin", (source, module) => {
2323
if(source.__EvalSourceMapDevToolData)
2424
return source.__EvalSourceMapDevToolData;
2525
let sourceMap;
@@ -70,7 +70,7 @@ class EvalSourceMapDevToolModuleTemplatePlugin {
7070
source.__EvalSourceMapDevToolData = new RawSource(`eval(${JSON.stringify(content + footer)});`);
7171
return source.__EvalSourceMapDevToolData;
7272
});
73-
moduleTemplate.plugin("hash", hash => {
73+
moduleTemplate.hooks.hash.tap("EvalSourceMapDevToolModuleTemplatePlugin", hash => {
7474
hash.update("eval-source-map");
7575
hash.update("2");
7676
});

lib/ExportPropertyMainTemplatePlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class ExportPropertyMainTemplatePlugin {
2121
const postfix = `${accessorToObjectAccess([].concat(this.property))}`;
2222
return new ConcatSource(source, postfix);
2323
});
24-
mainTemplate.plugin("hash", hash => {
24+
mainTemplate.hooks.hash.tap("ExportPropertyMainTemplatePlugin", hash => {
2525
hash.update("export property");
2626
hash.update(`${this.property}`);
2727
});

lib/ExtendedAPIPlugin.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class ExtendedAPIPlugin {
2727
compilation.dependencyTemplates.set(ConstDependency, new ConstDependency.Template());
2828

2929
const mainTemplate = compilation.mainTemplate;
30-
mainTemplate.plugin("require-extensions", (source, chunk, hash) => {
30+
mainTemplate.hooks.requireExtensions.tap("ExtendedAPIPlugin", (source, chunk, hash) => {
3131
const buf = [source];
3232
buf.push("");
3333
buf.push("// __webpack_hash__");
@@ -37,14 +37,18 @@ class ExtendedAPIPlugin {
3737
buf.push(`${mainTemplate.requireFn}.cn = ${JSON.stringify(chunk.name)};`);
3838
return Template.asString(buf);
3939
});
40-
mainTemplate.plugin("global-hash", () => true);
40+
mainTemplate.hooks.globalHash.tap("ExtendedAPIPlugin", () => true);
4141

42-
normalModuleFactory.plugin(["parser javascript/auto", "parser javascript/dynamic", "parser javascript/esm"], (parser, parserOptions) => {
42+
const handler = (parser, parserOptions) => {
4343
Object.keys(REPLACEMENTS).forEach(key => {
4444
parser.plugin(`expression ${key}`, ParserHelpers.toConstantDependencyWithWebpackRequire(REPLACEMENTS[key]));
4545
parser.plugin(`evaluate typeof ${key}`, ParserHelpers.evaluateToString(REPLACEMENT_TYPES[key]));
4646
});
47-
});
47+
};
48+
49+
normalModuleFactory.hooks.parser.for("javascript/auto").tap("ExtendedAPIPlugin", handler);
50+
normalModuleFactory.hooks.parser.for("javascript/dynamic").tap("ExtendedAPIPlugin", handler);
51+
normalModuleFactory.hooks.parser.for("javascript/esm").tap("ExtendedAPIPlugin", handler);
4852
});
4953
}
5054
}

lib/ExternalModuleFactoryPlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class ExternalModuleFactoryPlugin {
1414

1515
apply(normalModuleFactory) {
1616
const globalType = this.type;
17-
normalModuleFactory.plugin("factory", factory => (data, callback) => {
17+
normalModuleFactory.hooks.factory.tap("ExternalModuleFactoryPlugin", factory => (data, callback) => {
1818
const context = data.context;
1919
const dependency = data.dependencies[0];
2020

lib/FunctionModuleTemplatePlugin.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const Template = require("./Template");
99

1010
class FunctionModuleTemplatePlugin {
1111
apply(moduleTemplate) {
12-
moduleTemplate.plugin("render", (moduleSource, module) => {
12+
moduleTemplate.hooks.render.tap("FunctionModuleTemplatePlugin", (moduleSource, module) => {
1313
const source = new ConcatSource();
1414
const args = [module.moduleArgument];
1515
// TODO remove HACK checking type for javascript
@@ -30,7 +30,7 @@ class FunctionModuleTemplatePlugin {
3030
return source;
3131
});
3232

33-
moduleTemplate.plugin("package", (moduleSource, module) => {
33+
moduleTemplate.hooks.package.tap("FunctionModuleTemplatePlugin", (moduleSource, module) => {
3434
if(moduleTemplate.runtimeTemplate.outputOptions.pathinfo) {
3535
const source = new ConcatSource();
3636
const req = module.readableIdentifier(moduleTemplate.runtimeTemplate.requestShortener);
@@ -61,7 +61,7 @@ class FunctionModuleTemplatePlugin {
6161
return moduleSource;
6262
});
6363

64-
moduleTemplate.plugin("hash", hash => {
64+
moduleTemplate.hooks.hash.tap("FunctionModuleTemplatePlugin", hash => {
6565
hash.update("FunctionModuleTemplatePlugin");
6666
hash.update("2");
6767
});

lib/HotModuleReplacementPlugin.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,7 @@ module.exports = class HotModuleReplacementPlugin {
192192
]);
193193
});
194194

195-
// TODO add HMR support for javascript/esm
196-
normalModuleFactory.plugin(["parser javascript/auto", "parser javascript/dynamic"], (parser, parserOptions) => {
195+
const handler = (parser, parserOptions) => {
197196
parser.plugin("expression __webpack_hash__", ParserHelpers.toConstantDependencyWithWebpackRequire("__webpack_require__.h()"));
198197
parser.plugin("evaluate typeof __webpack_hash__", ParserHelpers.evaluateToString("string"));
199198
parser.plugin("evaluate Identifier module.hot", expr => {
@@ -252,7 +251,11 @@ module.exports = class HotModuleReplacementPlugin {
252251
}
253252
});
254253
parser.plugin("expression module.hot", ParserHelpers.skipTraversal);
255-
});
254+
};
255+
256+
// TODO add HMR support for javascript/esm
257+
normalModuleFactory.hooks.parser.for("javascript/auto").tap("HotModuleReplacementPlugin", handler);
258+
normalModuleFactory.hooks.parser.for("javascript/dynamic").tap("HotModuleReplacementPlugin", handler);
256259
});
257260
}
258261

lib/IgnorePlugin.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,20 +48,20 @@ class IgnorePlugin {
4848
return this.checkResource(result.request) && this.checkContext(result.context);
4949
}
5050

51-
checkIgnore(result, callback) {
51+
checkIgnore(result) {
5252
// check if result is ignored
5353
if(this.checkResult(result)) {
54-
return callback(null, null);
54+
return null;
5555
}
56-
return callback(null, result);
56+
return result;
5757
}
5858

5959
apply(compiler) {
6060
compiler.hooks.normalModuleFactory.tap("IgnorePlugin", (nmf) => {
61-
nmf.plugin("before-resolve", this.checkIgnore);
61+
nmf.hooks.beforeResolve.tap("IgnorePlugin", this.checkIgnore);
6262
});
6363
compiler.hooks.contextModuleFactory.tap("IgnorePlugin", (cmf) => {
64-
cmf.plugin("before-resolve", this.checkIgnore);
64+
cmf.hooks.beforeResolve.tap("IgnorePlugin", this.checkIgnore);
6565
});
6666
}
6767
}

lib/JavascriptModulesPlugin.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,13 @@ class JavascriptModulesPlugin {
1111
compiler.hooks.compilation.tap("JavascriptModulesPlugin", (compilation, {
1212
normalModuleFactory
1313
}) => {
14-
normalModuleFactory.plugin(["create-parser javascript/auto", "create-parser javascript/dynamic", "create-parser javascript/esm"], () => {
14+
const createParser = () => {
1515
return new Parser();
16-
});
16+
};
17+
18+
normalModuleFactory.hooks.createParser.for("javascript/auto").tap("JavascriptModulesPlugin", createParser);
19+
normalModuleFactory.hooks.createParser.for("javascript/dynamic").tap("JavascriptModulesPlugin", createParser);
20+
normalModuleFactory.hooks.createParser.for("javascript/esm").tap("JavascriptModulesPlugin", createParser);
1721
});
1822
}
1923
}

lib/JsonModulesPlugin.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ class JsonModulesPlugin {
1212
compiler.hooks.compilation.tap("JsonModulesPlugin", (compilation, {
1313
normalModuleFactory
1414
}) => {
15-
normalModuleFactory.plugin("create-parser json", () => {
15+
normalModuleFactory.hooks.createParser.for("json").tap("JsonModulesPlugin", () => {
1616
return new JsonParser();
1717
});
18-
compilation.moduleTemplates.javascript.plugin("content", (moduleSource, module) => {
18+
compilation.moduleTemplates.javascript.hooks.content.tap("JsonModulesPlugin", (moduleSource, module) => {
1919
if(module.type && module.type.startsWith("json")) {
2020
const source = new ConcatSource();
2121
source.add(`${module.moduleArgument}.exports = `);

lib/MainTemplate.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,15 @@ module.exports = class MainTemplate extends Tapable {
5757
// It's weird here
5858
hotBootstrap: new SyncWaterfallHook(["source", "chunk", "hash"])
5959
};
60-
this.plugin("startup", (source, chunk, hash) => {
60+
this.hooks.startup.tap("MainTemplate", (source, chunk, hash) => {
6161
const buf = [];
6262
if(chunk.entryModule) {
6363
buf.push("// Load entry module and return exports");
6464
buf.push(`return ${this.renderRequireFunctionForModule(hash, chunk, JSON.stringify(chunk.entryModule.id))}(${this.requireFn}.s = ${JSON.stringify(chunk.entryModule.id)});`);
6565
}
6666
return Template.asString(buf);
6767
});
68-
this.plugin("render", (bootstrapSource, chunk, hash, moduleTemplate, dependencyTemplates) => {
68+
this.hooks.render.tap("MainTemplate", (bootstrapSource, chunk, hash, moduleTemplate, dependencyTemplates) => {
6969
const source = new ConcatSource();
7070
source.add("/******/ (function(modules) { // webpackBootstrap\n");
7171
source.add(new PrefixSource("/******/", bootstrapSource));
@@ -77,14 +77,14 @@ module.exports = class MainTemplate extends Tapable {
7777
source.add(")");
7878
return source;
7979
});
80-
this.plugin("local-vars", (source, chunk, hash) => {
80+
this.hooks.localVars.tap("MainTemplate", (source, chunk, hash) => {
8181
return Template.asString([
8282
source,
8383
"// The module cache",
8484
"var installedModules = {};"
8585
]);
8686
});
87-
this.plugin("require", (source, chunk, hash) => {
87+
this.hooks.require.tap("MainTemplate", (source, chunk, hash) => {
8888
return Template.asString([
8989
source,
9090
"// Check if module is in cache",
@@ -121,14 +121,14 @@ module.exports = class MainTemplate extends Tapable {
121121
"return module.exports;"
122122
]);
123123
});
124-
this.plugin("module-obj", (source, chunk, hash, varModuleId) => {
124+
this.hooks.moduleObj.tap("MainTemplate", (source, chunk, hash, varModuleId) => {
125125
return Template.asString([
126126
"i: moduleId,",
127127
"l: false,",
128128
"exports: {}"
129129
]);
130130
});
131-
this.plugin("require-extensions", (source, chunk, hash) => {
131+
this.hooks.requireExtensions.tap("MainTemplate", (source, chunk, hash) => {
132132
const buf = [];
133133
if(chunk.getNumberOfChunks() > 0) {
134134
buf.push("// This file contains only the entry chunk.");

lib/MultiCompiler.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ module.exports = class MultiCompiler extends Tapable {
2929
let compilerStats = [];
3030
this.compilers.forEach((compiler, idx) => {
3131
let compilerDone = false;
32-
compiler.plugin("done", stats => {
32+
compiler.hooks.done.tap("MultiCompiler", stats => {
3333
if(!compilerDone) {
3434
compilerDone = true;
3535
doneCompilers++;
@@ -39,7 +39,7 @@ module.exports = class MultiCompiler extends Tapable {
3939
this.hooks.done.call(new MultiStats(compilerStats));
4040
}
4141
});
42-
compiler.plugin("invalid", () => {
42+
compiler.hooks.invalid.tap("MultiCompiler", () => {
4343
if(compilerDone) {
4444
compilerDone = false;
4545
doneCompilers--;

0 commit comments

Comments
 (0)