webpack3之loader全解析


Posted in Javascript onOctober 26, 2017

首先亮出webpack官方网站,webpack能干什么?官网给出的答案就是,一句话,让一切变得简单!

各式各样的loader层出不穷,让我们在构建时不知所措,于此,总结下loader的全解析。

概念

loader,顾名思义,加载器,英文的解释如下:

Loaders are transformations that are applied on the source code of a module. They allow you to pre-process files as you import or “load” them. Thus, loaders are kind of like “tasks” in other build tools, and provide a powerful way to handle front-end build steps. Loaders can transform files from a different language (like TypeScript) to JavaScript, or inline images as data URLs. Loaders even allow you to do things like import CSS files directly from your JavaScript modules!

中文翻译过来就是:

loader 用于对模块的源代码进行转换。loader 可以使你在 import 或“加载”模块时预处理文件。因此,loader 类似于其他构建工具中“任务(task)”,并提供了处理前端构建步骤的强大方法。loader 可以将文件从不同的语言(如 TypeScript)转换为 JavaScript,或将内联图像转换为 data URL。loader 甚至允许你直接在 JavaScript 模块中 import CSS文件!

从中,可以看出loader的强大作用,分析下:

  1. 转换的作用。开发所用到的都转换成网页加载所必备的html+css+js+img等要求格式的文件。
  2. 转换对象是源代码。loader只对源代码转换,至于其他的功能,plugins就来接收它做不到的地方。

总结一句话:loader, 加载的机器,形象的比喻下,就像一个豆浆机,放上你的原料,它就开始认真的工作了!

常用的loader

1、babel-loader

This package allows transpiling JavaScript files using Babel and webpack.

加载 ES2015+ 代码,然后使用 Babel 转译为 ES5

安装:

npm install --save-dev babel-loader babel-core babel-preset-env webpack

使用:

{
 test: /\.js$/,
 exclude: /node_modules/,
 loader: 'babel-loader'
}

2、style-loader

Adds CSS to the DOM by injecting a <style> tag

将模块的导出作为样式添加到 DOM 中

安装:

npm install style-loader --save-dev

建议要与css-loader一起使用

使用:

{
 test: /\.css$/,
 use: [
 'style-loader',
 'css-loader'
]
}

3、css-loader

解析 CSS 文件后,使用 import 加载,并且返回 CSS 代码

安装:

npm install css-loader --save-dev

使用:

{
 test: /\.css$/,
 use: [ 'style-loader', 'css-loader' ]
}

4、less-loader

加载和转译 LESS 文件

安装:

npm install --save-dev less-loader less

使用:

{
 test: /\.less$/,
 exclude: /node_modules/,
 use: ExtractTextPlugin.extract(['css-loader', 'less-loader'])
}

5、url-loader

Loads files as base64 encoded URL

处理图片类文件,但如果文件小于限制,可以返回 data URL

安装:

npm install --save-dev url-loader

使用:

{
 test: /\.(jpg|jpeg|png|gif)$/,
 loader: 'url-loader',
 options: {
   limit: 8192
 }
}

6、file-loader

Instructs webpack to emit the required object as file and to return its public URL

处理font/svg等,将文件发送到输出文件夹,并返回(相对)URL

安装:

npm install file-loader --save-dev

使用:

{
 test: /\.(woff|woff2|svg|eot|ttf)$/,
 use: 'file-loader'
}

7、vue-loader

加载和转译 Vue 组件

安装:

npm install --save-dev vue-loader vue vue-template-compiler

使用:

{
 test: /\.vue$/,
 loader: 'vue-loader',
 options: {
   loaders: {
     less: ExtractTextPlugin.extract({
       use: ['css-loader', 'less-loader'],
       fallback: 'vue-style-loader'
     })
   }
 }
}

至此,有关loader中所用的参数请移步官网查询解决,谢谢查阅!以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery1.4.2与老版本json格式兼容的解决方法
Feb 12 Javascript
你必须知道的JavaScript 变量命名规则详解
May 07 Javascript
Jquery.Form 异步提交表单的简单实例
Mar 03 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
Aug 22 Javascript
简单实现异步编程promise模式
Jul 31 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
Jan 28 Javascript
微信小程序-小说阅读小程序实例(demo)
Jan 12 Javascript
jQuery插件扩展操作入门示例
Jan 16 Javascript
Bootstrap笔记之缩略图、警告框实例详解
Mar 09 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
Feb 14 Javascript
Vue toFixed保留两位小数的3种方式
Oct 23 Javascript
Nuxt的路由动画效果案例
Nov 06 Javascript
JS使用正则表达式找出最长连续子串长度
Oct 26 #Javascript
AngularJS实现的输入框字数限制提醒功能示例
Oct 26 #Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
Oct 26 #Javascript
详谈构造函数加括号与不加括号的区别
Oct 26 #Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
Oct 26 #Javascript
纯JavaScript实现实时反馈系统时间
Oct 26 #Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
Oct 26 #Javascript
You might like
php使用base64加密解密图片示例分享
2014/01/20 PHP
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
js select常用操作控制代码
2010/03/16 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
vue进行图片的预加载watch用法实例讲解
2018/02/07 Javascript
react基本安装与测试示例
2020/04/27 Javascript
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
Saltstack快速入门简单汇总
2016/03/01 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
Exception类的常用方法
2012/06/16 面试题
后勤岗位职责
2013/11/26 职场文书
就业自荐信
2013/12/04 职场文书
求职个人评价范文
2014/04/09 职场文书
医师定期考核实施方案
2014/05/07 职场文书
党员承诺书范文
2014/05/19 职场文书
美化环境标语
2014/06/20 职场文书
园林系毕业生求职信
2014/06/23 职场文书
项目申报专员岗位职责
2014/07/09 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
中学生检讨书范文
2014/11/03 职场文书
现场施工员岗位职责
2015/04/11 职场文书