一、webpack的构成

  1. entry  代表项目的入口
  2. module  开发中,每一个文件可以看作一个module
  3. chunk  代码块
  4. loader  模块转化器
  5. plugin  扩展插件,自定义webpack打包过程
  6. bundle  最终打包完成的文件

二、webpack运行的流程

  1. 参数初始化。根据配置文件webpack.config.js和shell语句中读取与合并参数
  2. 开始编译。初始化一个compiler对象,加载所有插件,执行对象的run()方法开始编译。
  3. 确定入口文件。根据项目配置,找到所有的入口文件。
  4. 识别模块
  5. 编译模块(打包代码)。从入口开始,调用配置的loader对模块进行编译。模块编译完成后,得到模块被转化后的最后内容和他们之间的依赖关系。
  6. 资源输出。根据入口文件和模块的依赖关系 ,组成chunk文件(一个chunk可能包含多个模块),每一个chunk会被转化成一个单独的文件加入输出列表中。
  7. 输出。根据配置的输出参数(路径和文件名),将输出内容写入文件系统。

总结:可以简单理解为,webpack要做的就是分析代码、转换代码、编译代码、输出代码。

三、本质

webpack是一个机制,一个打包的机制。

参考

http://imweb.io/topic/59324940b9b65af940bf58ae

https://juejin.im/entry/5b0e3eba5188251534379615

https://juejin.im/post/5adab998f265da0ba5671cea

http://taobaofed.org/blog/2016/09/09/webpack-flow/

https://www.jianshu.com/p/e24ed38d89fd

https://blog.csdn.net/baozhiqiangjava/article/details/80603509

https://zhuanlan.zhihu.com/p/32093510

https://www.cnblogs.com/zhuzhenwei918/p/7265971.html

https://fengmiaosen.github.io/2017/03/21/webpack-core-code/

https://cloud.tencent.com/developer/article/1015527

Webpack机制、原理简单小结的更多相关文章

  1. Android的Message机制(简单小结)

    对于Android的Message机制主要涉及到三个主要的类,分别是Handler.Message.Looper:首先对每个类做一个简单介绍:然后再介绍所谓的Android的Message机制是如何实 ...

  2. java——关于异常处理机制的简单原理和应用

    异常处理机制的简单原理和应用 一.Execption可以分为java标准定义的异常和程序员自定义异常2种 (1)一种是当程序违反了java语规则的时候,JAVA虚拟机就会将发生的错误表示为一个异常.这 ...

  3. webpack构建原理和实现简单webpack

    webpack打包原理分析 基础配置,webpack会读取配置 (找到入口模块) 如:读取webpack.config.js配置文件: const path = require("path& ...

  4. webpack系列--浅析webpack的原理

    一.前言 现在随着前端开发的复杂度和规模越来越大,鹰不能抛开工程化来独立开发,比如:react的jsx代码必须编译后才能在浏览器中使用,比如sass和less代码浏览器是不支持的.如果摒弃这些开发框架 ...

  5. Atitit.软件与编程语言中的锁机制原理attilax总结

    Atitit.软件与编程语言中的锁机制原理attilax总结 1. 用途 (Db,业务数据加锁,并发操作加锁.1 2. 锁得类型 排它锁 "互斥锁 共享锁 乐观锁与悲观锁1 2.1. 自旋锁 ...

  6. Atitit.病毒木马的快速扩散机制原理nio 内存映射MappedByteBuffer

    Atitit.病毒木马的快速扩散机制原理nio 内存映射MappedByteBuffer 1. Java NIO(New Input/Output)1 1.1. 变更通知(因为每个事件都需要一个监听者 ...

  7. OAuth的机制原理讲解及开发流程

    本想前段时间就把自己通过QQ OAuth1.0.OAuth2.0协议进行验证而实现QQ登录的心得及Demo实例分享给大家,可一直很忙,今天抽点时间说下OAuth1.0协议原理,及讲解下QQ对于Oaut ...

  8. ASP.NET运行机制原理

    ASP.NET运行机制原理 一.浏览器和服务器的交互原理 (一).浏览器和服务器交互的简单描述: 1.通俗描述:我们平时通过浏览器来访问网站,其实就相当于你通过浏览器去另一台电脑上访问文件一样,只不过 ...

  9. ASP.NET运行机制原理 ---浏览器与IIS的交互过程 自己学习 网上查了下别人写的总结的很好 就转过来了 和自己写的还好里嘻嘻

    一.浏览器和服务器的交互原理 (一).浏览器和服务器交互的简单描述: 1.通俗描述:我们平时通过浏览器来访问网站,其实就相当于你通过浏览器去访问一台电脑上访问文件一样,只不过浏览器的访问请求是由被访问 ...

随机推荐

  1. win下rabbitmq的安装

    安装erlang 10.4 和 rabbitmq 3.7.5 然后关闭rabbitmq服务 然后设置 erlang和rabbitmq的环境变量 ERLANG_HOME=erlang安装目录 RABBI ...

  2. Eclipse进行Java web开发时,可能会出现这样的错误:The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path

    我们遇到的错误显示如下:   我们右击有错误提示的文件夹,如下:   我们点击”配置构建路径“,如下:   我们再点击”添加库“,如下:   我们选中上图中标出的选项,再点击下一步,如下:   我们再 ...

  3. 牛客假日团队赛1 I.接机

    链接: https://ac.nowcoder.com/acm/contest/918/I 题意: 一场别开生面的牛吃草大会就要在Farmer John的农场举办了! 世界各地的奶牛将会到达当地的机场 ...

  4. IDEA 工具使用指南

    给项目增加jdk , 方便查看不同版本的jdk源码 鼠标滚轮放大缩小字体 wheel zoom 设置JVM参数 https://www.jetbrains.com/help/idea/tuning-t ...

  5. Linux Shell命令系列(1)

    1. ls命令ls命令是列出目录内容(List Directory Contents)的意思.运行它就是列出文件夹里的内容,可能是文件也可能是文件夹.“ls -l”命令以详情模式(long listi ...

  6. (转)linux 中特殊符号用法详解

    linux 中特殊符号用法详解 原文:https://www.cnblogs.com/lidabo/p/4323979.html # 井号 (comments)#管理员  $普通用户 脚本中 #!/b ...

  7. (转)在CentOS中修改中文字符集

    虽然在实际工作环境下,Linux中不建议使用中文,但是如果一定要进行中文显示,尤其对于刚接触linux且英语基础不太好的人来说,那么本文具有一定的参考价值. 本文介绍在linux的shell环境下优化 ...

  8. Sqoop架构

    Sqoop 架构 Sqoop 架构是非常简单的,它主要由三个部分组成:Sqoop client.HDFS/HBase/Hive.Database.下面我们来看一下 Sqoop 的架构图. 用户向 Sq ...

  9. Python3基础(2)模块、数据类型及运算、进制、列表、元组、字符串操作、字典

    ---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...

  10. HTML <pre> 标签

    需求 错落有致的规则说明 ps.我真的是一个后端开发... pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体.