webpack对html压缩,webpack学习之路(八)压缩代码

代码的压缩可以分为三个部分,HTML CSS JS。我们挨个来看。

1. HTML压缩

需要用的插件是html-webpack-plugin文档

其实呢,这个插件主要是用来生成html文件,将 webpack中entry配置的相关入口chunk和 extract-text-webpack-plugin抽取的css样式插入到该插件提供的template或者templateContent配置项指定的内容基础上生成一个html文件,具体插入方式是将样式link插入到head元素中,script插入到head或者body中。

参数比较多,但我们这节是为了压缩,所以我们只要关注minify这个参数。minify参数真正传入的是html-minifier的配置,配置参数列表详见文档

目录:

.

├── dist

├── package-lock.json

├── package.json

├── src

│ ├── index.html

└── webpack.config.js

复制代码

webpack.config.js

new HtmlWebpackPlugin({

template: path.join(__dirname, 'src/index.html'),

filename: 'index.html',

chunks: ['index'],

inject: true,

minify: {

html5: true, // 根据HTML5规范解析输入

collapseWhitespace: true, // 折叠空白区域

preserveLineBreaks: false, // 当标记之间的空格包含换行符时,始终折叠为1换行符(不完全删除它)。必须与collapseWhitespace=true一起使用

minifyCSS: true, // 压缩文内css

minifyJS: true, // 压缩文内js

removeComments: false // 移除注释

}

})

复制代码

新建src/index.html文件,随便插入点内容,build之后看一下

├── dist

│ ├── index.html

复制代码

c916372bd319dd8a2892bd7efb27b495.png

2. CSS压缩

这里需要用到optimize-css-assets-webpack-plugin插件文档

插件总共有五个参数:

assetNameRegExp,用来匹配文件名称的正则表达式,默认写/\.css$/g

cssProcessor,用来优化/压缩CSS的处理器,默认是cssnano,使用的话记得先安装

cssProcessorOptions,传给处理器的参数,默认{}

cssProcessorPluginOptions,传给处理器的插件参数,默认{}

canPrint,指示插件是否可以将消息打印到控制台,布尔值,默认为true

直接上手试一下

项目目录

.

├── dist

├── package-lock.json

├── package.json

├── src

│ ├── index.css

│ └── index.js

└── webpack.config.js

复制代码

webpack.config.js

new OptimizeCssAssetsWebpackPlugin({

assetNameRegExp: /\.css$/g,

cssProcessor: require('cssnano'), // 引入cssnano配置压缩选项

})

复制代码

index.js

import './index.css'

复制代码

然后直接build

我们可以在dist目录看到打包后的文件

├── dist

│ ├── main_14db90b8.js

│ └── main_5d49fe37.css

复制代码

main_5d49fe37.css:d9c6babf1af3b89f29494ca420e2f46d.png

可以看到已经是压缩过的css了。so easy~

注意: webpack v3以下(含3.0)的版本,请使用optimize-css-assets-webpack-plugin@3.2.0,optimize-css-assets-webpack-plugin@4.0.0版本及以上仅支持webpack v4

3. JS压缩

因为webpack v4内置了uglifyjs-webpack-plugin,所以我们默认打包就会压缩js文件。但是如果你想有特殊的配置,也可以手动下载uglifyjs-webpack-plugin,配置参数文档

参数列表:

test,测试匹配文件

include,压缩包含文件

exclude,压缩排除文件

chunkFilter,过滤可以压缩的块

cache,是否启用文件缓存

cacheKeys,覆盖默认缓存键

parallel,并行压缩配置

sourceMap,源码映射

minify,自定义压缩配置项

uglifyOptions,uglifyjs配置项

extractComments,注释操作配置

warningsFilter,过滤uglifyjs警告配置

链接文章

I am moving forward.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值