《玩转webpack》第六章 原理篇: 通过源码掌握 webpack 打包原理
//异步并发钩子 AsyncParallelBailHook, //异步并发熔断钩子 AsyncSeriesHook, //异步串行钩子 AsyncSeriesBailHook AsyncSeriesBailHook, //异步串行熔断钩子 AsyncSeriesWaterfallHook //异步串行流水钩子 } = require("tapable"); Tapable 是一个类似于 Node.js 的 EventEmitter ,非必传。类方法会根据传参,接受同样数量的参数。 const hook1 = new SyncHook(["arg1", "arg2", "arg3"]); Tapable 的使用-钩子的绑定与执行 Tabpack 提供了同步&异步绑定钩子的方法,并且他们都有绑定事件和执行事件对 应的方法。 Tapable 的使用-hook 基本用法示例 const hook1 = new SyncHook(["arg1", "arg2"0 码力 | 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