一、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. ORACLE 12.1.0.1 至12.1.0.2升级文档(单机版 DBUA方式)

    12C DBUA新特性 1. 新的pre-upgrade 检查工具. 2. 并行升级. 3. DBUA升级时,默认并行度为CPU个数或2. 并行度可调整. 4. 在升级过程中,DBUA工具可再次调用( ...

  2. vue中v-bind绑定样式

    近来发现v-bind绑定样式的两个好玩的栗子 可以直接绑定到一个样式对象,让模板更清晰: <div id="app"> <div v-bind:style=&qu ...

  3. 关于webpack的版本导致的postcss-loader的问题

    来源自问题 https://segmentfault.com/q/1010000006987956 !!!发现这解决方案还是不能用,估计是webpack又更新了一轮,请看看下下方的答案 某个版本web ...

  4. 牛客假日团队赛1 A.蹄球锦标赛

    链接: https://ac.nowcoder.com/acm/contest/918/A 题意: 为了准备即将到来的蹄球锦标赛,Farmer John正在训练他的N头奶牛(方便起见,编号为1-N,其 ...

  5. 01-----jQuery介绍

    安装node.js cmd查看 node -v npm -v npm init --yes     初始化 npm install jquery --save   1.为什么要使用jQuery    ...

  6. dpkg dependency problems prevent configuration

    dpkg: dependency problems prevent configuration of cr3: cr3 depends on libpng12-0 (>= 1.2.13-4); ...

  7. Linux Shell中的反引号,单引号,双引号

    反引号位 (`) 位于键盘的Tab键的上方.1键的左方.注意与单引号(')位于Enter键的左方的区别. 在Linux中起着命令替换的作用.命令替换是指shell能够将一个命令的标准输出插在一个命令行 ...

  8. 记一次内存溢出java.lang.OutOfMemoryError: unable to create new native thread

    一.问题: 春节将至,系统访问量进入高峰期.随之系统出现了异常:java.lang.OutOfMemoryError: unable to create new native thread.在解决这个 ...

  9. Java 内存模型(零)

    经典老图: 方法区和堆:由所有线程共享的数据区 虚拟机栈和本地方法栈和程序计数器:线程隔离的数据区 后面一步步讲这个图里面所涉及到的内容,待续...

  10. Spring4.x、SpringMVC和DButils整合

    tomcat 8.Spring 4.X.JDK1.8 需要jar包: 1)日志组件:log4j # debug < info < warn < error log4j.rootLog ...