UnCSS简介
UnCSS是一款专门用于移除样式表中未使用CSS的开源工具。它的主要目标是帮助开发者优化网站性能,减少CSS文件的大小。UnCSS可以跨多个文件工作,并且支持处理JavaScript动态注入的CSS样式。
UnCSS的工作原理
UnCSS移除未使用CSS规则的过程如下:
- 使用jsdom加载HTML文件并执行JavaScript。
- 使用PostCSS解析所有样式表。
- 通过
document.querySelector
过滤出HTML文件中未找到的选择器。 - 将剩余的规则转换回CSS。
这种方法可以有效地识别和移除未使用的CSS,从而减小样式表的大小。
UnCSS的主要特点
- 跨多个文件工作
- 支持JavaScript注入的CSS
- 可以与Grunt、Gulp等构建工具集成
- 提供命令行界面和Node.js API
- 支持忽略特定选择器
- 可以处理媒体查询
安装和使用
UnCSS可以通过npm安装:
npm install uncss
在Node.js中使用
var uncss = require('uncss');
var files = ['index.html', 'about.html'],
options = {
ignore: ['#added_at_runtime', /test\-[0-9]+/],
media: ['(min-width: 700px) handheld and (orientation: landscape)'],
stylesheets : ['lib/bootstrap/dist/css/bootstrap.css', 'src/public/css/main.css'],
};
uncss(files, options, function (error, output) {
console.log(output);
});
命令行使用
uncss [options] <file or URL, ...>
例如:
uncss https://getbootstrap.com/docs/3.3/examples/jumbotron/ > stylesheet.css
与构建工具集成
UnCSS可以与多种JavaScript构建工具集成使用:
- grunt-uncss - Grunt插件
- gulp-uncss - Gulp插件
- broccoli-uncss - Broccoli插件
在线使用
对于简单测试或一次性使用,可以使用非官方的UnCSS在线服务。
注意事项
- UnCSS不能处理非HTML页面,如模板或PHP文件。
- 它只能处理页面加载时运行的JavaScript,无法处理用户交互(如点击)触发的JavaScript。
结语
UnCSS是一个强大的工具,可以帮助开发者优化CSS文件大小,提高网站性能。通过智能地移除未使用的CSS规则,它可以显著减小样式表的体积。无论是在开发过程中还是在生产环境中,UnCSS都是一个值得考虑的工具。
欢迎访问UnCSS的GitHub仓库以获取更多信息,或者为这个开源项目做出贡献。让我们一起优化网络,创造更快、更高效的web体验! 🚀💻🎨