Невозможно построить проект: TypeError: imagemin.gifsicle не является функцией

1

Я установил плагин gulp-imagemin и установил задачу со следующими настройками:

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'))
);

Во время сборки я получаю это сообщение TypeError: imagemin.gifsicle is not a function. Кто-нибудь знает, почему это происходит? Я пропустил зависимость?

Спасибо

Теги:
gulp

1 ответ

1
Лучший ответ

Чтобы установить вручную, я попытался бы добавить их в основной файл package.json, в зависимости от зависимостей (или devDependencies), а в js файле используйте его как:

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

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

Предыдущий пост:

Похоже, да, некоторые зависимости отсутствуют. Из файла package.json gulp-imagemin мы видим, что эти зависимости вложены в optionalDependencies зависимости:

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

Если эти плагины не могут быть установлены, он не остановит установку gulp-imagemin. Поэтому сначала попробуйте пойти в папку gulp-imagemin где его package.json сидит и запускает npm install.

Если это не исправить вашу проблему, вы можете попробовать установить эти плагины вручную - npm install imagemin-gifsicle.

  • 0
    Хорошо спасибо. Но я должен позвонить им тогда и куда? Я имею в виду, если я установлю их вручную.
  • 0
    если вы nom install в gulp-imagemin package.json и он работает, так что вы можете продолжить, как и сейчас, но если вы устанавливаете в свой основной package.json, то, скорее всего, вы должны следовать их документации - const imageminGifsicle = require('imagemin-gifsicle'); github.com/imagemin/imagemin-gifsicle и т. д.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню