laravel-elixir-base64
Version:
A small helper to inline images as base64 for Laravel Elixir
41 lines (31 loc) • 1.36 kB
JavaScript
var elixir = require('laravel-elixir'),
inline_base64 = require('gulp-inline-base64'),
gulp = require("gulp"),
rename = require("gulp-rename"),
utilities = require('laravel-elixir/ingredients/commands/Utilities'),
notifications = require('laravel-elixir/ingredients/commands/Notification');
/**
* Run the base64 converted on the source file.
*
* @param {string|array} src
* @param {string} output
* @param {object|null} options
*/
var inlineBase64 = function(src, filename, options) {
var opts = options || {};
var file_path = elixir.config.cssOutput + "/" + src;
var fullBaseDir = opts.baseDir || elixir.config.assetsDir + "images/";
gulp.task("base-64-inline", function() {
var compiledFile = gulp.src(file_path)
.pipe(inline_base64({
baseDir: fullBaseDir,
maxSize: opts.maxSize || 14 * 1024,
debug: opts.debug || false
}));
compiledFile.pipe(rename(filename || "optimized.css"))
.pipe(gulp.dest(elixir.config.cssOutput));
});
this.registerWatcher("base-64-inline", [ file_path, fullBaseDir + "**/*" ]);
return this.queueTask("base-64-inline");
};
elixir.extend("inlineBase64", inlineBase64);