• 在目前的前端项目中,经常可以看到使用SASSLESS来对CSS进行处理,那么在webpack中如何配置?

    样式预处理

    借助这些语言强大和便捷的特性,可以降低项目的开发及维护成本。

    1. Sass 与 SCSS

    1.1 关系

    我们经常看到Sass与SCSS,但是有什么关系呢?我们怎么选择呢?

    Sass是对CSS的语法增强,它有两种语法,现在使用的更多的是SCSS。如果你两者都使用过,那么可以发现无论是安装还是配置,都是使用 sass-loader,而编写保存的文件后缀却是:.scss

    一般而言,我们使用它需要配置以下几个loader搭配使用:

    如上,样式预处理器的安装好理解,那么为什么要安装node-loader呢?因为loader本身只是编译核心库与Webpack的连接器,因此这里我们除了Sass-loader以外还需安装node-sass,node-sass才是真正用来编译SCSS的,而sass-loader只是起到黏合作用。

    1.2 安装

    // 以下两种方式任选其一
    npm install sass-loader node-sass css-loader style-loader
    // 或
    yarn add sass-loader node-sass css-loader style-loader

    1.3 webpack配置

    // webpack.config.js
    module: {
        rules: [
            {
                test/\.scss$/,
                use: ['style-loader''css-loader''sass-loader']
            }
        ]
    }

    1.4 测试

    写一段scss测试一下:

    // style.scss
    $default-color: #f00;
    .main{
    &_banner{
    color: $default-color;
    }
    }
    // index.js
    import './style.scss'

    1.5 查看结果

    从html中引入打包后的js,查看结果:

    .main_banner {
        color#f00
    }

    webpack实战——样式预处理-LMLPHP

    1.6 其他配置

    如果希望在浏览器的firebug里面查看及调试源码,则需要打开sourceMap配置:

    module.exports = {
        entry: {
            index'./src/index.js',
        },

        output: {
            filename'[name].js'
        },
        mode'development',

        // loader配置
        module: {
            rules: [
                // scss
                {
                    test/\.scss$/,
                    use: [
                        'style-loader',
                        {
                            loader'css-loader',
                            options: {
                                sourceMaptrue
                            }
                        },
                        {
                            loader'sass-loader',
                            options: {
                                sourceMaptrue
                            }
                        }
                    ]
                }
            ],
        },
    }

    2. Less

    2.1 安装

    // 以下两种方式任选其一
    npm install less-loader less css-loader style-loader
    // 或
    yarn add less-loader less css-loader style-loader

    2.2 webpack配置

    与SCSS配置比较类似:

    modules: {
        rules: [
            {
                test/\.less/,
                use: [
                    'style-loader',
                        {
                            loader'css-loader',
                            options: {
                                sourceMaptrue
                            }
                        },
                        {
                            loader'sass-loader',
                            options: {
                                sourceMaptrue
                            }
                        }
                ]
            }
        ]
    }

    2.3 测试

    // style.less
    @default-color: red;
    .main{
        .title{
            color: @default-color;
        }
    }
    // index.js
    import './style.less'

    2.4 编译结果

    与SCSS一样,打包,引入,浏览器中查看结果:

    .main .title{
        color: red;
    }

    小结

    本篇介绍了处理样式的预处理器工具以及相关配置,通过SCSS、less等编译语言来提高CSS的开发效率且降低代码复杂度。

    下一篇开始接触与性能相关的问题——代码分片。






    本文分享自微信公众号 - 流眸(zxm0146)。
    如有侵权,请联系 [email protected] 删除。
    本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

    08-30 20:03