コード例 #1
0
var compress = function(filename, opts) {
    var fileExt = path.extname(filename||'').replace(".","");

    // Compress Images
    if(config.image_min === true) {
      if(fileExt == 'png' || fileExt == 'jpg' || fileExt == 'jpeg' || fileExt == 'gif') {
         imagemin(filename , filename, { optimizationLevel: 4 }, function (err, data) {
              console.log('Images Compressed!!');
          });
      }
    }

    if (alreadyPacked(filename) || !processable(fileExt)) return;
    var originalContent = fs.readFileSync(filename).toString();
    var minifiedContent = supportedResources[fileExt](originalContent, opts);
    if (minifiedContent) {
        if (!opts.silent) {
            console.log("[info] Minify: " + filename.replace(hexo.public_dir, ""));
        }
        fs.unlink( filename, function ( err ) {
            if ( err ) throw err;
            fs.writeFile(filename, minifiedContent, 'utf8', function(err) {
                if (err) throw err;
            });
        });
    }
};
コード例 #2
0
        async.forEachLimit(files, os.cpus().length, function (file, next) {
            var msg;
            options.ext = path.extname(file.src[0]);

            // filter out dirs
            if (!options.ext) {
                return next();
            }

            mkdirp.sync(path.dirname(file.dest));

            fs.createReadStream(file.src[0])
                .pipe(imagemin(options)
                    .on('error', grunt.warn.bind(grunt))
                    .on('close', function (data) {
                        totalSaved += data.diffSizeRaw;

                        if (data.diffSizeRaw < 10) {
                            msg = 'already optimized';
                        } else {
                            msg = 'saved ' + data.diffSize + ' - ' + (data.diffSizeRaw / data.origSizeRaw * 100).toFixed() + '%';
                        }
                    }))
                .pipe(fs.createWriteStream(file.dest)
                    .on('error', grunt.warn.bind(grunt))
                    .on('close', function () {
                        grunt.log.writeln(chalk.green('✔ ') + file.src[0] + chalk.gray(' (' + msg + ')'));
                        process.nextTick(next);
                    }));
        }, function (err) {
コード例 #3
0
		async.forEachLimit(images, os.cpus().length, function (file, next) {

			var saveTarget = path.join(options.resultPath, path.relative(options.watchPath, file));

			imagemin(file, saveTarget, options, function (err, data) {
				formatFileCompressionLog(err, data, file);
				totalSaved += data.diffSizeRaw;
				process.nextTick(next);
			});
		}, function (err) {
コード例 #4
0
        async.forEachLimit(this.files, os.cpus().length, function (file, next) {
            imagemin(file.src[0], file.dest, options, function (err, data) {
                var msg;

                if (err) {
                    grunt.warn(err);
                }

                totalSaved += data.diffSizeRaw;

                if (data.diffSizeRaw < 10) {
                    msg = 'already optimized';
                } else {
                    msg = 'saved ' + data.diffSize;
                }

                grunt.log.writeln(chalk.green('✔ ') + file.src[0] + chalk.gray(' (' + msg + ')'));
                process.nextTick(next);
            });
        }, function (err) {
コード例 #5
0
ファイル: index.js プロジェクト: Liechtenecker/blog-gulp
			fs.stat(tempFile, function (err, stats) {
				if (err) {
					return cb(new gutil.PluginError('gulp-imagemin', err));
				}

				var origSize = stats.size;

				imagemin(tempFile, tempFile, options, function () {
					fs.readFile(tempFile, function (err, data) {
						if (err) {
							return cb(new gutil.PluginError('gulp-imagemin', err));
						}

						var saved = origSize - data.length;
						var savedMsg = saved > 0 ? 'saved ' + filesize(saved, {round: 1}) : 'already optimized';

						gutil.log('gulp-imagemin:', gutil.colors.green('✔ ') + file.relative + gutil.colors.gray(' (' + savedMsg + ')'));

						file.contents = data;
						cb(null, file);
					});
				});
			});
コード例 #6
0
	fs.mkdir(path.dirname(saveTarget), function(){
		imagemin(filename, saveTarget, options.imageminOptions, function (err, data){
			formatFileCompressionLog(err, data, filename);
		});
	});