前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >webpack css loader

webpack css loader

作者头像
用户4793865
发布2023-01-12 13:27:29
3560
发布2023-01-12 13:27:29
举报
文章被收录于专栏:前端小菜鸡yym前端小菜鸡yym

我们新建一个login.js文件,作为一个组件。

这里定义了一个函数,函数中创建了h2标签,然后给标签中添加文字、还有类名className,最后把这个dom返回。最后通过document.body.appendChild<body>标签中添加login函数生成的dom。

代码语言:javascript
复制
// login.js
function login(){
    const oH2 = document.createElement('h2')
    oH2.innerHTML = '我的天啊'
    oH2.className = 'title'
    return oH2
}
document.body.appendChild(login())

新建css

image.png
image.png

新建一个css文件夹,再新建一个login.css。随便写点样式

代码语言:javascript
复制
.title{
    color: aqua;
}

然后在login.js文件中引入login.css。此时的css,被当成模块处理。

代码语言:javascript
复制
import './css/login.css'
function login(){
    const oH2 = document.createElement('h2')
    oH2.innerHTML = '我的天啊'
    oH2.className = 'title'
    return oH2
}
document.body.appendChild(login())

再次进行打包npm run build,报错如下:缺少loader。默认情况下,webpack不能处理css文件,因此需要添加css的对应loader进行一个转换

image.png
image.png

使用loader

需要安装css-loader

代码语言:javascript
复制
npm install --save-dev css-loader

注意这里用到了 --save-dev,这是把css-loader加到devDependencies(开发依赖)中,在我们的生成环境中就不需要这个包了。

image.png
image.png

添加配置

  • module配置项用于存放匹配规则,以及相应规则需要的loader。
  • rules:有s说明我们后面会有多个规则,所以对应的值是一个数组。webpack默认会处理js和json。其他类型就都不认识了。如:图片、字体、样式等。
  • test : 一般后面是正则表达式,我们先写出 /.css/,然后.在正则表达式中会有特殊含义所以需要进行转义 ,就变成了 /\.css/ ,并且那我们不希望将类似于 xxx.css.js这种文件被认为是css文件而被css-loader处理。所以使用 $作为结束标识(正则表达式) 最后就是/\.css$/
  • 然后怎么知道css文件使用什么loader解析?使用use,同样也可能需要多个loader进行解析,所以use对应也是数组。
  • use数组中,是对象,如下指定的loader是'css-loader'
代码语言:javascript
复制
const path = require('path')
module.exports ={
    entry: './src/index.js',
    output: {
        filename: 'build.js',
        path: path.resolve(__dirname,'dist')
    },
    module:{
        rules:[
            {
                test:/\.css$/,
                // 可能有多个loader
                use:[
                        {
                            loader: 'css-loader'
                        }
                ]
            }
        ]
    }
}
复制代码

简写

如果这个文件只需要被一个loader解析,并且没有其他配置就可以简写。

代码语言:javascript
复制
{
    test:/\.css$/,
    loader:'css-loader'
}
复制代码
代码语言:javascript
复制
{
    test:/\.css$/,
    use:['css-loader']
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 新建css
  • 使用loader
    • 添加配置
    • 简写
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档