HMR - 接受多重依赖

HMR - Accepting multiple dependencies

HMR API 的 webpack 文档提到了以下方法:

accept(dependencies: string[], callback: (updatedDependencies) => void) => void

我了解如何接受单个依赖项,但不确定多个依赖项的回调应该是什么样子。

这是我的代码:

 var $ = require('jquery')
 var page = require('page')
 var index = require('./index')
 var home = require('./home')

 $(function() {
   page('/', index)
   page('/home', home)
   page()

   if (module.hot) {
     module.hot.accept(['./index', './home'], function(updatedDependencies) {
       // what should I put in here?
     })
   }
 })

尝试回答这个问题,因为没有人尝试过。

从你的代码来看,它看起来不错。

回调方法是运行接受多个依赖后。 您基本上发送一个函数作为参数,然后一旦所有依赖项都被接受,该函数就会被执行。

所以您几乎可以在该函数中放入您喜欢的任何内容。例如:

if (module.hot) {
    module.hot.accept(['./index', './home'], function() {
        alert('all the dependencies have been accepted');
        console.log('all the dependencies have been accepted');
    });
};

在该示例中,一旦 accept 方法具有 运行 并已完成,它将执行回调函数,在本例中发送警报并将消息记录到控制台。

简而言之,替换“// 我应该在此处输入什么?”一旦接受了依赖项,就可以使用您想继续的代码。

我在你的回调中看到你有一个参数'updatedDependencies'你可以调试并在回调方法的第一行放置断点,并将鼠标放在'updatedDependencies'参数上看是否它包含任何内容 - 如果包含,您显然可以相应地处理该数据。

希望对您有所帮助。