保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
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
module.exports = class TimeFixPlugin {
  constructor(watchOffset = 11000) {
    this.watchOffset = watchOffset
  }
 
  apply(compiler) {
    const context = this
    const watch = compiler.watch
    let watching
    let fixed
 
    // Modify the time for first run
    compiler.watch = function () {
      watching = watch.apply(this, arguments)
      watching.startTime += context.watchOffset
      return watching
    }
 
    // Modify the time for subsequent runs
    compiler.hooks.watchRun.tap('time-fix-plugin', () => {
      if (watching && !fixed) {
        watching.startTime += this.watchOffset
      }
    })
 
    // Reset time
    compiler.hooks.done.tap('time-fix-plugin', stats => {
      if (watching && !fixed) {
        // webpack 5: #3
        if (stats.compilation.startTime) {
          stats.compilation.startTime -= this.watchOffset
        } else {
          stats.startTime -= this.watchOffset
        }
        fixed = true
      }
    })
  }
}