Use templates' Tapable#hooks

This commit is contained in:
Florent Cailhol 2017-12-15 15:16:39 +01:00
parent 27d60f7dd6
commit 3be3878d56
3 changed files with 11 additions and 11 deletions

View File

@ -145,15 +145,15 @@ module.exports = class HotModuleReplacementPlugin {
const mainTemplate = compilation.mainTemplate;
mainTemplate.plugin("hash", hash => {
mainTemplate.hooks.hash.tap("HotModuleReplacementPlugin", hash => {
hash.update("HotMainTemplateDecorator");
});
mainTemplate.plugin("module-require", (_, chunk, hash, varModuleId) => {
mainTemplate.hooks.moduleRequire.tap("HotModuleReplacementPlugin", (_, chunk, hash, varModuleId) => {
return `hotCreateRequire(${varModuleId})`;
});
mainTemplate.plugin("require-extensions", source => {
mainTemplate.hooks.requireExtensions.tap("HotModuleReplacementPlugin", source => {
const buf = [source];
buf.push("");
buf.push("// __webpack_hash__");
@ -161,7 +161,7 @@ module.exports = class HotModuleReplacementPlugin {
return Template.asString(buf);
});
mainTemplate.plugin("bootstrap", (source, chunk, hash) => {
mainTemplate.hooks.bootstrap.tap("HotModuleReplacementPlugin", (source, chunk, hash) => {
source = mainTemplate.hooks.hotBootstrap.call(source, chunk, hash);
return Template.asString([
source,
@ -174,16 +174,16 @@ module.exports = class HotModuleReplacementPlugin {
]);
});
mainTemplate.plugin("global-hash", () => true);
mainTemplate.hooks.globalHash.tap("HotModuleReplacementPlugin", () => true);
mainTemplate.plugin("current-hash", (_, length) => {
mainTemplate.hooks.currentHash.tap("HotModuleReplacementPlugin", (_, length) => {
if(isFinite(length))
return `hotCurrentHash.substr(0, ${length})`;
else
return "hotCurrentHash";
});
mainTemplate.plugin("module-obj", (source, chunk, hash, varModuleId) => {
mainTemplate.hooks.moduleObj.tap("HotModuleReplacementPlugin", (source, chunk, hash, varModuleId) => {
return Template.asString([
`${source},`,
`hot: hotCreateModule(${varModuleId}),`,

View File

@ -8,7 +8,7 @@ const ConcatSource = require("webpack-sources").ConcatSource;
class JsonpChunkTemplatePlugin {
apply(chunkTemplate) {
chunkTemplate.plugin("render", (modules, chunk) => {
chunkTemplate.hooks.render.tap("JsonpChunkTemplatePlugin", (modules, chunk) => {
const jsonpFunction = chunkTemplate.outputOptions.jsonpFunction;
const source = new ConcatSource();
source.add(`(window[${JSON.stringify(jsonpFunction)}] = window[${JSON.stringify(jsonpFunction)}] || []).push([${JSON.stringify(chunk.ids)},`);
@ -22,7 +22,7 @@ class JsonpChunkTemplatePlugin {
source.add("])");
return source;
});
chunkTemplate.plugin("hash", hash => {
chunkTemplate.hooks.hash.tap("JsonpChunkTemplatePlugin", hash => {
hash.update("JsonpChunkTemplatePlugin");
hash.update("4");
hash.update(`${chunkTemplate.outputOptions.jsonpFunction}`);

View File

@ -8,14 +8,14 @@ const ConcatSource = require("webpack-sources").ConcatSource;
class JsonpHotUpdateChunkTemplatePlugin {
apply(hotUpdateChunkTemplate) {
hotUpdateChunkTemplate.plugin("render", (modulesSource, modules, removedModules, hash, id) => {
hotUpdateChunkTemplate.hooks.render.tap("JsonpHotUpdateChunkTemplatePlugin", (modulesSource, modules, removedModules, hash, id) => {
const source = new ConcatSource();
source.add(`${hotUpdateChunkTemplate.outputOptions.hotUpdateFunction}(${JSON.stringify(id)},`);
source.add(modulesSource);
source.add(")");
return source;
});
hotUpdateChunkTemplate.plugin("hash", hash => {
hotUpdateChunkTemplate.hooks.hash.tap("JsonpHotUpdateChunkTemplatePlugin", hash => {
hash.update("JsonpHotUpdateChunkTemplatePlugin");
hash.update("3");
hash.update(`${hotUpdateChunkTemplate.outputOptions.hotUpdateFunction}`);