天天看點

自動化建構工具——9.webpack壓縮css壓縮CSS

壓縮CSS

CSS體積越小,請求速度也會更快,那麼加載速度就快,使用者看到效果就更快一些,這樣使用者體驗就會更好,是以在代碼上線之前一定要壓縮CSS。

目錄結構沿用上一節

需要下載下傳的插件

optimize-css-assets-webpack-plugin

npm i optimize-css-assets-webpack-plugin -D
           

步驟

  1. 引入插件

    const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin')

  2. 使用插件:

    new OptimizeCssAssetsWebpackPlugin()

預設配置足夠,是以不需要修改配置,隻需調用即可

配置檔案

const {
  resolve
} = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin')

// 設定node.js環境變量
// process.env.NODE_ENV = 'development'

module.exports = {
  entry: './src/js/index.js',
  output: {
    filename: 'js/built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [{
      test: /\.css$/,
      use: [
        MiniCssExtractPlugin.loader,
        'css-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,預設配置足夠,是以不需要修改配置,隻需調用即可
    new OptimizeCssAssetsWebpackPlugin()
  ],
  mode: 'development',
  devServer: {
    contentBase: resolve(__dirname, 'build'),
    compress: true,
    port: 3000,
    open: true
  }
}
           

運作webpack/npx webpack-dev-server後檢視相應css檔案

build->css->built.css

自動化建構工具——9.webpack壓縮css壓縮CSS

可以看到CSS代碼被壓縮至一行