• .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. js如何衔接css3的多个@keyframes动画?

    css3特效动画,我们在编写页面中经常遇到,而且是在同一个div模块上有多个衔接的不同动画,css中,我们经常使用animation-delay (规定在动画开始之前的延迟)进行处理. 那么,下面分享 ...

  2. LNMP Shell脚本发布

    #!/bin/bash # : #This author is DKS #auto install nginx mysql php ################################## ...

  3. 自动列表排序.html

    li:before { content: counter(chapter) ". "; counter-increment: chapter; font-weight: bold; ...

  4. 全面认识 RUST -- 掌控未来的雷电

    文章目录 RUST 简介 如何衡量语言的好坏? 静态语言 编译器 语言定位 代表性项目 Hello World RUST 前景 RUST 简介 Rust 是一种兼顾内存安全.高并发和稳定运行的编程语言 ...

  5. 转:org.apache.maven.archiver.MavenArchiver.getManifest错误

    eclipse导入新的maven项目时,pom.xml第一行报错: org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.mav ...

  6. Asp.net Core 3.0 Identity 使用smtp账户确认和密码恢复

    当新建一个core项目后,使用identity基架后,确认邮件出现了错误,并不能正常使用. 建立文档在这里 https://docs.microsoft.com/zh-cn/aspnet/core/s ...

  7. NRF52833蓝牙5.1可用于105℃环境温度的Nordic蓝牙5.1 SoC能实现更广泛的并发多协议低功耗蓝牙、mesh和Thread应用

    Nordic Semiconductor宣布推出nRF52833先进多协议系统级芯片(SoC),这是其广受欢迎且验证通过的nRF52系列的第五个新成员.nRF52833是一款功耗超低的低功耗蓝牙 (B ...

  8. 小M的魔术表演

    Description 小M听说会变魔术的男生最能吸引女生注意啦~所以小M费了九牛二虎之力终于学会了一个魔术:首先在桌面上放N张纸片,每张纸片上都写有一个数字.小M每次请女生给出一个数字x,然后划定任 ...

  9. 如何妙用Spring 数据绑定机制?

    前言 在剖析完 「Spring Boot 统一数据格式是怎么实现的? 」文章之后,一直觉得有必要说明一下 Spring's Data Binding Mechanism 「Spring 数据绑定机制」 ...

  10. 【JS】303- 编写更好的 JavaScript 条件式和匹配条件的技巧

    译者:@chorer 译文:https://chorer.github.io/2019/06/24/Trs-更好的JavaScript条件式和匹配标准技巧/作者:@Milos Protic原文:htt ...