摘要:
介绍Compiler的构造比较无趣,不如先过后面的,在用到compiler的时候再做讲解。 这一节主要讲这行代码: 这个构造了一个NodeEnvironmentPlugin对象并调用apply对compiler进行操作。 流程图: 模块源码如下: 除去添加事件流,其余几步都是在compiler对象上 阅读全文
摘要:
Tapable工具 完成webpack默认参数注入后,下一步虽然是 new Compiler() ,但是这东西不是一下可以讲完的,复杂的一批。 不如先从工具入手,分块讲解compiler,首先来看看事件流执行器Tapable工具。 tips:这里的Tapable源码来自于webpack内部自带的ta 阅读全文
摘要:
WebpackOptionsDefaulter模块 通过参数检测后,会根据单/多配置进行处理,本文基于单配置,所以会进行到如下代码: 模块的作用是进行默认值的设置,流程图如下: 进入该模块: 可以看到,这个模块的内容是用ES6的新语法写的,很好理解,因为这个模块是只是针对webpack的默认设置,所 阅读全文
摘要:
validateSchema模块 首先来看错误检测: 可以注意到,这里传了两个参数,其实第一个参数来源于一个JSON文件: 这个JSON文件非常大,可以观察一下部分内容: 从描述可以猜测,这里的key对应options中的key,value就是检测方式。 比如说entry放到required代表是必 阅读全文
摘要:
从convert-argv出来后,目前进度在这: 声明了一个熟悉的ifArg函数后进入了processOptions函数,接下来是根据一些命名参数处理那个outputOptions属性,我怎么都找不到这个在哪里定义的,知道的人提醒一下。 因此,直接进入webpack主函数,传入返回的options对 阅读全文
摘要:
上一节看了一眼预编译的总体代码,这一节分析convert-argv模块。 这个模块主要是对命令参数的解析,也是yargs框架的核心用处。 生成默认配置文件名数组 函数内部,首先判断了argv.d与argv.p属性是否存在,这个属性来源于参数d与p,即webpack -d -p,测试如图: 因为懒得加 阅读全文
摘要:
写在前面: 本来一开始想沿用之前vue源码的标题:webpack源码之***,但是这个工具比较巨大,所以为防止有人觉得我装逼跑来喷我(或者随时鸽),加上浅析二字,以示怂。 既然是浅析,那么案例就不必太复杂,所以继续按照之前vue源码,以最简单形式进行源码分析,如下: 配置文件config.js: 入 阅读全文
摘要:
先不进源码,分析一下打包后的文件,来一张图: 首先创建两个JS文件,内容如下: 分别为配置文件和入口JS文件,内容弄个简单的。 接下来在当前目录执行webpack --config config.js,会输出一个output.js,简化后内容如下: 可以看到,这是一个IIFE,可以利用闭包来对模块进 阅读全文
摘要:
此系列随时可能断更,毕竟我是解释型源码分析…… tips:本系列源码版本为3.10.0 尝试看过Spring的源码,有点烧脑,所以还是重回JS吧! 在配置完环境变量后,可以通过webpack指令进行打包,需要知道的是,如果当前路径存在webpack.config.js文件,会被默认指定为配置JS文件 阅读全文
摘要:
Spring的注解总结。 地址:https://docs.spring.io/spring/docs/4.3.12.RELEASE/spring-framework-reference/htmlsingle/ 1、标记注解 @Configuration 定义:标记该类作为一个特殊配置类,可以理解为x 阅读全文