有没有人知道 webpack-dev-middleware 这个东西是用来干嘛的?

p2227
  • 2k

我认真地看了一下github上面的介绍(https://github.com/webpack/webpack-dev-middleware),应该是用来做服务端开发的时候,在内存中生成打包好的js文件,不用真正写到硬盘上。但我非常疑问,用这个生成的打包好的js文件,怎么让express或者koa引用到??官网没有一个例子说明,并不太懂。

还是说这个项目已经废弃掉?我想达到的目的是,写node服务端的程序时,在开发阶段让webpack与express/koa结合在一起,改变源代码的时候express实时更新,要用什么组件去实现这个功能?

回复
阅读 6.1k
5 个回答

先從 webpack dev server 是什麼談起?

webpack dev server 是一個開發伺服器,內建 webpack 使用的 live reloading 功能。

那 webpack dev middleware 是啥?

它就是一個用來組織包裝 webpack 使其可以變成中介軟體,或稱中間件的容器。回想一下 express 你大概可以明白關於 middleware 的用途,就是在輸入到輸出的過程中 加工 的一種手段。單純說 middleware 的話我們可以想成一系列任務, 動作(actions stack),不只 express 有,在 Ruby 中的 rake 也具備這種機制。

先看看web dev server的說明

The webpack-dev-server is a little node.js Express server, which uses the webpack-dev-middleware to serve a webpack bundle.

從頭說起的話就是 webpack 本身只負責打包編譯的功能 bundle, webpack-dev-server 當然就是協助我們開發的伺服器,這個伺服器底層是靠 express 來實作的,接著思考一下我們要如何更新(live reload)呢? 當然是需要取得 webpack 編好的資料啊,於是就需要在從 requestresponse 的過程中透過 express 的 middleware 取得資料,而方法就是透過 webpack-dev-middleware 。

webpack 文档写的非常糟糕。请认真阅读文档里的设置,output里有个叫publicPath的属性。

可以看看我的demo 里面有用到

宣传栏