• .less文件与.scss文件使用与.css文件相仿

    • less-loader使用需要借助less插件,终端输入npm i less less-loader -D安装;
    • sass-loader使用需要借助node-sass插件,终端输入npm i node-sass sass-loader -D安装
    • 入口js文件中引入
    import "./css/index.less"
    import "./css/index.scss"
    • webpack.config.js中配置less-loader
    module.exports = {
    ...
    module:{
    rules:[
    //loader的顺序不能颠倒,webpack使用loader的顺序是从右到左(从下到上)
    {test:/\.css$/,use:['style-loader','css-loader']},
    {test:/\.less$/,use:['style-loader','css-loader','less-loader']},
    {test:/\.scss$/,use:['style-loader','css-loader','sass-loader']}, ]
    }
    }

9.图片格式文件打包

  • 图片格式文件打包需要借助file-loader插件,终端输入npm i file-loader url-loader -D安装url-loader
  • 给index.html中添加一个div容器,设置div的background:URL()属性
<div id="img"></div>
#img{
width: 128px;
height: 128px;
background: url(../img/圣诞树.png);
}
  • webpack.config.js中给所有图片属性配置url-loader
module.exports = {
...
module:{
rules:[
//loader的顺序不能颠倒,webpack使用loader的顺序是从右到左(从下到上)
{test:/\.css$/,use:['style-loader','css-loader']},
{test:/\.less$/,use:['style-loader','css-loader','less-loader']},
{test:/\.scss$/,use:['style-loader','css-loader','sass-loader']},
{test:/\.(jpg|png|bmp|jpeg|gif)$/,use:'url-loader'},
]
}
}
  • 点开网页审查元素会发现原图片已被自动转换成base64格式。

  • 我们可以在url-loader中进行配置
//url-loader 可以接收配置参数
//limit 参数:若图片大小(单位:字节)大于或等于limit的值,则图片会被转换为base64格式;若图片小于limit的值,则不转换
//name 参数:设置name=[name].[ext]后,打包时将会保留文件原文件名。前面加上[hash:8]则会在原文件名前随机生成8位hash值,防止文件重名。
{test:/\.(jpg|png|bmp|jpeg|gif)$/,use:'url-loader?limit=5106&name=[hash:8]-[name].[ext]'},

10.字体图标文件打包

  • 此处引入bootstrap中的图标。首先安装npm i bootstrap -D,由于bootstrap在4.x之后将icon分离出来作为一个单独项目open-iconic,所以在安装bootstrap之后还需安装open-iconic项目npm i https://github.com/iconic/open-iconic.git -D. (未安装open-iconic也不会报错,但是图标不能正常显示)
  • index.html中使用icon图标
<span class="oi oi-account-login"></span>
<span class="oi oi-account-logout"></span>
  • main.js中引入
//通过路径形式引入node_modules中相关的文件,可以直接省略node_modules,直接写包的名字,默认回去node_modules里找
import "bootstrap/dist/css/bootstrap.css"
import "open-iconic/font/css/open-iconic-bootstrap.css"
  • webpack.config.js中配置
module.exports = {
...
module:{
rules:[
//loader的顺序不能颠倒,webpack使用loader的顺序是从右到左(从下到上)
{test:/\.css$/,use:['style-loader','css-loader']},
{test:/\.less$/,use:['style-loader','css-loader','less-loader']},
{test:/\.scss$/,use:['style-loader','css-loader','sass-loader']},
{test:/\.(jpg|png|bmp|jpeg|gif)$/,use:'url-loader?limit=5106&name=[hash:8]-[name].[ext]'},
{test:/\.(ttf|svg|woff|eot|woff2|otf)$/,use:'url-loader'},
]
}
}

11.高级语法打包

  • 如果在js文件中使用了高级语法,例如ES6/7中的语法,webpack则无法解析。此时,我们需要使用babel-loader。
  • 例如,我们在main.js 中使用class关键字,此时webpack解析报错。
class Person {
static info = {name:"seven",age:150}
} console.log(Person.info);
  • babel-loader需要借助babel-core,终端安装npm i babel-loader babel-core -D

    • 在项目根目录创建.babelrc文件用来配置babel,同时安装babel需使用的相关插件
    • npm i babel-plugin-transform-runtime -D
    • npm i babel-preset-env babel-preset-stage-0 -D
{
"presets": ["env","stage-0"],
"plugins": ["transform-runtime"]
}
  • webpack.config.js中配置babel-loader
module.exports = {
...
module:{
rules:[
//loader的顺序不能颠倒,webpack使用loader的顺序是从右到左(从下到上)
{test:/\.css$/,use:['style-loader','css-loader']},
{test:/\.less$/,use:['style-loader','css-loader','less-loader']},
{test:/\.scss$/,use:['style-loader','css-loader','sass-loader']},
{test:/\.(jpg|png|bmp|jpeg|gif)$/,use:'url-loader?limit=5106&name=[hash:8]-[name].[ext]'},
{test:/\.(ttf|svg|woff|eot|woff2|otf)$/,use:'url-loader'},
//exclude 表示使用babel-loader时排除node_modules目录及其以下的文件
{test:/\.js/,use:"babel-loader",exclude:/node_modules/}
]
}
}

