Webpack 4: mini-css-extract-plugin + sass-loader + splitChunks sass打包未遂

Webpack 4: mini-css-extract-plugin + sass-loader + splitChunks sass打包未遂

问题描述:单页单入口文件sass 文件内容没有被导入进打包后以的文件
类似 这个问题https://stackoverflow.com/questions/49410921/webpack-4-mini-css-extract-plugin-sass-loader-splitchunks

【解决办法】
原来在entry.js 中引入sass import "../demo.sass" 提出来,放在入口配置这块:
 
entry: [path.resolve(__dirname, 'assets/css/common.scss'),path.resolve(__dirname, 'assets/css/editor.scss'),path.resolve(__dirname, 'src/entry.js')],

项目环境
"webpack": 4.28.3",
"webpack-cli": "^3.2.1",
"optimize-css-assets-webpack-plugin": "^5.0.1",
"mini-css-extract-plugin": "^0.5.0",
"extract-css-chunks-webpack-plugin": "^3.3.2",
node:11.6.0

配置如下:

module.exports = function(env, argv){
    return  {
        target: 'web',
        mode: 'production',
        entry:path.resolve(__dirname, 'src/entry.js'),
        output: {

            path: path.resolve(__dirname, "dist"), // string

            filename: "editor.full.min.js", // string

            publicPath: "//xxxx/dist/", // string 

            chunkFilename: '[name].dll.js',

        },



        module: {
            // 关于模块配置
            rules: [
                {
                    test:/\.css$/,
                    use:[
                        {
                            loader:MiniCssExtractPlugin.loader,
                            options:{
                                publicPath:'//xxxxx/dist/'
                            }
                        },
                        'css-loader'
                    ]
                },

                {
                    test: /\.(sa|sc)ss$/,
                    use: [
                        {
                            loader:ExtractCssChunks.loader,
                            options:{
                                publicPath:'//xxxxx/dist/'
                            }
                        },
                        {
                            loader: "css-loader",
                            options: {
                                importLoader: 1
                            }
                        },
                        "sass-loader" // compiles Sass to CSS
                    ]
                }

            ],

        },


        plugins: [

            new MiniCssExtractPlugin({
                filename: "bundle.css",
                chunkFilename: "[name].chunk.css"
            })

        ],
        optimization:{
            minimizer: [
                new OptimizeCSSAssetsPlugin({})
            ],
            splitChunks: {
                chunks: "all",
                minSize: 30000,
                minChunks: 1,
                maxAsyncRequests: 5,
                maxInitialRequests: 3,
                automaticNameDelimiter: '~',
                name: true,
                cacheGroups: {
                    vendors: {
                        test: /[\\/]node_modules[\\/]/,
                        name: "vendors",
                        chunks: "all",
                        priority: -10
                    },
                    extern:{
                        test: /[\\/]extern[\\/]/,
                        name: "extern",
                        chunks: "all",
                        priority: -10
                    },
                    styles: {
                        name: 'styles',
                        test: /\.css$/,
                        chunks: 'all',
                        priority: -10,
                        enforce: true
                    },
                    sass: {
                        name: 'sass',
                        test: /\.(sa|sc|)ss$/,
                        chunks: 'all',
                        priority: -10,
                        enforce: true
                    },

                    default: {
                        minChunks: 1,
                        priority: -20,
                        reuseExistingChunk: true
                    }
                }
            }
        }


    }
};

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值