《玩转webpack》第六章 原理篇: 通过源码掌握 webpack 打包原理webpack 对象,然后执行构建流程 webpack-cli对配置文件和命令行参数进行转换最终生成配置选项参数 options Webpack 的本质 Webpack可以将其理解是一种基于事件流的编程范例,一系列的插件运行。 先看一段代码 class Compiler extends Tapable { // ... } class Compilation extends Tapable //异步并发钩子 AsyncParallelBailHook, //异步并发熔断钩子 AsyncSeriesHook, //异步串行钩子 AsyncSeriesBailHook AsyncSeriesBailHook, //异步串行熔断钩子 AsyncSeriesWaterfallHook //异步串行流水钩子 } = require("tapable"); Tapable 是一个类似于 Node.js 的 EventEmitter0 码力 | 39 页 | 3.66 MB | 1 年前3
《玩转webpack》第七章 原理篇: 编写 Loader 和插件| null, content: string | Buffer, sourceMap?: SourceMap, meta?: any ); loader 的异步处理 通过 this.async 来返回一个异步函数 ·第一个参数是 Error,第二个参数是处理的结果 module.exports = function(input) { const callback = this js saveAs(content, "example.zip"); }); jszip 使用示例 复习:Compiler 上负责文件生成的 hooks Hooks 是 emit,是一个异步的 hook (AsyncSeriesHook) emit 生成文件阶段,读取的是 compilation.assets 对象的值 ·可以将 zip 资源包设置到 compilation.assets0 码力 | 29 页 | 4.37 MB | 1 年前3
《玩转webpack》 第三章 基础篇 Webpack 进阶用法name: true, cacheGroups: { vendors: { test: /[\\/]node_modules[\\/]/, priority: -10 } } } } }; · async 异步引⼊入的库进⾏行行分离(默认) · initial 同步引⼊入的库进⾏行行分离 · all 所有引⼊入的库进⾏行行分离(推荐) 利利⽤用 SplitChunksPlugin 分离基础包 test:0 码力 | 69 页 | 4.33 MB | 1 年前3
共 3 条
- 1













