Я установил плагин 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
. Кто-нибудь знает, почему это происходит? Я пропустил зависимость?
Спасибо
Чтобы установить вручную, я попытался бы добавить их в основной файл 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
.
nom install
вgulp-imagemin
package.json и он работает, так что вы можете продолжить, как и сейчас, но если вы устанавливаете в свой основной package.json, то, скорее всего, вы должны следовать их документации -const imageminGifsicle = require('imagemin-gifsicle');
github.com/imagemin/imagemin-gifsicle и т. д.