zoukankan      html  css  js  c++  java
  • 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的原创文章,请关注公众号"汪子熙":

  • 相关阅读:
    CSS中position小解
    position
    mac默认安装postgresql, 如何让postgresql可以远程访问
    The data directory was initialized by PostgreSQL version 9.6, which is not compatible with this version 10.0.
    active admin gem error
    psql 无法添加超级用户
    ubuntu 15.04 安装Balsamiq Mockups 3
    Rails html 写public里图片的路径
    rails c 历史命令
    undefined local variable or method `per' for []:ActiveRecord::Relation
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/9831527.html
Copyright © 2011-2022 走看看