顺晟科技
2021-06-16 10:47:17
283
干净-CSS是一个非常简单的半铸钢钢性铸铁(铸造半钢)压缩程序,基于Node.js环境开发使用,可以删除半铸钢钢性铸铁(铸造半钢)中一些无用的空格、评论以及每个选择器后面的分号,还可以压缩通过@导入引入的半铸钢钢性铸铁(铸造半钢)文件。
干净-CSS基于Node.js的半铸钢钢性铸铁(铸造半钢)代码压缩工具
环境依赖
Node.js 4.0(在CentOS、Ubuntu、OS X和Windows操作系统上测试)
通过新公共管理安装
新公共管理安装clean-css
如何使用命令行
干净-CSS接受下列命令行参数,使用时请将需要优化的半铸钢钢性铸铁(铸造半钢)文件源文件放置到最后一个参数后面,避免遇到潜在的不可预想的问题。
cleanss[选项]源文件,[源文件,]
-h,-帮助输出使用信息
-v,-版本输出版本号
-b-保持换行-保持换行
-c,-兼容性[ie7|ie8]强制兼容模式(参见自述文件中的示例)
-d,-调试显示调试信息(缩小时间压缩效率)
-o,-输出[输出文件]使用[输出文件]代替标准输出作为输出
-r,-root[根路径]设置解析@导入规则的根路径
-s,-跳过-导入禁用@导入处理
-t,-暂停[秒]提取远程@导入时每个连接超时(默认为5秒)
-舍入-精度[n]舍入到小数点后" n "位。默认为2。-1禁用舍入
- s0删除所有特殊注释,即/*!注释*/
- s1删除除条注释之外的所有特殊注释
-语义合并-通过假设类似边界元的语义样式表来启用不安全模式(警告,这可能会破坏您的样式!)
-跳过-禁用优化-规则集重新排序合并
-跳过-积极合并-根据属性的顺序禁用属性合并
-跳过-导入-从[规则]禁用指定规则的@导入处理
-跳过-媒体合并-禁用@媒体合并
-跳过-重定基禁用网址重定基
-跳过重组-禁用重组优化
-跳过-速记-压缩禁用速记压缩
-源地图启用构建输入的源地图
-源地图内联-源启用源地图内联源
使用举例
将public.css文件缩小为public-min.css do:
清洁CSS-o公共-min。CSS公共。半铸钢钢性铸铁(Cast Semi-Steel)
要将相同的public.css缩小为标准输出,请跳过表示“具有…性质的”参数:
cleancss public.css
更有可能的是,您想要连接几个文件。如果您在类似Unix操作系统的system:上
一号猫。CSS二。CSS第三。CSS | clean CSS-o合并并缩小。半铸钢钢性铸铁(Cast Semi-Steel)
在窗口:上
键入一个。CSS二。CSS第三。CSS | clean CSS-o合并并缩小。半铸钢钢性铸铁(Cast Semi-Steel)
或者甚至一下子把结果压缩:
一号猫。CSS二。CSS第三。merged-minified-and-gzipped.css.gz
相关链接
开源代码库地址:https://github。com/jakupawlowicz/clean-CSS
基于的在线服务:
http://refresh-sf.com/
http://adamburgess.github.io/clean-css-online/
如何使用Clean-CSS API?
var clean CSS=require(' clean-CSS ');
var source=' a { font-weight : bold;}';
var minified=new CleanCSS().minify(来源)。风格;
CleanCSS构造函数接受一个哈希作为参数,即新的CleanCSS(选项)具有以下可用选项:
设置为错误的以禁用优化选择器属性合并、缩减等。
侵略性合并设置为错误的以禁用属性的侵略性合并。
基准开启基准模式,测量清理花费的时间(运行新公共管理运行工作台查看示例)
兼容性启用兼容性模式,更多示例见下文
调试设置为真实的以获取统计数据属性下的缩小统计信息(参见测试/自定义-test.js示例)
inliner一个@导入inliner选项的散列,参见test/protocol-imports-test.js获取示例,或者这个注释获取代理用例。
保留换行符是否保留换行符(默认值为假)
保留特殊注释*表示保留全部(默认),1表示仅保留个,0表示删除全部
媒体合并是否按规则合并@媒体(默认为真)
处理导入是否处理@导入规则
ProcessIMPORTFrom一个@导入规则列表,可以是['all'](默认),['local'],['remote'],或者黑名单路径,例如['!字体。谷歌api。' com ']
重设基础设置为错误的以跳过网址重设基础
相对路径解析相对@导入规则和网址的路径
重组设置为错误的以禁用优化中的重组
根解析@导入规则和基于相对统一资源定位器的路径
舍入精度舍入精度;默认为2;-1禁用舍入
语义合并设置为真实的以启用语义合并模式,该模式假设类似边界元的内容(默认值为假的,因为这很可能会破坏您的样式表请谨慎使用!)
shorthancompact设置为错误的以跳过速记压缩(默认为没错,除非sourceMap设置为false)
源映射在源映射属性下显示源映射,例如新的CleanCSS().minify(来源)。源映射(默认为假)如果输入样式是半铸钢钢性铸铁(Cast Semi-Steel)预处理器(少,萨斯)的产品,输入源映射可以作为字符串传递。
sourceMapinlineSources设置为真实的以在源映射的源内容字段内内联源(默认为false)它也是处理来自输入源映射的内联源所必需的。
目标文件夹或输出文件的路径,所有统一资源定位器都以此为基础
使变小方法的输出(或传递给回调的第二个参数)是一个包含以下字段的散列:
样式优化的字符串输出半铸钢钢性铸铁(Cast Semi-Steel)
源地图输出源地图(如果源地图选项要求)
错误引发的错误列表
警告引发的警告列表
统计统计信息的散列(如果使用调试选项请求):
原始大小原始内容大小(导入内嵌后)
迷你尺寸优化的内容大小
时间消耗用于优化的时间
效率——输出大小与输入大小的比率(例如,如果内容从100字节减少到75字节,则为25%)
如何处理通过@导入引入的文件?
为了内联远程@导入语句,您需要提供一个对使变小方法的回调,例如:
var clean CSS=require(' clean-CSS ');
var source=' @ import URL(http://path/to/remote/style);';
新的CleanCSS().minify(源,函数(错误,minified) {
//缩小。风格
});
这是因为,虽然本地文件可以同步读取,但远程资源只能异步处理。如果您不提供回调,那么远程@导入将保持不变。
如何保留注释块?
请使用/*!符号而不是标准的1/* :
/*!
缩小输出中包含的重要注释。
*/
如何改变相关的图像的URL?
在下列情况下,清洁-css将自动为您处理它(从1.1版开始)
使用CLI:时
使用经由-o/-输出的输出路径,将统一资源定位器作为相对于输出文件的基础。
通过-r/-根使用一个根路径,从给定的根路径将统一资源定位器重新设置为路径。
如果两者都指定,则-r/-根优先。
当使用clean-css作为库时:
相对基础使用相对和目标选项的组合(与命令行界面中的一相同)。
使用相对和根选项的组合作为基(与命令行界面中的2相同)。
在命令行界面中,根优先于目标。
如何生成源地图?
从3.0版开始支持源地图。
除了映射原始的半铸钢钢性铸铁(Cast Semi-Steel)文件,clean-css还支持输入源映射,因此缩小的样式可以直接映射到它们的较少的或厚颜无耻源。
源地图是使用浏览器名的源地图模块生成的。
使用命令行
要生成源映射,请使用-源地图开关,例如:
干净的CSS-源-映射-输出样式。量滴CSS风格。半铸钢钢性铸铁(Cast Semi-Steel)
输出文件的名称是必需的,因此需要一个映射文件,通过添加。可以创建输出文件名的映射后缀(在这种情况下是风格。量滴CSS。地图).
使用应用程序接口
要生成源映射,请使用源映射:真选项,例如:
新的CleanCSS({ sourceMap: true,target : path to outputdirectory })。minify(源,函数(错误,minified) {
//访问SourceMapGenerator对象的minified.sourceMap
//详见https://github.com/mozilla/source-map/#sourcemapgenerator
//参见https://github。com/jakupawlowicz/clean-CSS/blob/master/bin/clean CSS # L114关于如何在清理命令行界面中使用
});
使用应用编程接口,你也可以直接传递一个输入源映射
新的清理CSS({源映射:输入源emapassstring,目标:输出目录路径})。minify(源,函数(错误,minified) {
//访问minified.sourceMap访问SourceMapGenerator对象
//详见https://github.com/mozilla/source-map/#sourcemapgenerator
//参见https://github。com/jakupawlowicz/clean-CSS/blob/master/bin/clean CSS # L114关于如何在清理命令行界面中使用
});
或者甚至一次多个输入源映射(从3.1版本开始可用):
新的CleanCSS({ sourceMap: true,target : path to outputdirectory }).minify({
path/to/source/1': {
样式: '.样式.
sourceMap: '.源地图.
},
path/to/source/2': {
样式: '.样式.
sourceMap: '.源地图.
}
},函数(错误,缩小){
//如上访问minified.sourceMap
});
如何通过应用程序接口压缩多个文件?
通过传递数据
新的CleanCSS().minify(['path/to/file/one ',' path/to/file/two ']);
通过传递混杂
新的CleanCSS().minify({
路径/到/文件/one': {
样式:"文件一的内容"
},
path/to/file/two': {
样式:"文件二的内容"
}
});
如何设置兼容模式?
兼容性设置由-兼容性开关(命令行界面)和兼容性选项(库模式)控制。
在这两种模式下,允许下列值:
ie7’互联网浏览器7兼容模式
ie8’互联网浏览器8兼容模式
''或' * '(默认)Internet Explorer 9兼容模式
由于clean-css 3对这些设置有精细的控制,有以下选项可用:
[-]颜色。“不透明”打开()/关闭(-) rgba()/hsla()声明删除
[-]属性。背景剪辑合并'打开/关闭背景剪辑合并为速记
[-]属性。背景资料来源'--打开/关闭背景-起源合并成速记
[-]属性。背景尺寸合并'打开/关闭背景大小合并为速记
[-]属性。“颜色”打开/关闭任何颜色优化
[-]属性。“iebang hack”打开/关闭ieBangHack移除
[-]属性。ieprefixhack '打开/关闭工业管理学(Industrial Engineering)前缀黑客删除
[-]属性。‘iesuffixHack’打开/关闭工业管理学(Industrial Engineering)后缀砍移除
[-]属性。合并'根据可理解性打开/关闭属性合并
[-]属性。较短的长度单位打开/关闭将像素单位缩短为pc、pt或单位
[-]属性。space after closing branch'打开/关闭在右大括号后移除空格URL()-不重复进入网址()不重复
[-]属性。URL quotes'打开/关闭url()引用
[-]属性。零单位在0值后打开/关闭单位移除
[-]选择器。相邻空间'打开/关闭导航元素前的额外空间
[-]选择器。IE7黑客'打开/关闭IE7选择器砍移除(* html.)
[-]选择器。特殊'包含所有特殊的、不可合并的选择器的正则表达式(除非您知道自己在做什么,否则留空)
[-]个单位。ch’打开/关闭将荣誉勋爵视为合适的单位
[-]单位’打开/关闭将作为一个适当的单位处理
[-]个单位。‘PC’打开/关闭将个人电脑视为合适的单元
[-]个单位。“pt”打开/关闭将元素铂的符号视为一个合适的单元
[-]个单位。“rem”打开/关闭视雷姆为合适的单位
[-]个单位。“VH”打开/关闭将重链可变区视为一个合适的单元
[-]个单位。“VM”打开/关闭将伏特计视为适当的单元
[-]个单位。“VMAX”打开/关闭将威玛视为合适的单元
[-]个单位。vmin'打开/关闭将最小检定分度值视为适当的单元
例如,使用-兼容性' ie8,units.rem '将在启用雷姆单位的同时确保ie8的兼容性,因此以下样式margin:0px 0rem可以缩短为margin:0,而在纯IE8模式下则不能。
要在命令行界面中传递单个关闭(-)开关,请使用以下语法-兼容性*,-单位
在库模式下,您也可以将兼容性作为选项的散列来传递。
什么是压缩模式?
所有优化都在这里调度,这就是他们所做的:
递归优化块对一个块执行以下所有操作(想想@媒体或@ key key-at-rules);
递归优化属性通过将规则集和"平面规则"(如@font-face)拆分成组件(例如,将页边距拆分成页边距-(*))、优化和重新构建来优化规则集和"平面规则"中的属性。您可能希望使用shorthandCompacting选项来控制是否要将多个(长手)属性转换为速记属性;
删除重复删除具有完全相同的属性集的重复规则集(想想无缘无故包含两次相同的时髦/少部分);
合并相邻合并具有相同选择器或规则的相邻规则集;
减少不相邻识别哪些属性在相同选择器的不相邻规则集中被覆盖,并删除它们;
mergernonadjacentbyelector标识可移动的同选择器非相邻规则集(!)要合并,要求所有中间规则集不要重新定义已移动的属性,或者如果重新定义为更粗粒度(例如边距对页边距顶部)或具有相同的值;
mergernonadjancentbybody与上述相同,但规则相同,规则不相邻;
重组尝试重组不同选择器不同规则的规则集,以便它们占用更少的空间。一个{ padding:0 } .两个{margin:0} .一个{ margin-bottom :3 xx }进。两个{margin:0} .一个{ padd :0 margin-bottom :3 px };
移除重复的媒体查询移除重复的@ media at-rules;
合并媒体查询按照与上述合并不相邻的媒体*相同的规则合并不相邻的@媒体;
08
1972-02
02
2022-09
14
2022-04
09
2022-04
16
2021-06
16
2021-06