Webpack生产环境CSS优化

Webpack生产环境CSS优化

提取CSS成单独文件

//引入path来解决output参数绝对路径的配置
const { resolve } = require('path');
//引入入html-webpack-plugin插件,下载指令:npm i html-webpack-plugin[@指定版本号] -D
const HtmlWebpackPlugin = require('html-webpack-plugin');
//引入mini-css-extract-plgin插件,下载指令: npm i mini-css-extract-plgin[@指定版本号] -D
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = {
//入口文件指定位置
  entry: './src/js/index.js',
  output: {
  //输出文件指定位置和文件名
    filename: 'js/built.js',
    //输出目录
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          // 创建style标签,将样式放入
          // 'style-loader', 
          // MiniCssExtractPlugin将loader取代style-loader。作用:提取js中的css成单独文件
          MiniCssExtractPlugin.loader,
          // 将css文件整合到js文件中
          'css-loader'
        ]
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    }),
    new MiniCssExtractPlugin({
      // 对输出的css文件进行重命名
      filename: 'css/built.css'
    })
  ],
    //模式指定为开发环境:此时代码没有进行压缩,方便查看代码
  mode: 'development'
};


CSS兼容性处理

 // 设置nodejs环境变量,激发开发环境
// process.env.NODE_ENV = 'development';

//下载相关的loader指令:npm postcss-loader postcss-preset-env -D
 module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          MiniCssExtractPlugin.loader,
          'css-loader',
          /*
            css兼容性处理:postcss --> postcss-loader postcss-preset-env,这些插件是帮postcss找到package.json中browserslist里面的配置,通过配置加载指定的css兼容性样式

			//这个是写在package.json中的
            "browserslist": {
              // 开发环境 --> 设置node环境变量:process.env.NODE_ENV = development
              "development": [
                "last 1 chrome version",
                "last 1 firefox version",
                "last 1 safari version"
              ],
              // 生产环境:默认是看生产环境
              "production": [
                ">0.2%",
                "not dead",
                "not op_mini all"
              ]
            }
          */
          // 使用loader的默认配置
          // 'postcss-loader',
          // 修改loader的配置
          {
            loader: 'postcss-loader',
            options: {
              ident: 'postcss',
              plugins: () => [
                // postcss的插件
                require('postcss-preset-env')()
              ]
            }
          }
        ]
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    }),
    new MiniCssExtractPlugin({
      filename: 'css/built.css'
    })
  ],

压缩CSS

// 压缩使用的插件:npm i optimize-css-assets-webpack-plugin -D
//引用
const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin')
 plugins: [
    // 压缩css,只用使用就可以进行压缩了,不用再进行其他配置
    new OptimizeCssAssetsWebpackPlugin()
  ],
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值