我最近开始研究 webpack,因为能够编写真正的 CSS 模块、智能捆绑和其他东西的很酷的特性,还有 HMR,这就是我在这里的原因。我见过一些 React Redux 项目的例子,它们可以在不重新加载浏览器的情况下更新 javascript 代码。哇,我认为这是不可能的。
我想知道更多,尤其是它在底层是如何工作的,以使其与我当前的项目 Vanilla JS 一起工作。
与此同时,我对函数式编程语言的兴趣使我接触了 Emacs。我发现在 emacs 编辑器中有一个可以更新 javascript 和 HTML的串模式!实时,无需重新加载浏览器。
我知道他们都使用本地服务器将更改推送到浏览器和客户端上的一些脚本,以某种方式更新代码。但是它们如何保存应用程序的状态。就 React 项目而言,这是可以想象的,由于应用程序基于组件的性质,您可以将组件替换为新组件,但我不确定它们如何搜索变量并为它们重新分配新值。也许他们确实使用了一些 eval 魔法。但我不确定。
那么它们究竟是如何工作的呢?也许我从错误的角度看,我只是没有清晰的画面。
Emacs 也有 HTML 的实时更新,webpack HMR 能做到吗?
(我不太关心 HTML,因为我是用 JS 做的。但我认为它可以解释这两者之间的区别。)这样做哪个更好?
每个的优点和缺点是什么,或者它们只是世界的不同部分,可以整合成更好的东西?也许有更好的选择,不需要像本地网络服务器这样的中间件,而只是编辑器插件与一些浏览器扩展通信?
PS:我不介意学习可以优化我的工作的工具,因为它总是有回报的。