在热加载配置中: if (module.hot) 中的module在那里定义的,或者在那里传进来的

来源:2-7 hot-module-replacement

duxiaowei

2017-12-01

写回答

1回答

Jokcy

2017-12-01

这是webpack提供的,在使用webpack-dev-server并启动热加载功能的时候,webpack-dev-server会吧两段代码打包的你的js里面,一个是`webpack/hot/dev-server`,另一个是`webpack-dev-server/client/`


你在开启webpack的devServer的hot时,他打包过程中就做了这个事情:

```

var module = installedModules[moduleId] = {

/******/ i: moduleId,

/******/ l: false,

/******/ exports: {},

/******/ hot: hotCreateModule(moduleId),

/******/ parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),

/******/ children: []

/******/ };

```

打包出来的代码如上,其中就有一个属性。这个属性对应的就是你自己写的模块中的module,这样你才有module.hot属性可以调用。

2
1
duxiaowei
非常感谢老师的解答
2017-12-01
共1条回复

React全栈+服务器渲染(ssr)打造社区Webapp

【毕设面试】只会写业务代码?out了,带你学会搭建属于自己的工程!

768 学习 · 414 问题

查看课程