gulp-imagemin报错 Error:Premature end of JPEG file

303 阅读1分钟
一:Error:Premature end of JPEG file
1.报错环境
linux服务端 gulp watch 进行图片压缩(gulp-imagemin)时报错。 
2.报错如下:

报错内容

3.原因:gulp-imagemin版本问题

在这里插入图片描述

4.解决办法:
  • 在版本<3中,同样的内容如下:
.pipe(imagemin({ 
	interlaced : true,
	progressive : true,
	optimizationLevel : 5,
	svgoPlugins : [{removeViewBox : true }] 
}))
  • 在版本>3中,应改为
.pipe(imagemin([
	imagemin.gifsicle({interlaced: true}),
	imagemin.jpegtran({progressive: true}),
	imagemin.optipng({optimizationLevel: 5}),
	imagemin.svgo({
		plugins: [
			{removeViewBox: true},
			{cleanupIDs: false}
		]
	})
]))
二. Couldn't load default plugin XXX...
  • 建议使用淘宝镜像安装(本人在尝试 用npm安装default plugin 时报错)
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install imagemin-jpegtran imagemin-svgo imagemin-optipng imagemin-gifsicle --save
三.Error: spawn /new/node_modules/jpegtran-bin/vendor/jpegtran ENOENT
  • 解决办法
npm uninstall gulp-imagemin
cnpm install --save-dev gulp-imagemin