【问题标题】:webpack "--watch" vs "--hot" : what's the difference?webpack "--watch" 与 "--hot" :有什么区别?
【发布时间】:2016-10-31 13:58:31
【问题描述】:

使用有什么区别

webpack --watch

webpack-dev-server --hot

谢谢。

【问题讨论】:

    标签: webpack


    【解决方案1】:

    根据webpack文档@https://webpack.github.io/docs/tutorials/getting-started/#watch-mode

    当使用监视模式时,webpack 会为所有文件安装文件监视程序, 在编译过程中使用。如果检测到任何变化, 它将再次运行编译。启用缓存后,webpack 将每个模块保存在内存中,如果不更改,将重用它。

    所以,基本上,运行webpackwebpack --watch 之间的区别在于,在使用--watch 时,CLI 将在编译过程后挂起,等待文件中的任何代码更改,如果有更改,则它将重新编译并再次等待。您应该知道,如果您使用的是 webpack-dev-server,那么您不需要使用此选项,因为 webpack-dev-server 根据其文档默认使用 webpack 的 watch 模式:

    开发服务器使用 webpack 的 watch 模式。它还可以防止 webpack 从将生成的文件发送到磁盘。相反,它保留并提供服务 从内存中生成的文件。

    那么,webpack-dev-server --hot 是什么?基本上,这会将HotModuleReplacementPlugin 添加到 webpack 配置中,这实际上将允许您仅重新加载已更改的组件,而不是进行整页刷新!当您与州合作时非常有用!根据文档:

    每种模式还支持热模块更换,其中捆绑包是 通知发生更改而不是重新加载整个页面。热的 然后模块替换运行时可以加载更新的模块并 将它们注入正在运行的应用程序中。

    有关它是什么以及如何在此处使用它的更多信息:https://webpack.github.io/docs/webpack-dev-server.html#hot-module-replacement

    我希望这有助于更多地了解 webpack!

    【讨论】:

    • 所以如果我只是在 Windows 上使用 IIS,那么我真的不需要运行 webpack-dev-server,对吧?
    • 是的,没错。所以,让我们假设你在监视模式下运行 webpack,并且你有 webpack 将你编译的文件输出到一个 'dist' 文件夹。在 IIS 中,您将指向此“dist”目录。您进行更改,“dist”文件夹中的所有文件都将替换为新编译的文件。然后,您必须手动点击浏览器上的刷新按钮才能查看更改,这在您开发时可能会很烦人。
    【解决方案2】:

    总之,

    --watch 表示:监视文件变化,当源文件发生变化时再次编译。

    --hot (hot reload) 意思是:源改变后不重新加载整页,只重新加载改变的部分。

    【讨论】:

      猜你喜欢
      • 2017-12-23
      • 2021-04-15
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      • 2021-01-24
      相关资源
      最近更新 更多