html loader的作用,webpack认识loader的作用

本文介绍如何使用Webpack处理CSS文件,包括使用不同Loader确保样式正确加载及应用到HTML页面的方法。涉及css-loader、style-loader等组件的安装与配置流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

举例:

如果希望在.html文件中使用style.css样式,我们以前只学习过一种方式:直接在.html中通过link的方式来引入 ,这是传统的做法,在webpack语境下,我们将选择一条不同的道路:在js文件中引入了css。

9bc1671f3acf

在入口文件中引入css会报错,这时候我们使用loader即可解决(它认为是在入口文件引入一个模块。(在webpack中一切皆模块))

*********************************************

步骤

9bc1671f3acf

9bc1671f3acf

9bc1671f3acf

在css中引入另一个css

9bc1671f3acf

9bc1671f3acf

然后在js(入口文件)中引入会报错

9bc1671f3acf

9bc1671f3acf

安装loader

npm i css-loader -D

9bc1671f3acf

9bc1671f3acf

开始引入:

9bc1671f3acf

9bc1671f3acf

打包成功

9bc1671f3acf

再次打包

它不会报错,但是,页面上也并没有出现样式的效果。检查打包之后得到的目标代码.js文件,发现其包含css代码。但是,它为什么不会显示在页面上呢?如果我们希望样式生效,最终在.html文件中有两种情况:

①有style标签

②有link标签

而css-loader只是允许你在.js中通过import来引入.css,如果你希望引入的css代码最终以style标签的方式插入到html页面中,则还需要安装一个loader:style-loader

安装并使用style-loader

npm i style-loader -D

9bc1671f3acf

9bc1671f3acf

最终结果:

html + js 可以有样式

他还会告诉你样式是在那个文件中出现的

9bc1671f3acf

9bc1671f3acf

这个js文件会自动给你加style(前边入口处的代码)

重点:注意这里容易报错,看仔细

9bc1671f3acf

9bc1671f3acf

9bc1671f3acf

引入less(记得css的也同样要引入)

在入口文件中引入less

9bc1671f3acf

一打包就错误

装包

npm i less-loader less -D

写配置

9bc1671f3acf

9bc1671f3acf

自动添加css样式前缀(写css样式会有兼容性问题,去看看)

https://www.caniuse.com/flexbox

可以在这个网站查兼容性的情况

红色不能用

灰色要加前缀

9bc1671f3acf

9bc1671f3acf

全背下来或者去查太慢了,所以我们可以使用loader来安装以来步骤

安装依赖

在modules中补充设置postcss-loader

单独设置postcss的autoprefixer插件

npm i postcss postcss-loader autoprefixer -D

9bc1671f3acf

9bc1671f3acf

9bc1671f3acf

内容不用记(官网固定写法){

test: /\.less$/,

// 匹配成功后(从后向前;从右到左)

// 1. 先用less-loader去加载.less文件,转成css

// 2. 用postcss-loader配合autoprofixer加浏览器前缀

// 3. 先用css-loader去加载css文件

// 4. 再用style-loader把样式以style标签的方式嵌入到html中

use:['style-loader', 'css-loader', 'postcss-loader',  'less-loader']

}

在less中写兼容性的样式后

9bc1671f3acf

会自动给你加前缀

9bc1671f3acf

如果只想兼容ie10

9bc1671f3acf

注释掉其他的,只管ie10

9bc1671f3acf

9bc1671f3acf

6、file-loader-处理图片文件

9bc1671f3acf

9bc1671f3acf

9bc1671f3acf

9bc1671f3acf

9bc1671f3acf

解决方法:

9bc1671f3acf

9bc1671f3acf

9bc1671f3acf

build里多了两个文件

觉得这样不好,再添加一局代码

9bc1671f3acf

这样写,打包之后打开之后不显示

9bc1671f3acf

9bc1671f3acf

要注意:此时打包得到的图片的路径可能有问题,需要你把src下的index.html手动复制一份到目标文件夹,并同时修改引用的css,才能正确看到图片。(后面会改成自动去复制)

9bc1671f3acf

7、文件指纹

9bc1671f3acf

9bc1671f3acf

9bc1671f3acf

文件名_八位hash值加后缀名

9bc1671f3acf

8、url-loader处理图片

9bc1671f3acf

9bc1671f3acf

9bc1671f3acf

9bc1671f3acf

9bc1671f3acf

9bc1671f3acf

9bc1671f3acf

设置小于3k的转成base64,所以当我们发送请求的时候不需要在请求这个小文件,因为它已经被转成base64字节放到js里

9、使用babel-loader处理js降级问题

9bc1671f3acf

9bc1671f3acf

9bc1671f3acf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值