马宇豪
2024-07-16 f591c27b57e2418c9495bc02ae8cfff84d35bc18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*
    MIT License http://www.opensource.org/licenses/mit-license.php
    Author Tobias Koppers @sokra
*/
 
"use strict";
 
const RuntimeGlobals = require("../RuntimeGlobals");
const RuntimeModule = require("../RuntimeModule");
const Template = require("../Template");
 
class HotModuleReplacementRuntimeModule extends RuntimeModule {
    constructor() {
        super("hot module replacement", RuntimeModule.STAGE_BASIC);
    }
    /**
     * @returns {string} runtime code
     */
    generate() {
        return Template.getFunctionContent(
            require("./HotModuleReplacement.runtime.js")
        )
            .replace(/\$getFullHash\$/g, RuntimeGlobals.getFullHash)
            .replace(
                /\$interceptModuleExecution\$/g,
                RuntimeGlobals.interceptModuleExecution
            )
            .replace(/\$moduleCache\$/g, RuntimeGlobals.moduleCache)
            .replace(/\$hmrModuleData\$/g, RuntimeGlobals.hmrModuleData)
            .replace(/\$hmrDownloadManifest\$/g, RuntimeGlobals.hmrDownloadManifest)
            .replace(
                /\$hmrInvalidateModuleHandlers\$/g,
                RuntimeGlobals.hmrInvalidateModuleHandlers
            )
            .replace(
                /\$hmrDownloadUpdateHandlers\$/g,
                RuntimeGlobals.hmrDownloadUpdateHandlers
            );
    }
}
 
module.exports = HotModuleReplacementRuntimeModule;