webpack基础篇(十三):代码压缩

简介: webpack基础篇(十三):代码压缩

说明

玩转webpack课程学习笔记。



JS 文件的压缩

内置了 uglifyjs-webpack-plugin,打包会自动压缩js


20200623004843330.PNG



CSS 文件的压缩

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

1、使用 optimize-css-assets-webpack-plugin

npm i cssnano -D


2、同时使用 cssnano

const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
module.exports = {
  entry: {
    index: './src/index.js',
    search: './src/search.js'
  },
  output: {
    path: path.join(__dirname, 'dist'),
    filename: '[name]_[chunkhash].js'
  },
  mode: 'production',
  plugins: [
    new MiniCssExtractPlugin({
      filename: '[name]_[contenthash:8].css'
    }),
    new OptimizeCSSAssetsPlugin({
      assetNameRegExp: /\.css$/g,
      cssProcessor: require('cssnano')
    })
  ]
};


image.png





html 文件的压缩


1、在src文件里新建index.htmlsearch.html文件

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
</body>
</html>


search.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div id="root"></div>
</body>
</html>


npm i html-webpack-plugin -D

2、修改 html-webpack-plugin,设置压缩参数

const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
  entry: {
    index: './src/index.js',
    search: './src/search.js'
  },
  output: {
    path: path.join(__dirname, 'dist'),
    filename: '[name]_[chunkhash].js'
  },
  mode: 'production',
  plugins: [
    new MiniCssExtractPlugin({
      filename: '[name]_[contenthash:8].css'
    }),
    new HtmlWebpackPlugin({
      template: path.join(__dirname, 'src/index.html'),
      filename: 'index.html',
      chunks: ['index'],
      inject: true,
      minify: {
        html5: true,
        collapseWhitespace: true,
        preserveLineBreaks: false,
        minifyCSS: true,
        minifyJS: true,
        removeComments: false
      }
    }),
    new HtmlWebpackPlugin({
      template: path.join(__dirname, 'src/search.html'),
      filename: 'search.html',
      chunks: ['search'],
      inject: true,
      minify: {
        html5: true,
        collapseWhitespace: true,
        preserveLineBreaks: false,
        minifyCSS: true,
        minifyJS: true,
        removeComments: false
      }
    })
  ]
};


20200623004744286.PNG

目录
相关文章
|
1月前
说说webpack中代码分割如何实现?
说说webpack中代码分割如何实现
20 0
|
1月前
|
前端开发 JavaScript
《Webpack5 核心原理与应用实践》学习笔记-> webpack代码压缩
《Webpack5 核心原理与应用实践》学习笔记-> webpack代码压缩
75 0
|
11月前
|
缓存 前端开发 JavaScript
学会用Webpack搭建开发环境并打包代码
学会用Webpack搭建开发环境并打包代码
学会用Webpack搭建开发环境并打包代码
|
11月前
|
前端开发
Webpack5 系列(七):代码分离2
Webpack5 系列(七):代码分离2
61 0
|
11月前
|
缓存 JavaScript
Webpack5 系列(七):代码分离1
Webpack5 系列(七):代码分离1
85 0
|
存储 JavaScript 编译器
TypeScript(一) —— 进阶(TypeScript 中的类型、编译选项及使用 webpack 打包 ts 代码)
TypeScript(一) —— 进阶(TypeScript 中的类型、编译选项及使用 webpack 打包 ts 代码)
223 0
|
缓存 JavaScript 前端开发
从 Vue 转换看 Webpack 和 Vite 代码转换机制的差异
从 Vue 转换看 Webpack 和 Vite 代码转换机制的差异
125 0
|
前端开发 JavaScript 应用服务中间件
【前端】性能优化——webpack 打包压缩
【前端】性能优化——webpack 打包压缩
222 0
|
JavaScript
【TypeScript教程】# 6:使用webpack打包ts代码
【TypeScript教程】# 6:使用webpack打包ts代码
169 0
【TypeScript教程】# 6:使用webpack打包ts代码
|
JavaScript
webpack原理篇(六十五):实战开发一个压缩构建资源为zip包的插件
webpack原理篇(六十五):实战开发一个压缩构建资源为zip包的插件
215 0
webpack原理篇(六十五):实战开发一个压缩构建资源为zip包的插件