• .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. vue基本开发环境搭建

    先安装node运行环境下载网址 https://nodejs.org/en/或者http://nodejs.cn/ 检查node是否安装成功命令行窗口直接输入 $ node -v 如果输出版本号,说明 ...

  2. base64转图片、图片转base64、图片拼接、加水印(水印角度可设置)

    /** * @Description: 将base64编码字符串转换为图片 * @param imgStr * base64编码字符串 * @param path * 图片路径-具体到文件 * @re ...

  3. TypeError: 'list' object cannot be interpreted as an integer

    TypeError: 'list' object cannot be interpreted as an integer 类型错误,不能将list对象转换为一个整数. 错误代码,例如如下例子: arg ...

  4. 华为OSPF与ACL综合应用实例讲解

    OSPF与ACL综合应用实例讲解 项目案例要求: 1.企业内网运行OSPF路由协议,区域规划如图所示:2.财务和研发所在的区域不受其他区域链路不稳定性影响:3.R1.R2.R3只允许被IT登录管理:4 ...

  5. 简单实现jquery轮播图

    首先需要定义个切换图片的funcation ##### 1.找到图片所在li,将其显示出来,并缩放1.1倍 ##### 2.其他兄弟li,渐变隐藏,并还原至原大小比例 ##### 3.将底部的圆点列表 ...

  6. [TimLinux] docker CentOS7安装docker-ce最新版

    1. 环境 $ lsb_release -a # 需要安装 redhat-lsb-core 包 LSB Version: :core-4.1-amd64:core-4.1-noarch Distrib ...

  7. cesium 实现 3d-tiles 平移旋转贴地(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

  8. 2019CCPC秦皇岛I题 Invoker(DP)

    Invoker Time Limit: 15000/12000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  9. HihoCoder 1398 网络流 - 最大权闭合子图

    周末,小Hi和小Ho所在的班级决定举行一些班级建设活动. 根据周内的调查结果,小Hi和小Ho一共列出了N项不同的活动(编号1..N),第i项活动能够产生a[i]的活跃值. 班级一共有M名学生(编号1. ...

  10. Day 05 作业

    目录 作业 输入姑娘的年龄后,进行以下判断: 复习while循环,打印1-100之间的奇数和 复习while循环,猜年龄游戏升级版,有以下三点要求: 作业 输入姑娘的年龄后,进行以下判断: 如果姑娘小 ...