此插件为hexo-renderer-multi-next-markdown-it拆分出的缩小器模块。
基于更现代的缩小器重构(例如lightningcss
和minify-html
),速度相较于旧版大幅提升。
如果你需要更全面的优化可以试试hexo-optimize。本项目更倾向于作为 ShokaX 的配套支持包存在,因而仅存在基本的缩小与优化功能。
pnpm add hexo-lightning-minify # 建议使用pnpm
npm install hexo-lightning-minify
minify:
js:
enable: true # ShokaX 自带 esbuild 优化,不建议开启,其他主题建议开启
exclude: # 排除文件,接受 string[],需符合 micromatch 格式
css:
enable: true # 开启 CSS 优化
options:
targets: ">= 0.5%" # browserslist 格式的 target
exclude: # 排除文件,接受 string[],需符合 micromatch 格式
html:
enable: true # 开启 HTML 优化
options:
comments: false # 是否保留注释内容
exclude: # 排除文件,接受 string[],需符合 micromatch 格式
image:
enable: true # 开启图片预处理和自动 WebP 化
options:
avif: false
webp: true # 预留配置项,现版本无作用
quality: 80 # 质量,支持1-100的整数、lossless或nearLossless
effort: 2 # CPU 工作量,0-6之间的整数(越低越快)
replaceSrc: true # 自动替换生成html中的本地图片链接为webp链接
# 我们更建议使用 Service Worker 来在用户侧实现 replaceSrc 的功能,这将能够以一种侵入式更小的方式实现链接替换
exclude:
- 自动缩小 js、css 和 html
- 基于 targets 自动处理 CSS 前缀兼容
- 自动 webp 化与图片预处理
- 自动预连接优化(长期)
基于 hexo-many-posts 测试:
使用 Hexo 6.3.0,仅对 html, css 和 js 进行压缩测试
base | hexo-neat | hexo-minify | hexo-all-minifier | hexo-lightning-minify | |
---|---|---|---|---|---|
landscape | 10.529s | 37.918s | 36.844s | 38.572s | 16.304s |
next | 27.275s | 36.124s | 42.854s | 37.063s | 29.880s |
butterfly | 13.853s | 26.641s | 26.736s | 35.973s | 16.796s |
particlex | 24.422s | 200.641s | 193.981s | 201.601s | 40.478s |
reimu | 17.631s | 52.432s | 48.524s | 51.835s | 23.938s |
shokax(hexo-renderer-marked) | 13.189s | 20.618s | 19.658s | 22.448s | 14.619s |
base | hexo-neat | hexo-minify | hexo-all-minifier | hexo-lightning-minify | |
---|---|---|---|---|---|
landscape | 99,617,529B | 97,186,156B | 92,010,232B | 97,184,707B | 88,175,339B |
next | 32,469,157B | 30,087,003B | 28,744,583B | 30,059,443B | 28,020,740B |
butterfly | 37,593,633B | 37,237,074B | 33,485,597B | 34,897,171B | 35,504,670B |
particlex | 540,876,348B | 226,997,833B | 214,050,994B | 226,990,791B | 221,896,130B |
reimu | 110,252,086B | 95,756,049B | 91,074,639B | 95,715,486B | 88,088,009B |
shokax(hexo-renderer-marked) | 142,585,026B | 142,404,138B | 140,988,094B | 142,011,849B | 140,457,331B |
图表中为了更加清晰的对比,所以移除了 hexo-theme-particlex