区分 webpack-dev-server 与 webpack-dev-middleware

阅读时长 4 分钟读完

介绍

在前端开发中,使用webpack来构建项目已经非常常见。为了提高开发效率,webpack社区提供了webpack-dev-server和webpack-dev-middleware两种工具。这两种工具都能够帮助我们实现自动编译打包和热加载等功能,但是它们之间有什么区别呢?

webpack-dev-server是一个轻量级的web服务器,它将编译后的文件保存在内存中,生成一个虚拟的bundle.js文件,通过监听文件变化并实时编译,让开发者能够快速地看到修改后的效果。webpack-dev-server使用webpack的代码来处理代码变化,如果我们想要使用Webpack进行实际构建,我们需要将它的配置传递给webpack-dev-server。webpack-dev-server有自己的API,可以用于配置许多选项,如启用HMR、支持HTTPS、添加代理等。相对于webpack-dev-middleware,webpack-dev-server更适用于开发模式,并且需要在服务器中启动和运行。

webpack-dev-middleware是webpack中间件的一种,它以中间件的形式将Webpack打包后的结果传递给server。Webpack监听文件变化并实时编译,webpack-dev-middleware可以将编译结果输出到磁盘中,而不是仅保存在内存中。包含webpack-dev-middleware的应用程序,能够直接从磁盘中提供打包后的文件,但是启用了webpack-dev-middleware的服务,需要通过其他方式启动,通常是通过node.js服务器启动。

示例代码

webpack-dev-server

-- -------------------- ---- -------
----- ------- - -------------------
----- ---------------- - ------------------------------
----- ------ - -------------------------------

----- ------- - -
  ------------ --------------
  ---- -----
  ----- -----------
--

------------------------------------------------ ---------
----- -------- - ----------------
----- ------ - --- -------------------------- ---------

------------------- ------------ ---------- -
  ---------------- ------ --------- -- ---- -------
---

webpack-dev-middleware

-- -------------------- ---- -------
----- ------- - -------------------
----- ------- - -------------------
----- ------------- - -------------------------------
----- -------------------- - ----------------------------------

----- --- - ----------
----- -------- - -----------------------

--------
  ------------------------------ -
    ----------- -------------------------------
  --
--

---------------- ---------- -
  ---------------- --------- -- ---- -------
--

结论

相比较而言,webpack-dev-server提供许多配置选项,热加载等开发相关的功能,比较适用于开发模式。而webpack-dev-middleware可以将编译结果输出到磁盘中,也能快速将应用程序部署到服务器上。我们应该根据具体情况选择相应的工具。

总的来说,使用Webpack来构建项目具有许多的优点,如提高开发效率、提供了很多配置选项等。我们可以灵活地选择开发工具和方式,以提高开发效率和代码质量。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6705492ed91dce0dc852bc95

纠错
反馈