写在前面: 本来一开始想沿用之前vue源码的标题:webpack源码之***,但是这个工具比较巨大,所以为防止有人觉得我装逼跑来喷我(或者随时鸽),加上浅析二字,以示怂。 既然是浅析,那么案例就不必太复杂,所以继续按照之前vue源码,以最简单形式进行源码分析,如下: 配置文件 ...
总体过了一下后面的流程,发现Compiler模块确实不适合单独讲解,这里继续讲解后面的代码: 这行代码与之前设置options默认值非常相似,但是复杂程度根本不是一个次元的。 这一节只能简单的看一眼内部到底有多少东西,整理后源码如下: 这个模块除去父类引入,其余插件光顶部引入就有 个,简直就是插件之王。 略去具体插件内容,先看流程,父类其实是个接口,啥都没有: 接下来是一个唯一的主方法proce ...
2017-12-21 16:05 0 979 推荐指数:
写在前面: 本来一开始想沿用之前vue源码的标题:webpack源码之***,但是这个工具比较巨大,所以为防止有人觉得我装逼跑来喷我(或者随时鸽),加上浅析二字,以示怂。 既然是浅析,那么案例就不必太复杂,所以继续按照之前vue源码,以最简单形式进行源码分析,如下: 配置文件 ...
这一节跑下一批plugin。 希望不要跟上一节一样,全是plugin。 流程如图(看看流程图就行了,后面也没有什么内容): EnsureChunkConditionsPlugin 这个看看就懂,不解 ...
不管那么多,继续跑流程,流程图如下: this-compilation事件流的plugin来源 ...
解决掉了最头疼的DirectoryWatcher内部实现,这一节可以结束NodeWatchFileSystem模块。 关于watch的应用场景,仔细思考了下,这不就是热重载的核心嘛。 首先是监视文件,触发文件change事件后收集变动文件信息,重新进行打包,更新JS后触发页面重新 ...
validateSchema模块 首先来看错误检测: 可以注意到,这里传了两个参数,其实第一个参数来源于一个JSON文件: 这个JSON文件非常大,可以观察一下部分内容: 从描述可以猜测,这里的key对应options中 ...
在cachedInput、output、watch三大文件系统中,output非常简单,没有必要讲,其余两个模块依赖于input模块,而input主要是引用了graceful-fs的部分API,所以这节来讲讲graceful-fs。 上一节整理的源码如下: 内容包含 ...
上一节看了一眼预编译的总体代码,这一节分析convert-argv模块。 这个模块主要是对命令参数的解析,也是yargs框架的核心用处。 生成默认配置文件名数组 函数内部,首先判断了argv.d与argv.p属性是否存在,这个属性来源于参数d与p ...
浮动 浮动是css里面布局最多的一个属性,也是很重要的一个属性。 float:表示浮动的意思。它有四个值。 none: 表示不浮动,默认 left: 表示左浮动 right:表示右 ...