webpack loader
来源:互联网 发布:信用卡网络套现方法 编辑:程序博客网 时间:2024/05/11 20:31
http://webpack.github.io/docs/loaders.html
1. 原则 / 工作
首先,我们应该明白webpack loader是如何工作的,以及他秉承着什么原则进行工作
loader: 'style!css!sass'
这是一段用于打包css文件的loader说明,可以看出loader是可以链式进行,并且从右到左的 (sass -> css -> <style>)
前一个loader在工作完成后,将其工作结果作为输入到下一个Loader继续进行工作。
所以每一个loader都应该有明确的输入&输出
a. 允许链式
b. 明确的输入 & 输出
在这种划分下,我们自然可以让每个loader只完成一部分功能,将打包这一过程的颗粒度降低。
c. 职责明确
2. Loader是什么
Writing a loader is pretty simple. A loader is just a file that exports a function. The compiler calls this function and passes the result of the previous loader or the resource file into it.
正如官网所说,loader其实是也是一个模块,需要export一个方法,编译器将使用这个方法,并且将上一个loader的计算结果传到这个方法。
这也就是说,loader也可以引用其他模块。
官网也介绍了同步/异步两种方式
module.exports = function(content) { return someSyncOperation(content);};
module.exports = function(content) { var callback = this.async(); if(!callback) return someSyncOperation(content); someAsyncOperation(content, function(err, result) { if(err) return callback(err); callback(null, result); });};
异步方式,使用callback的方式,异步地回调计算结果。
相似的,必须要有计算结果最终返回,也会有上一个loader的计算结果传入。
3.API
当然通过loader的配置中可以添加一些参数,而这些参数会被set到this下。
require("./loader1?xyz!loader2!./resource?rrr");
例如这一个url, 对于resource-loader而言
this.version = 1
this.query = rrr
this.request = ./loader1?xyz!loader2!./resource?rrr
同时也提供了一些公用方法:
this.emitFile() 输出文件
this.exec() 执行代码
4.loader-utils
https://github.com/webpack/loader-utils
loader-utils是一个工具包,封装了大部分loader的公用方法
例如:
parseQuery 能够将query解析成一个{}
interpolateName 能够按照规则生成一个文件名
以及URL处理方法等等
0 0
- WebPack Loader
- webpack loader
- webpack loader
- webpack loader
- vue-loader 与 webpack
- webpack loader 列表
- webpack loader加载器
- webpack loader一览
- webpack loader 一览表
- webpack之loader
- webpack之css-loader
- Webpack中的loader
- webpack中的babel-loader
- 【webpack】style-loader错误
- webpack--概念4--loader
- webpack(2):Loader
- Webpack基本概念Loader
- webpack url-loader
- Android中的五大进程
- STM32标准外设库介绍
- 常用正则表达式规则例子整理
- 雷柏 v500s 键盘 开箱
- Android 音乐播放器 源码 下载 高仿魅族系统音乐播放器
- webpack loader
- swift 中跳转WKWebView,链接含有汉字的写法
- Caffe学习系列(2):sovler文件的基本参数解析
- Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等
- Unity3D~纹理格式
- Android ActivityManager 检测Service与Activity是否正在运行
- Android Studio真机测试No minsdk(API 16)>device sdk(API 1)
- Android 打印堆栈的几种方法
- AsyncSocket第三方开源库经常会在release环境下出现接收消息闪退