mirror of https://github.com/webpack/webpack.git
Use templates' Tapable#hooks
This commit is contained in:
parent
27d60f7dd6
commit
3be3878d56
|
|
@ -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}),`,
|
||||
|
|
|
|||
|
|
@ -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}`);
|
||||
|
|
|
|||
|
|
@ -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}`);
|
||||
|
|
|
|||
Loading…
Reference in New Issue