webpack-dev-server启动后, localhost:8080返回index.html的原理

webpack-dev-server是一个采用Node.js Express实现的微型服务器, 内部使用webpack-dev-middleware来响应发送到服务器监听单口的HTTP请求。

webpack-dev-server主要用于前端项目的本地开发和调试。

具体使用,只需要在package.json的devDependencies里添加它的依赖即可。

同样在package.json里定义dev script,执行该webpack-dev-server, 这样用命令行npm run dev就可启动webpack-dev-server.

其原理是,npm install后,webpack-dev-server.js就会自动出现在当前项目文件夹的node_modules目录里:

Webpack-dev-server.js的服务器实例通过关键字new创建出来:

在Server.js的内部实现里,第76行我们就能观察到该服务器采用nodejs的express模块实现。

Express实例创建后,通过第78行app.all(‘*‘, ... )挂接处理函数,这个箭头函数(req,res,next) => { 负责处理所有发往这个服务器的HTTP请求。

第92行就是Server.js里webpackDevMiddleware的初始化过程。

现在我们就来看看浏览器里输入localhost:8080后会发生什么事情。

根据前面的描述,浏览器发起前往localhost:8080的请求被webpackDevMiddleware服务,见下图调试截图,其中变量req.url为/,这是我们期望看到的,因为localhost:8080后面没有跟任何路径。

最终会将执行流投递到processRequest函数里,第53行代码说明,如果HTTP请求路径/后没有子路径,则默认返回一个硬编码的index.html

谜团就这样解开了。

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

原文地址:https://www.cnblogs.com/sap-jerry/p/9831527.html

时间: 2024-11-05 15:49:28

webpack-dev-server启动后, localhost:8080返回index.html的原理的相关文章

笔记:配置 webpack dev server

笔记:配置 webpack dev server 安装 webpack-dev-server 组件 配置 webpack.config.js 配置 增加 html-webpack-plugin 组件 启动 webpack-dev-server 原文地址:https://www.cnblogs.com/F4NNIU/p/webpack-dev-server.html

[Webpack] Access Webpack Dev Server from Mobile Safari on an iPhone

Testing your sites on mobile devices is a critical part of the development process. Webpack dev server enables you to visit the server from any device using the host option. This lesson walks you through accessing webpack dev server using an iPhon Ch

zato server启动后自动关闭问题解决

症状 zato start server 启动server后,过一会server自动关闭了 解决 查看日志 UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 269: ordinal not in range(128) Traceback (most recent call last): File "/opt/zato/2.0.5/eggs/gunicorn-18.0-py2.7.egg/gunicorn/a

Tomcat启动成功,localhost:8080访问失败(Eclipse)

问题描述: tomcat单独运行,localhost:8080可以访问,但是部署到Eclipse下的Server服务器就不可以 解决: 1.双击Server下的tomcat打开管理页面 2.检查端口是否对应,默认是8080 3.Server Locations是否选择了Use Tomcat Installation(本人就是这里没有选择对导致的) 原文地址:https://www.cnblogs.com/zhuziyu/p/8877101.html

Webpack Dev Server + React Hot Loader

1.安装 npm install webpack-dev-server react-hot-loader --save-dev 2.配置server.js var webpack = require('webpack'); var WebpackDevServer = require('webpack-dev-server'); var config = require('./webpack.config'); new WebpackDevServer(webpack(config), { pu

dell r710 安装ubuntu 12.04 server 启动后进入initramfs解决办法

grub 启动菜单后加入 rootdelay=90, 如下:/boot/vmlinuz-2.6.32-38-server root=UUID=8685ab7a-20a9-4ddf-81c8-9ab9a7043fd8 ro   quiet rootdelay=90 原因: [sda] 初始化过慢,根文件系统由ramfs切到sda失败引起,需要延迟一会

tomcat正常启动后http://localhost:8080/报错404

症状: tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误.同时其他项目页面也不能访问. 关闭eclipse里面的tomcat,在tomcat安装目录下双击startup.bat手动启动tomcat服务器.访问htt://localhost:8080/能正常访问tomcat管理页面. 症状原因: eclipse将tomcat的项目发布目录(tomcat 目录中的webapp)重定向了,所以你会发现在tomcat安装目录

问题:eclipse配置server以后启动正常,但localhost:8080访问失败

现像:eclipse-->services tab-->添加server,启动正常,但是http://localhost:8080访问失败,返回值为404 解决:双击server,进入配置页面,如下图, 选中红框内的radio,重启server,问题解决.

eclipse启动tomcat, http://localhost:8080无法访问的解决方案

问题:: tomcat在eclipse里面能正常启动,但在浏览器中访问http://localhost:8080/不能访问tomcat管理页面,且报404错误.同时其他项目页面也不能访问.访问的时候出现下列页面: 现在关闭eclipse里面的tomcat,在tomcat安装目录下双击startup.bat手动启动tomcat服务器.访问htt://localhost:8080/能正常访问下面熟悉的tomcat管理页面,如下所示: 问题原因: 由于eclipse将tomcat的项目发布目录(tom