Webpackwebpack学习

webpack4配置vue项目----4.加载css, scss

2019-11-20  本文已影响0人  花拾superzay

这是一篇webpack4配置的系列文章,推荐从头开始看起
1.初始化
2.关于执行环境process.env.NODE_ENV
3.设置mode和sourceMap
4.加载css, scss文件,以及样式抽离
5.加载图片等文件
6.html-webpack-plugin插件
7.单vue文件的加载,以及babel的使用
8.配置devServer服务器,热更新,前端跨域代理
9.设置目录别名
10.css样式前缀自动补全
11.public公共静态资源目录拷贝
12.清理dist目录

安装css-loader,sass-loader,style-loader

npm install --save-dev css-loader sass-loader sytly-loader

webpack.config.js配置

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

此时样式被打包进脚本中,在浏览器中执行时,会将样式注入到页面的head中

将样式抽离成css文件

安装mini-css-extract-plugin插件

npm install --save-dev mini-css-extract-plugin

修改webpack.config.js的内容

onst path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = {
   optimization: {
        splitChunks: {
            cacheGroups: {
                styles: {
                    name: 'styles',
                    test: /\.css$/,
                    chunks: 'all',
                    enforce: true,
                },
            },
        }
    },
    module: {
        rules: [ {
            test: /\.css$/,
            //开发环境使用style-loader打包
            use: [process.env.NODE_ENV=== 'production'? MiniCssExtractPlugin.loader:'style-loader',  'css-loader']
        }, {
            test: /\.scss$/,
            //开发环境使用style-loader打包
            use: [process.env.NODE_ENV=== 'production'? MiniCssExtractPlugin.loader:'style-loader',  'css-loader',  'sass-loader']
        }]
    },
    plugins: [
        new MiniCssExtractPlugin({
            filename: "css/[name]-[hash].css",//所有抽离出的样式文件,放进dist下的css目录
            //chunkFilename: "css/[name]-[hash].css"
        }),
    ],
};

上一篇下一篇

猜你喜欢

热点阅读