webpack基本使用告一段落

前端小白webpack学习(四)的更多相关文章

  1. 前端小白webpack学习(二)

    前一篇写了自我总结的webpack定义:为JavaScript服务的静态模块打包器 和几大基本概念 entry.output.plugins.loaders等.指路前端小白webpack学习(一) 下 ...

  2. 前端小白webpack学习(一)

    俗话说得好,好记性不如烂笔头. 之前就在学习中看过webpack的教程,然而一段时间没用,火速的忘光了.写这篇博文,做个总结,也让自己以后有个地方回顾. 看webpack之前,我先去看了一下官方文档, ...

  3. 前端小白webpack学习(三)

    不写不知道,一写发现自己真是罗里吧嗦,尽量改进 之前写了webpack的主要概念和一些使用,今天再记一下webpack的plugins和loaders的使用 7.webpack plugins使用 例 ...

  4. 前端小白的学习之路html与css的较量【二】

    标签的划分 块级元素 独占一行 设置 宽 高可以起作用 排列方式: 上下排列 行内元素 可以共占一行 设置 宽 高 不起作用,大小由内容决定 排列方式:左右排列 行内块 可以共占一行 可以设置宽 高 ...

  5. 前端小白的学习之路html与css的较量【一】

    html和css的较量 web结构的组成 html标签规则 快速生成一个html html的基本结构 标签的关系 标签 标题标签 段落 图片 超链接 a 属性 a标签里面的值 字符实体 新增的标签 1 ...

  6. webpack前端构建工具学习总结(四)之自动化生成项目中的html页面

    接续上文:webpack前端构建工具学习总结(三)之webpack.config.js配置文件 插件的介绍文档:https://www.npmjs.com/package/html-webpack-p ...

  7. webpack前端构建工具学习总结(一)之webpack安装、创建项目

    npm是随nodeJs安装包一起安装的包管理工具,能解决NodeJS代码部署上的很多问题: 常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器 ...

  8. webpack前端构建工具学习总结(二)之loader的使用

    Webpack 本身只能处理 JavaScript 模块,如果要处理其他类型的文件,就需要使用 loader 进行转换. Loader 可以理解为是模块和资源的转换器,它本身是一个函数,接受源文件作为 ...

  9. 新手学习WEB前端流程以及学习中常见的误区

    学习web前端编程技术肯定是以就业拿到高薪工作为主要目的的,可是高薪不会那么轻易拿到,这是一个最简单的道理.没有付出就没有回报,在整个学习web前端编程技术的过程中,你需要付出时间.精力.金钱.废话不 ...

随机推荐

  1. map.entrySet().iterator()

    1.首先创建一个HashMap, Map map= new HashMap(); 2.Iterator iter= map.entrySet().iterator(); 首先是map.entrySet ...

  2. python字符串的特性及相关应用

    一.字符串定义 字符串是 Python 中最常用的数据类型.用单引号(' '),双引号(" ")或者三引号(''' ''')括起来的数据称为字符串(其中,使用三引号的字符串可以横跨 ...

  3. 第三章 学习Shader所需的数学基础(5)

    1. Unity Shader的内置变量(数学篇) 使用Unity写shader的一个好处在于,它提供了很多内置参数,这使得我们不在需要自己手动算一些值.本文给出Unity内置的用于空间变换和摄像机以 ...

  4. 2019-2020-1 20199304《Linux内核原理与分析》第八周作业

    第七章 Linux内核如何装载和启动一个可执行程序 一.知识点 1.ELF(Executable and Linkable Format)概述: "目标文件"指编译器生成的文件,& ...

  5. hibernate绑定session

    session session是一种单实例对象 简单说就是自己用 别人不能用.在一些项目中很多人一起来操作 所以我们可以把session与我们的本地线程一起绑定,本地线程的特点就是执行一次 从创建到销 ...

  6. 压缩感知重构算法之OLS算法python实现

    压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构 ...

  7. 数据库Oracle 数字,字符,日期之间的相互转换

    数据类型转换分为俩种 . 隐式数据类型转换:当源数据的类型和目标数据的类型不同的时候,如果没有转换函数,就会发生隐式转换,也称自动转换. 对于直接赋值转换:  对于表达式赋值: 隐式转换的问题: 性能 ...

  8. idea结合maven小项目

    整体构造 (修改 POM 文件 )parent <?xml version="1.0" encoding="UTF-8"?> <project ...

  9. Java中的等待唤醒机制—至少50%的工程师还没掌握!

    这是一篇走心的填坑笔记,自学Java的几年总是在不断学习新的技术,一路走来发现自己踩坑无数,而填上的坑却屈指可数.突然发现,有时候真的不是几年工作经验的问题,有些东西即使工作十年,没有用心去学习过也不 ...

  10. UVA-136Ugly numbers

    Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence 1, 2, 3, 4, 5, 6, 8, 9 ...