原文:http://riny.net/2014/grunt-cssmin/

grunt-contrib-cssmin v0.7.0

使用cssmin压缩css文件

Getting Started

这个插件要求 Grunt 为 0.4.0 或以上版本。

如果你还不了解grunt,请查阅相关文档来了解什么是 Grunt Grunt新手入门,比如如何创建 Gruntfile,如何配置 Grunt 任务,如何安装 Grunt 插件。

安装cssmin

npm install grunt-contrib-cssmin --save-dev

安装好之后,可以在 Gruntfile 文件中使用如下方式载入cssmin插件:

grunt.loadNpmTasks('grunt-contrib-cssmin');

也可以通过在 package.json 文件中配置插件依赖,然后使用 npm install 的方式统一安装所有依赖的插件。

该插件能够完美运行在 Grunt 0.4.x 版本,如果你还在使用 Grunt 0.3.x 的版本,建议您尽快升级 怎样升级

Cssmin 任务

可以使用 grunt cssmin 命令来运行一个 cssmin 任务。

任务目标,需要压缩的文件以及其他配置选项可以在任务配置中指定,配置可参考 任务配置说明 。

另外,文件压缩是通过 clean-css 实现。

配置选项

banner

  • 类型(Type): String
  • 默认值: Null

用来生成注释并添加到压缩文件顶部。

keepSpecialComments

  • 类型(Type): String Number
  • 默认值: '*'

此选项用来配置是否保留特殊注释,是 clean-css 提供的底层配置选项。

扩展:clean-css建议使用 /*! ... */ 注释来代替 /* ... */

  • keepSpecialComments的默认值 * 表示保留所有通过 /*! ... */ 书写的注释;
  • 当设置值为 1 时只保留第一个通过 /*! ... */ 书写的注释,
  • 设置值为 0 时表示全都不保留。

report

  • 可选择的值: false min gzip
  • 默认值: false

report可以向我们展示文件压缩前后以及服务器端开启gzip压缩后的css文件大小,可以很直观的看出使用clean-css的效果。

  • 默认值为 false ,表示不展示任何信息;
  • 当设置为 min 时会展示css压缩前和压缩后的文件大小;
  • 当设置为 gzip 时,会展示css文件压缩前后以及服务器端开启gzip后的css文件大小。
    必须说明的是当设置为 gzip 时,会花费原来5-10倍的时间才能完成本次任务。

下面是report设置为gzip时的显示结果:

Original: 198444 bytes.
Minified: 101615 bytes.
Gzipped: 20084 bytes.

示例

将两个css文件合并后压缩

cssmin: {    // 任务名称
combine: {
files: {
'path/to/output.css': ['path/to/input_one.css', 'path/to/input_two.css']
}
}
}

在生成的压缩文件顶部添加注释

cssmin: {
add_banner: {
options: {
banner: '/* My minified css file */'
},
files: {
'path/to/output.css': ['path/to/**/*.css'] // 合并并压缩 path/to 目录下(包含子目录)的所有css文件
}
}
}

压缩项目目录中的所有css文件,并一一生成对应的.min.css文件

cssmin: {
minify: {
expand: true, // 启用下面的选项
cwd: 'release/css/', // 指定待压缩的文件路径
src: ['*.css', '!*.min.css'], // 匹配相对于cwd目录下的所有css文件(排除.min.css文件)
dest: 'release/css/', // 生成的压缩文件存放的路径
ext: '.min.css' // 生成的文件都使用.min.css替换原有扩展名,生成文件存放于dest指定的目录中
}
}

