vue——webpack打包小解

vue——webpack打包小解_第1张图片


QQ 1285575001
Wechat M010527
技术交流 QQ群599020441
纪年科技aming


前端构建工具

vue——webpack打包小解_第2张图片

  • 前端资源编译打包
  • 输出 js css
  • webpack 配置有毒

vue——webpack打包小解_第3张图片

  • vue 源码资源打包 - webpack 编译 ---->html + app.js

  • 开发webpack 配置解析
    vue——webpack打包小解_第4张图片

  • 从入口看 dev webpack如何编译
    vue——webpack打包小解_第5张图片vue——webpack打包小解_第6张图片

  • 各种依赖

  • 文件路径 操作方法
    vue——webpack打包小解_第7张图片

  • nodejs框架

  • express 启动webserver
    webpack 核心编译工具
    node.js 开放API (支持引入)

  • 引入一个 运行开发配置文件
    vue——webpack打包小解_第8张图片

  • proxymiddleware HTTP代理转发中间件

  • webpackconfig webpack配置
    vue——webpack打包小解_第9张图片vue——webpack打包小解_第10张图片

  • dev 开发时
    vue——webpack打包小解_第11张图片
    merge 合并配置文件用的
    untils 用的一些工具方法
    basewebpackconfig webpack配置文件 (开发/编译共享文件)
    htmlwebpackplugin 操作html插件


  • webpackbaseconf 文件
    vue——webpack打包小解_第12张图片
  • projectroot 定义当前项目 根目录
    vue——webpack打包小解_第13张图片
  • 一些基本配置
    entry 入口配置 app key-对象
    vue——webpack打包小解_第14张图片

vue——webpack打包小解_第15张图片
vue——webpack打包小解_第16张图片output 输出配置
path 文件路径 对应assetsroot (在当前目录下 创建一个dist 当作输出目录)
vue——webpack打包小解_第17张图片

  • publicpath 静态资源绝对路径
  • 对应
    vue——webpack打包小解_第18张图片
  • filename 输出的文件名称
    vue——webpack打包小解_第19张图片
  • resolve 代码中 根据 require es6 input 模块相关配置

extensions 自动补全 文件后缀
vue——webpack打包小解_第20张图片在这里插入图片描述

  • fallback 指向node_modules模块

  • alias 提供别名 require路径缩短字符串长度
    在这里插入图片描述

  • 功能跟fallback类似
    vue——webpack打包小解_第21张图片

  • 类似文件处理 loader 做编译
    扫描工程目录 根据后缀名 匹配文件
    文件内容 输入 loader输出

  • preloaders 在loader 之前处理eslint
    vue——webpack打包小解_第22张图片

  • loaders 不同loader处理
    include 检查目录里的文件 处理编译
    exclude 排除目录
    vue——webpack打包小解_第23张图片

  • limit 限定图片文件大小 小于10kb 生成字串

  • name 小于:base64字符串打包到 编译好的 js文件里
    大于 :单独生成一个文件在这里插入图片描述
    生成 命名规则assetspath方法 对应
    vue——webpack打包小解_第24张图片vue——webpack打包小解_第25张图片
    又指向
    在这里插入图片描述vue——webpack打包小解_第26张图片

  • 拿到assetsubdirectory 这个字串 拼接path 这个参数

  • 生成 static/img/filename+file hash + ext (拓展名)

    vue——webpack打包小解_第27张图片

  • 字典文件 规则同上
    vue——webpack打包小解_第28张图片

  • eslint formatter 检查到错误提示错误信息 并提供规则链接

  • vue loader css处理文件 loader
    指向
    vue——webpack打包小解_第29张图片
    vue——webpack打包小解_第30张图片vue——webpack打包小解_第31张图片

  • 返回各种css预处理器对象

  • 根据generateloaders 生成值
    传入 名称数组 通过判断字符数组的 元素 字符串
    拼接 生成 各种预处理器loader


vue——webpack打包小解_第32张图片
dev conf 这个文件
vue——webpack打包小解_第33张图片
entry -> dev client 入口文件 --> 数组
加上
vue——webpack打包小解_第34张图片
vue——webpack打包小解_第35张图片

  • 启动 hot-reload 热加载技术代码
    (当改变源码是 浏览器不用刷新 也可浏览到变化的页面)
    (过程失败 自动刷新浏览器)

  • 合并
    vue——webpack打包小解_第36张图片
    指向
    vue——webpack打包小解_第37张图片
    vue——webpack打包小解_第38张图片vue——webpack打包小解_第39张图片
    vue——webpack打包小解_第40张图片

  • 同是 css loader

  • 遍历 扩展名 拼接再调用 cssloader 处理

在这里插入图片描述

  • 方便源码调试
    vue——webpack打包小解_第41张图片
  • 定义一些插件
  • 替换 process.env
    指向
    vue——webpack打包小解_第42张图片
    vue——webpack打包小解_第43张图片
    vue——webpack打包小解_第44张图片
    合并了 prodenv
    vue——webpack打包小解_第45张图片
    vue——webpack打包小解_第46张图片
    输出 development 对象
  • 来做 开发 运行时 判断
    vue——webpack打包小解_第47张图片
  • occurenceorderplugin 优化插件 打包后 模块使用频率
    给经常使用的模块 分配最小的ID
  • hotmodulereplacement plugin hotmodule 加载插件
  • no errorsplugin 加载出现错误 跳过那部分编译代码
    发现 编译包错误
  • htmlwebpackplugin
    关键 filename 指定编译后 html 文件名
    template 我们要处理的模板
    inject true 处理后的css js 自动添加到 html文件

vue——webpack打包小解_第48张图片
在这里插入图片描述

  • port 可以在 环境变量中去 也可以 config 配置
    指向

vue——webpack打包小解_第49张图片
vue——webpack打包小解_第50张图片
在这里插入图片描述

  • 从dev- proxytable 中取需要代理的接口

vue——webpack打包小解_第51张图片
在这里插入图片描述

  • 业务所需 端口转发 代理

在这里插入图片描述

  • 用express 启动 拿到app 对象

  • webpack 编译 传入config 参数
    vue——webpack打包小解_第52张图片

  • 上文 compiler 主要是给 middleware 中间件用
    指定了 静态资源的 访问目录

  • 调试运行 express 中强大中间件
    编译好 文件 放在内存中
    vue——webpack打包小解_第53张图片

  • hotmiddleware express 配合中间件、

vue——webpack打包小解_第54张图片

  • 代理转发操作 使用 proxymiddleware 中间件
    vue——webpack打包小解_第55张图片
    中间件 使用
    vue——webpack打包小解_第56张图片
  • dev 中 publicpath 和 subdirectiry

在这里插入图片描述
访问 从当前的 static目录取

  • 配置静态资源访问路径

vue——webpack打包小解_第57张图片

  • 监听端口 开发时访问用

你可能感兴趣的:(前端)