grunt-contrib-less v0.9.0

编译less文件为css

Getting Started

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

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

安装less

  1. npm install grunt-contrib-less --save-dev

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

  1. grunt.loadNpmTasks('grunt-contrib-less');

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

Less 任务

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

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

配置选项

paths

  • 类型(Type): String Array
  • 默认值(Default): 与待编译文件目录相同

该选项用来指定less中通过 @import 导入的文件对应的路径,默认与待编译文件路径相同。

rootpath

  • 类型(Type): String
  • 默认值(Default): ""

用来指定一个根目录,编译时会把这个路径添加到每个本地资源地址的前面。

compress

  • 类型(Type): Boolean
  • 默认值(Default): false

生成的文件是否删除空格进行压缩,默认不压缩。

cleancss

  • 类型(Type): Boolean
  • 默认值(Default): false

是否使用 clean-css 进行压缩,默认不使用。

ieCompat

  • 类型(Type): Boolean
  • 默认值(Default): true

输出的css文件兼容IE8模式。

例如,data-uri中包含了一个用base64编码的文件,并将其通过css引入,而IE8限制了data-uri的字节为32kb,因此开启ieCompat选项可防止超过这个数值。

optimization

  • 类型(Type): Integer
  • 默认值(Default): null

设置解析器的优化级别。数字越低,创建的节点就越少。当进行调试或者想访问其中的节点可以设置这个选项。

strictImports

  • 类型(Type): Boolean
  • 默认值(Default): false

启用严格的导入模式,默认不启用。

strictMath

  • 类型(Type): Boolean
  • 默认值(Default): false

如果开启此项,则相关数学运算必须加上括号才有效。

strictUnits

  • 类型(Type): Boolean
  • 默认值(Default): false

当开启该选项后,编译时会检测less中的单位。例如: 4px/2px = 2 可以通过,而 4em/2px 则会报错。

syncImport

  • 类型(Type): Boolean
  • 默认值(Default): false

从磁盘中同步读取 @import 导入的文件。

dumpLineNumbers

  • 类型(Type): String
  • 默认值(Default): false

设置支持sass调试信息。

可接收以下值: comments, mediaquery, all.

relativeUrls

  • 类型(Type): String
  • 默认值(Default): false

重写url为相对路径,默认false不开启。

report

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

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

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

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

  1. Original: 198444 bytes.
  2. Minified: 101615 bytes.
  3. Gzipped: 20084 bytes.

sourceMap

  1. /********************************************
  2. * sourceMap placeholder
  3. *********************************************/

示例

  1. less: {
  2. development: {
  3. options: {
  4. paths: ["assets/css"]
  5. },
  6. files: {
  7. "path/to/result.css": "path/to/source.less"
  8. }
  9. },
  10. production: {
  11. options: {
  12. paths: ["assets/css"],
  13. // 使用cleancss压缩
  14. cleancss: true
  15. },
  16. files: {
  17. "path/to/result.css": "path/to/source.less"
  18. }
  19. }
  20. }