【Webpack基础】处理样式(一)

1. 需求:修改图片大小为 200 * 200

index.html

<body>
    <h1>这是我的网页</h1>
    <div id="app">

    </div>
    <script src="./bundle.js"></script>
</body>

index.css

.logo {
    width: 200px;
    height: 200px;
}

index.js

import jspp from './jspp.jpg';
import './index.css';

const img = new Image();
img.src = jspp;
img.className += 'logo'

const app = document.getElementById('app');
app.appendChild(img);

打包报错 -> 不支持 .css 文件,需要安装对应的 Loader 处理

在这里插入图片描述

2. style-loader、css-loader

css-loader:在js中加载css

style-loader:把加载的css作为style标签内容插入到html中

2.1 安装配置

  1. 安装

    注意一定要指定安装版本,否则会报错

    yarn add css-loader@2.1.1 style-loader@1 -D
    
  2. 配置

    // 导入node的path模块
    const path = require('path');
    
    module.exports = {
        mode: "development",
        entry: './src/index.js',
        module: {
            rules: [{
                    test: /\.(jpg|jpe?g|gif)$/,
                    use: {
                        loader: 'url-loader',
                        options: {
                            name: '[name].[ext]',
                            outputPath: 'imgs/',
                            limit: 20480
                        }
                    }
                },
                {
                    test: /\.css$/i,
                    // loader 执行顺序:从后往前,从下往上
                    use: ["style-loader", "css-loader"],
                }
            ]
        },
        output: {
            // 生成文件名
            filename: 'bundle.js',
            // 所在目录名       根目录路径  目录名
            path: path.resolve(__dirname, 'dist')
        }
    }
    

2.2 执行顺序

从后往前,从下往上

use: ["style-loader", "css-loader"]
use: [
	"style-loader",
	"css-loader"
]

2.3 示例

logo.css

.logo {
	width: 200px;
	height: 200px;
}

.index.css

@import './logo.css'; /* css 引入 css */
body {
    background-color: #fff;
}

index.js

import './index.css'; // js 引入 css

在这里插入图片描述

3. sass-loader

编译sass文件

3.1 安装配置

  1. 安装

    yarn add sass-loader@10.0.0 sass@1.26.5 -D
    
  2. 配置

    module.exports = {
        ...
        module: {
            rules: [
            	...
                {
                    test: /\.scss$/i,
                    use: ["style-loader", "css-loader", "postcss-loader", "sass-loader"],
                }
            ]
        },
        ...
    }
    

3.2 示例

index.sass

body {
    background-color: #fff;
    img {
        width: 100px;
        height: 100px;
    }
}

index.js

import './index.scss';

未编译前:

在这里插入图片描述

编译后:

在这里插入图片描述

4. postcss-loader、autoprefixer

postcss-loader:webpack 提供的兼容 css3 样式的插件

autoprefixer:厂商前缀插件 -> 配合 postcss-loader 使用

4.1 安装配置

  1. 安装

    yarn add postcss-loader@3.0.0 autoprefixer@9.5.1 -D
    
  2. webpack.config.js

    注意:引入顺序

    {
        test: /\.scss$/i,
        use: ["style-loader", "css-loader", "postcss-loader", "sass-loader"],
    }
    
  3. 新建一个 postcss.config.js 文件

    module.exports = {
        plugins: [
            require('autoprefixer')
        ],
    };
    

4.2 需求:给 css3 样式加上厂商前缀

index.scss

body {
    background-color: #fff;
    img {
        width: 100px;
        height: 100px;
        transform: rotate(45deg); /* css3 样式 -> 低版本浏览器不兼容 -> 厂商前缀 */
    }
}

如果浏览器版本足够新是不会加厂商前缀的 -> 低版本才会给你加上

在这里插入图片描述

如果要看到厂商前缀的效果,可以通过 package.json 进行配置

{
	...
	"browserslist": [
	    ">1%", // 市场份额
	    "last 2 versions" // 最新的两个版本
	],
	...
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值