Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function img() {
return src(`${srcDir}/**/*.{png,jpe?g,gif,svg}`)
.pipe(
cache(
imagemin([
imagemin.gifsicle({ interlaced: true }),
imagemin.jpegtran({ progressive: true }),
imagemin.optipng({ optimizationLevel: 4 }),
imagemin.svgo({
plugins: [
{ removeDimensions: true }, // 如果有 viewbox 则不需要 width 和 height
],
}),
])
)
)
.pipe(
dest(file => {
return file.base; // 压缩到原目录
})
);
}
function gfxStart () {
return src(helpers.trim(`${helpers.source()}/${global.config.gfx.src}/**/*`))
.pipe(imagemin([
imagemin.gifsicle(gfxConfig.gifConfig),
imageminMozjpeg(gfxConfig.jpegConfig),
imageminPngquant(gfxConfig.pngConfig),
imagemin.svgo(gfxConfig.svgConfig)
]))
.pipe(dest(helpers.trim(`${helpers.dist()}/${global.config.gfx.dist}`)))
.pipe(gulpif(global.config.sync.run, global.bs.stream()))
}
function images() {
return gulp.src(config.images.docs_src)
.pipe(
imagemin([
imagemin.gifsicle({ interlaced: true }),
imagemin.jpegtran({ progressive: true }),
imagemin.optipng({ optimizationLevel: 5 }),
imagemin.svgo({
plugins: [
{
removeViewBox: false,
collapseGroups: true
}
]
})
])
)
.pipe(gulp.dest(config.images.docs_dest));
}
export function imagesOptimize() {
return gulp
.src([`${configs.paths.src}/img/**/*`, `!${configs.paths.src}/img/{icons,icons/**}`])
.pipe(newer('.cache/img'))
.pipe(
imagemin([
imagemin.gifsicle({ interlaced: true }),
imageminMozjpeg({ progressive: true }),
imageminPngquant({
quality: [0.6, 0.8],
}),
imagemin.svgo({ plugins: [{ removeDimensions: true }] }),
]),
)
.pipe(gulp.dest('.cache/img'))
.on('error', notifierErrorHandler);
}
})
.pipe(
gulpIf(
isDev,
gulpChanged(
path.join(config.get('distDir'), config.get('site.basePath'))
)
)
)
.pipe(
gulpIf(
!isDev,
gulpImagemin([
imageminPngquant(),
imageminMozjpeg(),
gulpImagemin.gifsicle({
optimizationLevel: 3
}),
gulpImagemin.svgo({
plugins: [
{ removeViewBox: false },
{ removeUnknownsAndDefaults: false },
{ removeUselessDefs: false },
{ cleanupIDs: false }
]
})
])
)
)
.pipe(detectConflict())
.pipe(
gulp.dest(path.join(config.get('distDir'), config.get('site.basePath')))
function images() {
return gulp.src([
'src/assets/images/**/*'
])
.pipe(gulpImagemin([
gulpImagemin.gifsicle({interlaced: true}),
gulpImagemin.mozjpeg({quality: 75, progressive: true}),
gulpImagemin.optipng({optimizationLevel: 5}),
gulpImagemin.svgo({
plugins: [
{removeViewBox: true},
{cleanupIDs: false}
]
})
]))
.pipe(gulp.dest('build/assets/images'));
}
return function() {
return gulp
.src([`${configs.paths.src}/img/**/*`, `!${configs.paths.src}/img/{icons,icons/**}`])
.pipe(plumber({ errorHandler: notify.onError('Hata: <%= error.message %>') }))
.pipe(newer('.tmp/img'))
.pipe(
imagemin([
imagemin.gifsicle({ interlaced: true }),
imagemin.jpegtran({ progressive: true }),
imagemin.optipng({ optimizationLevel: 5 }),
imagemin.svgo({ plugins: [{ removeDimensions: true }] }),
]),
)
.pipe(gulp.dest('.tmp/img'));
};
}
export default (config, gulp) => {
const options = config.options || [
imagemin.gifsicle(),
imagemin.jpegtran({
progressive: true,
}),
imagemin.optipng(),
imagemin.svgo({
plugins: [{
removeViewBox: false,
}],
}),
];
return () => gulp.src(config.src, { dot: true })
.pipe(imagemin(options))
.pipe(gulp.dest(config.dest));
};