Home

Awesome

Grunt Image Embed

This task converts all data found within a stylesheet (those within a url( ... ) declaration) into base64-encoded data URI strings. This includes images and fonts.

Created by Eric Hynds @erichynds with major contributions from dancingplatypus.

Features

Getting Started

Install this plugin with the command:

npm install grunt-image-embed

Next, add this line to your project's grunt file:

grunt.loadNpmTasks("grunt-image-embed");

Lastly, add configuration settings to your grunt.js file (see below).

Documentation

This task has two required properties, src and dest. src is the path to your stylesheet and dest is the file this task will write to (relative to the grunt.js file). If this file already exists it will be overwritten.

An example configuration looks like this:

grunt.initConfig({
  imageEmbed: {
    dist: {
      src: [ "css/styles.css" ],
      dest: "css/output.css",
      options: {
        deleteAfterEncoding : false,
        preEncodeCallback: function (filename) { return true; }
      }
    }
  }
});

Optional Configuration Properties

ImageEmbed can be customized by specifying the following options:

Skipping Images

Specify that an image should be skipped by adding the following comment directive after the image:

background: url(image.gif); /*ImageEmbed:skip*/

Compatibility

Version >= 0.3.0 of this plugin is compatible with Grunt 0.4.x. Versions 0.0.1 through 0.2.0 are only compatible with Grunt 0.3.x.

License

Copyright (c) 2013 Eric Hynds (@erichynds) Licensed under the MIT License.