grunt-contrib-cssmin使用指南的更多相关文章

  1. grunt下cssmin的配置参数

    每个目标的具体设置,需要参考该模板的文档minify目标的参数具体含义如下: expand:如果设为true,就表示下面文件名的占位符(即*号)都要扩展成具体的文件名. cwd:需要处理的文件(inp ...

  2. 前端打包构建工具grunt快速入门(大篇幅完整版)

    打包的目的和意义就不用叙述了直接上干货 http://www.gruntjs.net/getting-started里面的教程也太简单了,需要下一番功夫去研究才行.本文将grunt打包的常用方法都用实 ...

  3. 【grunt整合版】30分钟学会使用grunt打包前端代码

    grunt 是一套前端自动化工具,一个基于nodeJs的命令行工具,一般用于:① 压缩文件② 合并文件③ 简单语法检查 对于其他用法,我还不太清楚,我们这里简单介绍下grunt的压缩.合并文件,初学, ...

  4. 【grunt第二弹】30分钟学会使用grunt打包前端代码(02)

    前言 上一篇博客,我们简单的介绍了grunt的使用,一些基础点没能覆盖,我们今天有必要看看一些基础知识 [grunt第一弹]30分钟学会使用grunt打包前端代码 配置任务/grunt.initCon ...

  5. (绝对官方好用,快速上手)针对grunt之前写的那篇有些乱,这次总结个清晰的

    安装 Grunt基于Node.js,安装之前要先安装Node.js,然后运行下面的命令. sudo npm install grunt-cli -g grunt-cli表示安装的是grunt的命令行界 ...

  6. grunt 基本使用使用(一)。

    使用grunt 之前,需要做一些基本工作. 1.在E盘 新建空文件夹 grunt. 2.在grunt目录下新建package.json 文件,用了存储 npm模块的依赖项.基本依赖块代码如下: { & ...

  7. Grunt vs Gulp

    grunt vs gulp 虽然gulp已经出来很久了,但是一直没有去使用过.得益于最近项目需要,就尝试了一下,以下从几个要点讲一下grunt和gulp使用的区别,侧重讲一下在使用gulp过程中发现的 ...

  8. 使用grunt打包前端代码

    grunt 是一套前端自动化工具,一个基于nodeJs的命令行工具,一般用于:① 压缩文件② 合并文件③ 简单语法检查 对于其他用法,我还不太清楚,我们这里简单介绍下grunt的压缩.合并文件,初学, ...

  9. Grunt :任务自动管理工具

    来自<JavaScript 标准参考教程(alpha)>,by 阮一峰 在Javascript的开发过程中,经常会遇到一些重复性的任务,比如合并文件.压缩代码.检查语法错误.将Sass代码 ...

  10. 【grunt整合版】 30分钟学会使用grunt打包前端代码

    grunt 是一套前端自动化工具,一个基于nodeJs的命令行工具,一般用于:① 压缩文件② 合并文件③ 简单语法检查 对于其他用法,我还不太清楚,我们这里简单介绍下grunt的压缩.合并文件,初学, ...

随机推荐

  1. C#的Winform中OpenFileDialog对话框Filter属性设置包含特定字符,使用正则表达式

    OpenFileDialog对话框的Filter属性说明: 首先观察Filter属性的组成部分:“Word文件|*.doc ”,前面的“Word文件”成为标签,是一个可读的字符串,可以自定定义,“|* ...

  2. 【Selenium专题】高亮显示页面元素

    高亮显示页面元素主要用到Selenium中使用js的知识点,最常用的是检查元素定位是否正确.此外,实现js的调用大大增强了Selenium的功能.以下是调试通过的案例: import org.open ...

  3. 【QTP专题】03_Add-in Manager插件

    1.什么是Add-in Manager Add-in Manager,故名思议这是一个QTP插件管理器,每次启动前需要选择对应的插件才能进行测试. 打开QTP之后,我们可以看到有如下的一个Add-in ...

  4. Android 用 res 中文件名获取资源 id 的方法

    res 中我们可能会放很多图片和音频视频等.它们放在 R.drawable, R.raw 下面. 有一种情况是,比如我有一个数据库保存项目中声音的一些信息.声音的 id 就很难保存.因为我们不能把 R ...

  5. 牛客网提高组模拟赛第七场 T2 随机生成树

    其实看懂题就很水啦qwq,就是求\(1-N\)的约数啦. 暴力求的话时间复杂度是\(O(NlogN)\)的,其实正解是枚举每个数的倍数......这样的时间复杂度是\(\frac{N}{1}+\fra ...

  6. 序列(DP)(组合数)

    这是一个DP题. 我们设\(f[i][j][k]\)表示\(i\)序列长度中放入了\(j\)个元素,其中\(k\)是限定的众数的个数:状态转移方程是 \[f[k][i][j]=f[k][i-1][j- ...

  7. 部署LAMP架构及其应用

    部署企业LAMP架构 (一)首先安装Apache服务,具体请见另一篇关于Apache的博文. (二)安装MySQL数据库,具体请见另一篇关于LNMP的博文. (三)构建PHP运行环境 1.安装PHP ...

  8. python常用模块之OS

    os模块偏于文件目录管理 <1>.常用方法 工作目录: os.getcwd() 返回当前工作目录 os.chdir(dir) 更改当前工作目录,相当于cd 目录文件操作: os.mkdir ...

  9. software installing

    <1>.Apache防火墙配置 firewall-cmd --add-service=http firewall-cmd --add-service=https 防火墙通过80和443端口 ...

  10. Mac下显示和隐藏“隐藏文件”

    命令行方式:显示/隐藏Mac隐藏文件命令如下(注意其中的空格并且区分大小写): 显示Mac隐藏文件的命令: defaults write com.apple.finder AppleShowAllFi ...