| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- const imagemin = require("imagemin");
- const imageminSvgo = require("imagemin-svgo");
- const imageminJpegtran = require("imagemin-jpegtran");
- const imageminPngquant = require("imagemin-pngquant");
- const mkdirp = require("mkdirp");
- module.exports = function(config, item) {
- return new Promise(function(resolve, reject) {
- const destination = `${config.outputDir}/${item.outputDir}`;
- mkdirp(destination, err => {
- if (err) {
- reject({
- message: `could not create directory: ${destination}`,
- ...err
- });
- }
- imagemin([item.path], {
- destination,
- plugins: [
- imageminSvgo({
- plugins: [{ removeViewBox: false }]
- }),
- imageminJpegtran(),
- imageminPngquant({
- quality: [0.6, 0.8]
- })
- ]
- })
- .then(result => {
- const newItem = {
- ...item,
- path: item.outputPath
- };
- resolve(newItem);
- })
- .catch(e => {
- reject(e);
- });
- });
- });
- };
|