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+ Ajax IE8 内存泄漏问题
Oct 15 Javascript
将string解析为json的几种方式小结
Nov 11 Javascript
js 一个关于图片onload加载的事
Nov 10 Javascript
jquery中获得元素尺寸和坐标的方法整理
May 18 Javascript
node.js中的path.sep方法使用说明
Dec 08 Javascript
Jquery实现鼠标移动放大图片功能实例
Mar 25 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
Mar 26 Javascript
javascript中setInterval的用法
Jul 19 Javascript
jQuery Ajax页面局部加载方法汇总
Jun 02 Javascript
微信小程序methods中定义的方法互相调用的实例代码
Aug 07 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
Oct 22 Javascript
了解在JavaScript中将值转换为字符串的5种方法
Jun 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与SQL注入攻击[三]
2007/04/17 PHP
php 启动时报错的简单解决方法
2014/01/27 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
jQuery使用方法
2017/02/04 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
2017/07/10 Javascript
Vue2.0如何发布项目实战
2017/07/27 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
前端常见跨域解决方案(全)
2017/09/19 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
2017/11/09 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
2019/08/29 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
Vue中父子组件的值传递与方法传递
2020/09/28 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
Django实现学员管理系统
2019/02/26 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
python常用函数与用法示例
2019/07/02 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
python使用隐式循环快速求和的实现示例
2020/09/11 Python
美国皮靴公司自1863年:The Frye Company
2016/11/30 全球购物
德国排名第一的主题公园门票网站:Attraction Tickets Direct
2019/09/09 全球购物
阿迪达斯越南官网:adidas越南
2020/07/19 全球购物
最新大学生自我评价
2013/09/24 职场文书
教师绩效工资方案
2014/02/01 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
六年级语文下册教学计划
2015/01/22 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python