Webpack DLL Plugin 引起的Bug

Gao
## 奇怪的 Bug 开发网络管理的时候,发现了一个非常奇怪的 bug。 当时的情况是:当网络管理打开一个对话框并关闭后,切换到其它的菜单后,再切换回来, 对话框会自动的打开。 经过多次调试后发现,在 HOC 挂载 reducer 的时候,redux 执行了 action `{ type: @@redux/INIT }`,在 action 进入 reducer 的时候,突然变成了打开对话框的 action `{ type: address/networks/trigger-action, payload: { aciton: 'create'} }` **对比发现问题** - Chrome,Firefox 出现这个问题,IE,Safari 没有这个问题 - 在 Chrome 和 Firefox 中,build production 时也没有这个问题 - 在调试过程加断点,当逐步调试进入 eval 代码快中后,也没有这个问题了 ## 结论 Webpack DLL 插件为了加速编译,模块被转换为字符串在 eval 中执行,在 eval 中执行出 现了内存泄漏,导致执行错误。 Javascript 中 `eval` 函数作为被严格模式禁止的函数,必然存在 bug,目前不能在项目 中使用。