webpack3-css进阶

1、less 文件的打包与分离

安装:

npm install --save-dev less
npm install --save-dev less-loader

配置:

modules: {
    roules: [
        {
            test: /\.less$/,
            use: [{
                    loader: 'style-loader' // creates style nodes from JS strings
                },{
                    loader: 'css-loader' // translates CSS into CommonJS
                },{
                    loader: 'less-loader'  // compiles Less to CSS
                }]
        }
    ]
}

或者想要将less文件分离打包配置如下:

modules: {
    roules: [
        {
            test: /.\less$/,
            use: extractTextPlugin.extract({
                use: [{
                    loader: 'css-loader'
                },{
                    loader: 'less-loader'
                }],
                // use style-loader in development
                fallback: 'style-loader'
            })
        }
    ]
}

2、sass 文件的打包与分离

安装:

//因为sass-loader依赖于node-sass,所以需要先安装node-sass
npm install --save-dev node-sass
npm install --save-dev sass-loader

node-sass容易安装失败可以使用淘宝镜像进行配置 npm 或者使用 cnpm 。可以参考 http://blog.csdn.net/tang_yi_/article/details/78053431来配置npm淘宝镜像。

配置:

modules: {
    roules: [
        {
            test: /\.scss$/,
            use: [{
                    loader: 'style-loader' // creates style nodes from JS strings
                },{
                    loader: 'css-loader' // translates CSS into CommonJS
                },{
                    loader: 'sass-loader'  // compiles sass to CSS
                }]
        }
    ]
}

或者想要将sass文件分离打包配置如下:

modules: {
    roules: [
        {
            test: /.\scss$/,
            use: extractTextPlugin.extract({
                use: [{
                    loader: 'css-loader'
                },{
                    loader: 'sass-loader'
                }],
                // use style-loader in development
                fallback: 'style-loader'
            })
        }
    ]
}

3、自动处理css3属性前缀

  CSS3中有些属性需要加前缀,若自己查询并添加前缀比较麻烦,可以使用 postcss-loader 给 常css3 属性自动添加前缀。
  PostCSS是一个CSS的处理平台,可以实现很多功能。

安装:

npm install --save-dev postcss-loader autoprefixer

postcss配置,在根目录下(webpack.config.js同级),建立一个 postcss.config.js 文件
postcss.config.js

module.export = {
    plugins: [require('autoprefixer')]
}

webpack.config.js

modules: {
    roules: [
        {
            test: /\.css$/,
            use: [
                {
                    loader: 'style-loader'
                },{
                    loader: 'css-loader',
                    modules: true
                },{
                    loader: 'postcss-loader'
                }
            ]
        }
    ]
}

或者想要将css文件分离打包配置如下:

modules: {
    roules: [
        {
            test: /\.css$/,
            use: extractTextPlugin.extract({
                fallback: 'style-loader'
                use: [
                    {loader: 'css-loader', options: {importLoader: 1}},
                    'postcss-loader'
                ]
            })
        }
    ]
}

4、消除未使用的css

  随着项目的进展,CSS也会越来越多,有时需求更改,带来了DOM结构的更改,这是若不关注css样式,会造成css的冗余。使用 PurifyCSS 可以消除未使用的css,减少css冗余。

安装:

npm --save-dev purify-webpack purify-css

配置:

const glob = require('glob'); // 因为需要同步检查HTML模板,所以需要引入node的glob对象。
const PurifyCSSPlugin = require('purifycss-webpack');

plugins: [
    new extractTextPlugin("css/index.css"),
    new PurifyCSSPlugin({
        // 这里配置了一个paths,主要是需找html模板,purifycss根据这个配置会遍历你的文件,查找哪些css被使用了。
        path: glob.sync(path.join(__dirname, 'src/*.html'))
    })
]

注意:这个插件必须配合 extract-text-webpack-plugin 插件使用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值