图解Webpack——实现一个Loader
loader承担的是翻译官的职责,利用其弥补了让webpack只能理解JavaScript和JSON文件的问题,从而可以处理其它类型的文件,所以loader对webpack的重要性不言而喻,所以学习构建一个loader是学习webpack的必经之路。在学习编写一个loader之前,要明确一下loader的职责: 其职责是单一的,只需要完成一种转换 。下面将逐步阐述选择loader开发中的几个关键点并实现一个loader。 一、Loader分类 loader是一个CommonJs风格的函数,接收输入的source后可通过同步或异步的方式进行处理,然后将内容进行输出。 1.1 同步Loader 同步loader指的是同步的返回转换后的内容。由于是在Node.js这样的单线程环境,所以转换过程会阻塞整个构建,构建缓慢,不适用于耗时较长的环境中。对于同步loader,主要有两种方法返回转换后的内容:return和this.callback. return 利用return可直接返回转换后结果。 module.exports = function ( source , map, meta){ // ... // output为处理后结果 return output; } this.callback 该方法相比于return更加灵活,其参数主要有四个: this.callback( err: