rump-images
Version:
Rump piece for handling images
71 lines (44 loc) • 7.45 kB
JavaScript
;
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
var _gulp = require('gulp');
var _gulp2 = _interopRequireDefault(_gulp);
var _gulpChanged = require('gulp-changed');
var _gulpChanged2 = _interopRequireDefault(_gulpChanged);
var _gulpClone = require('gulp-clone');
var _gulpClone2 = _interopRequireDefault(_gulpClone);
var _gulpFilter = require('gulp-filter');
var _gulpFilter2 = _interopRequireDefault(_gulpFilter);
var _gulpGm = require('gulp-gm');
var _gulpGm2 = _interopRequireDefault(_gulpGm);
var _gulpImagemin = require('gulp-imagemin');
var _gulpImagemin2 = _interopRequireDefault(_gulpImagemin);
var _gulpPlumber = require('gulp-plumber');
var _gulpPlumber2 = _interopRequireDefault(_gulpPlumber);
var _gulpRename = require('gulp-rename');
var _gulpRename2 = _interopRequireDefault(_gulpRename);
var _rump = require('rump');
var _rump2 = _interopRequireDefault(_rump);
var _gulpUtil = require('gulp-util');
var _path = require('path');
var name = _rump2['default'].taskName.bind(_rump2['default']);
var task = _gulp2['default'].task.bind(_gulp2['default']);
var configs = _rump2['default'].configs;
task(name('build:images'), function () {
var source = (0, _path.join)(configs.main.paths.source.root, configs.main.paths.source.images, configs.main.globs.build.images);
var destination = (0, _path.join)(_rump2['default'].configs.main.paths.destination.root, _rump2['default'].configs.main.paths.destination.images);
var minify = configs.main.images.minify;
var stream = (0, _gulp.src)([source].concat(configs.main.globs.global)).pipe((_rump2['default'].configs.watch ? _gulpPlumber2['default'] : _gulpUtil.noop)()).pipe((_rump2['default'].configs.watch ? _gulpChanged2['default'] : _gulpUtil.noop)(destination));
// Clone retina images if available
if (configs.main.images.retina) {
var cloneSink = _gulpClone2['default'].sink(),
retinaFilter = (0, _gulpFilter2['default'])(['**/*@2x.*'], { restore: true });
stream = stream.pipe(retinaFilter).pipe(cloneSink).pipe((0, _gulpGm2['default'])(function (gmfile, done) {
return done(null, gmfile.resize('50%', '50%'));
})).pipe((0, _gulpRename2['default'])(function (path) {
return path.basename = path.basename.replace(/@2x$/, '');
})).pipe(retinaFilter.restore).pipe(cloneSink.tap());
}
return stream.pipe((minify ? _gulpImagemin2['default'] : _gulpUtil.noop)(configs.main.images.imagemin)).pipe((0, _gulp.dest)(destination));
});
_gulp.tasks[name('build')].dep.push(name('build:images'));
//# sourceMappingURL=data:application/json;base64,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QUFjLENBQUMsQ0FBQyxDQUFBIiwiZmlsZSI6ImJ1aWxkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGd1bHAsIHtkZXN0LCBzcmMsIHRhc2tzfSBmcm9tICdndWxwJ1xuaW1wb3J0IGNoYW5nZWQgZnJvbSAnZ3VscC1jaGFuZ2VkJ1xuaW1wb3J0IGNsb25lIGZyb20gJ2d1bHAtY2xvbmUnXG5pbXBvcnQgZmlsdGVyIGZyb20gJ2d1bHAtZmlsdGVyJ1xuaW1wb3J0IGdtIGZyb20gJ2d1bHAtZ20nXG5pbXBvcnQgaW1hZ2VtaW4gZnJvbSAnZ3VscC1pbWFnZW1pbidcbmltcG9ydCBwbHVtYmVyIGZyb20gJ2d1bHAtcGx1bWJlcidcbmltcG9ydCByZW5hbWUgZnJvbSAnZ3VscC1yZW5hbWUnXG5pbXBvcnQgcnVtcCBmcm9tICdydW1wJ1xuaW1wb3J0IHtub29wfSBmcm9tICdndWxwLXV0aWwnXG5pbXBvcnQge2pvaW59IGZyb20gJ3BhdGgnXG5cbmNvbnN0IG5hbWUgPSA6OnJ1bXAudGFza05hbWUsXG4gICAgICB0YXNrID0gOjpndWxwLnRhc2ssXG4gICAgICB7Y29uZmlnc30gPSBydW1wXG5cbnRhc2sobmFtZSgnYnVpbGQ6aW1hZ2VzJyksICgpID0+IHtcbiAgY29uc3Qgc291cmNlID0gam9pbihjb25maWdzLm1haW4ucGF0aHMuc291cmNlLnJvb3QsXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlncy5tYWluLnBhdGhzLnNvdXJjZS5pbWFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlncy5tYWluLmdsb2JzLmJ1aWxkLmltYWdlcyksXG4gICAgICAgIGRlc3RpbmF0aW9uID0gam9pbihydW1wLmNvbmZpZ3MubWFpbi5wYXRocy5kZXN0aW5hdGlvbi5yb290LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVtcC5jb25maWdzLm1haW4ucGF0aHMuZGVzdGluYXRpb24uaW1hZ2VzKSxcbiAgICAgICAge21pbmlmeX0gPSBjb25maWdzLm1haW4uaW1hZ2VzXG4gIGxldCBzdHJlYW0gPSBzcmMoW3NvdXJjZV0uY29uY2F0KGNvbmZpZ3MubWFpbi5nbG9icy5nbG9iYWwpKVxuICAgICAgICAucGlwZSgocnVtcC5jb25maWdzLndhdGNoID8gcGx1bWJlciA6IG5vb3ApKCkpXG4gICAgICAgIC5waXBlKChydW1wLmNvbmZpZ3Mud2F0Y2ggPyBjaGFuZ2VkIDogbm9vcCkoZGVzdGluYXRpb24pKVxuXG4gIC8vIENsb25lIHJldGluYSBpbWFnZXMgaWYgYXZhaWxhYmxlXG4gIGlmKGNvbmZpZ3MubWFpbi5pbWFnZXMucmV0aW5hKSB7XG4gICAgY29uc3QgY2xvbmVTaW5rID0gY2xvbmUuc2luaygpLFxuICAgICAgICAgIHJldGluYUZpbHRlciA9IGZpbHRlcihbJyoqLypAMnguKiddLCB7cmVzdG9yZTogdHJ1ZX0pXG4gICAgc3RyZWFtID0gc3RyZWFtXG4gICAgICAucGlwZShyZXRpbmFGaWx0ZXIpXG4gICAgICAucGlwZShjbG9uZVNpbmspXG4gICAgICAucGlwZShnbSgoZ21maWxlLCBkb25lKSA9PiBkb25lKG51bGwsIGdtZmlsZS5yZXNpemUoJzUwJScsICc1MCUnKSkpKVxuICAgICAgLnBpcGUocmVuYW1lKHBhdGggPT4gcGF0aC5iYXNlbmFtZSA9IHBhdGguYmFzZW5hbWUucmVwbGFjZSgvQDJ4JC8sICcnKSkpXG4gICAgICAucGlwZShyZXRpbmFGaWx0ZXIucmVzdG9yZSlcbiAgICAgIC5waXBlKGNsb25lU2luay50YXAoKSlcbiAgfVxuXG4gIHJldHVybiBzdHJlYW1cbiAgICAucGlwZSgobWluaWZ5ID8gaW1hZ2VtaW4gOiBub29wKShjb25maWdzLm1haW4uaW1hZ2VzLmltYWdlbWluKSlcbiAgICAucGlwZShkZXN0KGRlc3RpbmF0aW9uKSlcbn0pXG5cbnRhc2tzW25hbWUoJ2J1aWxkJyldLmRlcC5wdXNoKG5hbWUoJ2J1aWxkOmltYWdlcycpKVxuIl19