• webpack:css代码提取插件extract-text-webpack-plugin和mini-css-extract-plugin


    extract-text-webpack-plugin

    提取静态资源 css 等

    const ExtractTextPlugin = require("extract-text-webpack-plugin");  //记得先install该模块
    module: {
            rules: [
                {
                    test: /\.vue$/,
                    loader: 'vue-loader',
                    options: {
                        loaders: {
                            scss: ExtractTextPlugin.extract({ fallback: 'vue-style-loader', use: 'css-loader!sass-loader' })
                            css: ExtractTextPlugin.extract({ fallback: 'vue-style-loader', use: 'css-loader' }),
                        }
                    }
                },
                {
                    test: /\.css$/,
                    use: ExtractTextPlugin.extract({    //css的提取
                        fallback: "style-loader",
                        use: "css-loader"
                    })
                },
                {
                    test: /\.scss$/,
                    use: ExtractTextPlugin.extract({   //css的提取
                        fallback: "style-loader",
                        use: ['sass-loader','postcss-loader']
                    })
                }
            ]
        },
        plugins: [
            new ExtractTextPlugin({
                filename: 'css/[name].[contenthash].css',
                allChunks: true
            })
        ]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    mini-css-extract-plugin

    替代extract-text-webpack-plugin 进行资源提取。
    webpack 4.0以前,我们通过extract-text-webpack-plugin插件,把css样式从js文件中提取到单独的css文件中。webpack 4.0以后,官方推荐使用mini-css-extract-plugin插件来打包css文件(从css文件中提取css代码到单独的文件中,对css代码进行代码压缩等)。

    const MiniCssExtractPlugin = require('mini-css-extract-plugin')
    const devMode = process.env.NODE_ENV !== 'production'
     
    module.exports = {
      module: {
        rules: [
          {
            test: /\.(sa|sc|c)ss$/,  // 可以打包后缀为sass/scss/css的文件
            use: [
              {
                loader: MiniCssExtractPlugin.loader,
                options: {
                  // 这里可以指定一个 publicPath
                  // 默认使用 webpackOptions.output中的publicPath
                  // publicPath的配置,和plugins中设置的filename和chunkFilename的名字有关
                  // 如果打包后,background属性中的图片显示不出来,请检查publicPath的配置是否有误
                  publicPath: './',  
                  // publicPath: devMode ? './' : '../',   // 根据不同环境指定不同的publicPath
                  hmr: devMode, // 仅dev环境启用HMR功能
                },
              },
              'css-loader',
              'sass-loader'
            ],
          },
        ]
      },
      plugins: [
        new MiniCssExtractPlugin({
          // 这里的配置和webpackOptions.output中的配置相似
          // 即可以通过在名字前加路径,来决定打包后的文件存在的路径
          filename: devMode ? 'css/[name].css' : 'css/[name].[hash].css',
          chunkFilename: devMode ? 'css/[id].css' : 'css/[id].[hash].css',
        })
      ]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
  • 相关阅读:
    算法练习第六十四天
    使用 Azure 静态 Web 应用服务免费部署 Hexo 博客
    In voluptate magnam blanditiis beatae.Parfaitement simple davantage frais.
    多线程ThreadLocal详细介绍
    Vue 项目部署到GitHub Pages
    代码随想录算法训练营第23期day22|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
    Android Studio Flamingo 稳定版正式发布
    【面试题】js 问号(?)的强大之处,你知道吗??
    FFmpeg入门详解之11:H264BSAnalyzer简介
    【线性代数】线性代数的几何意义
  • 原文地址:https://blog.csdn.net/weixin_43972437/article/details/133277310