node package manager

grunt-csso

Minify CSS files with CSSO.

grunt-csso Build Status Dependency Status

Minify CSS files with CSSO.

CSSO task

Run this task with the grunt csso command.

Task targets, files and options may be specified according to the grunt Configuring tasks guide.

Files are compressed with csso.

Options

restructure

Type: Boolean
Default: true

You can turns structural optimizations off.

banner

Type: String
Default: null

Prefix the compressed source with the given banner, with a linebreak inbetween.

report

Choices: false, true, 'min', 'gzip'
Default: false

Either report only minification result or report minification and gzip results. This is useful to see exactly how well clean-css is performing but using 'gzip' will make the task take 5-10x longer to complete. Example output.

beforeCompress

Type: (ast, options, csso) => {}, [(ast, options, csso) => {}]
Default: null

Allows registering one or many beforeCompress functions. This is useful to add manipulate the AST before compression is made by csso.

afterCompress

Type: (ast, options, csso) => {}, [(ast, options, csso) => {}]
Default: null

Allows registering one or many afterCompress functions. This is useful to add manipulate the AST after compression is made by csso.

Usage Examples

csso: {
  compress: {
    options: {
      report: 'gzip'
    },
    files: {
      'output.css': ['input.css']
    }
  },
  restructure: {
    options: {
      restructure: false,
      report: 'min'
    },
    files: {
      'restructure.css': ['input.css']
    }
  },
  banner: {
    options: {
      banner: '/* Copyleft */'
    },
    files: {
      'banner.css': ['input.css']
    }
  },
  shortcut: {
    src: 'override.css'
  }
}

Minify all contents of a release directory and add a .min.css extension

csso: {
  dynamic_mappings: {
    expand: true,
    cwd: '/css/',
    src: ['*.css', '!*.min.css'],
    dest: 'dest/css/',
    ext: '.min.css'
  }
}