Node.js 什么';让express use网页包开发服务器的目的是什么?

Node.js 什么';让express use网页包开发服务器的目的是什么?,node.js,express,webpack,Node.js,Express,Webpack,我试图理解为什么人们希望webpack服务器用于webpack捆绑并提供客户端代码和api的express的应用程序 比如说。我想象一下,您将在一个端口上运行express,在另一个端口上运行webpack,并将所有对webpack的请求代理到back express后端 但是,我仍然看到这种用法: const app = express(); const compiler = webpack(config); app.use(express.static(__dirname + '/di

我试图理解为什么人们希望webpack服务器用于webpack捆绑并提供客户端代码和api的express的应用程序

比如说。我想象一下,您将在一个端口上运行express,在另一个端口上运行webpack,并将所有对webpack的请求代理到back express后端

但是,我仍然看到这种用法:

const app = express();  
const compiler = webpack(config);

app.use(express.static(__dirname + '/dist'));  
app.use(webpackMiddleware(compiler);  
app.use(webpackHotMiddleware(compiler)); // And this line  

让express使用此服务器的原因是什么?

Webpack不适用于服务器,这是一种将MDN模块写入浏览器的方法。在您的代码中,webpack正在“锁定”以表示,并将处理它的一些请求。这称为中间件,是node.js中大多数服务器库的主干(Meteor除外)。在这段代码中,只有一个(前向)服务器,尽管express喜欢以另一种方式进行划分。让我们浏览一下代码中的重要行:

const app = express();  
const compiler = webpack(config);

app.use(express.static(__dirname + '/dist'));  
上面的行在/dist中查看是否有文件提供给浏览器。按照正常情况,此中间件通常在处理任何动态页面之前启动

app.use(webpackMiddleware(compiler);  
app.use(webpackHotMiddleware(compiler)); // And this line  
如果静态服务器无法处理此请求,则向他们提供webpack模板

希望这有帮助,

布伦丹·麦奎尔

谢谢你的回答。这样做有什么好处,而不是让webpack dev server在其自己的端口上运行(完全独立)并在其服务器上运行express。除了通过express服务器代理对webpack服务器的所有请求外,完全没有交互。您可以使用expres和webpack mix,因此理论上可以基于express更改webpack。还有就是把所有东西都放在一个端口后面,从而保持服务器的霸主地位。我不知道你想如何/为什么改变基于express的网页包。由于webpack服务器本身是一个独立的服务器,它需要在自己的端口上运行。诚然,我对webpack不太了解,我只是根据我的经验和研究做出有根据的猜测,但两者之间的集成似乎是合并的唯一原因