user8608046
user8608046

Reputation:

Cannot build project: TypeError: imagemin.gifsicle is not a function

I have installed gulp-imagemin plugin and setup a task with following settings:

const gulp = require('gulp');
const imagemin = require('gulp-imagemin');

gulp.task('default', () =>
    gulp.src('src/images/*')
        .pipe(imagemin([
    imagemin.gifsicle({interlaced: true}),
    imagemin.jpegtran({progressive: true}),
    imagemin.optipng({optimizationLevel: 5}),
    imagemin.svgo({
        plugins: [
            {removeViewBox: true},
            {cleanupIDs: false}
        ]
    })
]))
        .pipe(gulp.dest('dist/images'))
);

During the build I get this message: TypeError: imagemin.gifsicle is not a function. Does anyone know why is this happening? Am I missing a dependancy?

Thanks

Upvotes: 2

Views: 4740

Answers (1)

Julius Dzidzevičius
Julius Dzidzevičius

Reputation: 11000

To install manually I would try to add those in main package.json, under dependencies (or devDependencies) and in js file use it like:

const imageminGifsicle = require('imagemin-gifsicle');

gulp.task('default', () =>
    gulp.src('src/images/*')
        .pipe(imagemin([
    imageminGifsicle({interlaced: true}),

Previous post:

Looks like yes, some dependencies are missing. From the gulp-imagemin package.json file we can see that these dependencies are nested under optionalDependencies:

"optionalDependencies": {
  "imagemin-gifsicle": "^5.2.0",
  "imagemin-jpegtran": "^5.0.2",
  "imagemin-optipng": "^5.2.1",
  "imagemin-svgo": "^6.0.0"
}

If these plugins fails to install it doesnt stop gulp-imagemin to install. So first try to go to gulp-imagemin folder where its package.json sits and run npm install.

If that doesnt fix your problem, you can try to install those plugins manualy - npm install imagemin-gifsicle.

Upvotes: 2

Related Questions