Gulp 吞咽imagemin:canned';t加载默认插件xxx

Gulp 吞咽imagemin:canned';t加载默认插件xxx,gulp,gulp-imagemin,Gulp,Gulp Imagemin,环境保护署: 视窗7 节点6.9.5 我使用的插件像。但是我犯了一个错误。从一些视频来看,这是正确的。它是相对于imagemin的版本的 // gulpfile.js var gulp = require('gulp'); var imagemin = require('gulp-imagemin'); var app = { srcPath: 'src/', devPath: 'build/', prdPath: 'dist/', //生产部署 } gulp.task('i

环境保护署:

  • 视窗7
  • 节点6.9.5
我使用的插件像。但是我犯了一个错误。从一些视频来看,这是正确的。它是相对于imagemin的版本的

// gulpfile.js

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

var app = {
  srcPath: 'src/',
  devPath: 'build/',
  prdPath: 'dist/', //生产部署
}
gulp.task('image', function() {
  gulp.src(app.srcPath + 'image/**/*')
  .pipe(gulp.dest(app.devPath + 'image'))
  .pipe(imagemin())
  .pipe(gulp.dest(app.prdPath + 'image'))
})
当我“吞咽图像”时,得到一个错误:

[13:05:56] Using gulpfile ~\Desktop\study\angularapp\gulpfile.js
[13:05:56] Starting 'image'...
[13:05:56] Finished 'image' after 6.96 ms
[13:05:56] gulp-imagemin: Couldn't load default plugin "gifsicle"
[13:05:56] gulp-imagemin: Couldn't load default plugin "jpegtran"
[13:05:56] gulp-imagemin: Couldn't load default plugin "optipng"
[13:05:56] gulp-imagemin: Minified 1 image (saved 0 B - 0%)
我使用了
npm安装imagemin optipng
,但它仍然不起作用。 依赖项如下所示:

"devDependencies": {
"clean-css": "^4.0.5",
"gulp": "^3.9.1",
"gulp-clean": "^0.3.2",
"gulp-concat": "^2.6.1",
"gulp-connect": "^5.0.0",
"gulp-cssmin": "^0.1.7",
"gulp-imagemin": "^3.1.1",
"gulp-less": "^3.3.0",
"gulp-load-plugins": "^1.5.0",
"gulp-uglify": "^2.0.1",
"lodash": "^4.17.4",
"open": "^0.0.5"
}


发生了什么事?

看起来这是一个
节点
6问题。尝试降级您用于此项目的版本。我在6.9.5上遇到gifsicle安装错误,但在6.3.1上没有遇到(没有尝试这两个版本之间的所有版本)

如果您不熟悉在node版本之间切换,建议使用
nvm

通读中的注释(并非所有操作系统都受支持),然后运行

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash

nvm
文档非常详尽,但基本上您将运行
nvm安装您的版本号
,然后
nvm使用您的版本号
。(也值得一看:如何使用和。)

我也有同样的问题,我发现这是因为默认插件没有正确安装

npm install imagemin-jpegtran imagemin-svgo imagemin-gifsicle imagemin-optipng --save
此警告是由这些代码行引发的

如果catch中记录错误,我们可以看到
模块未找到xxx

try {
  return require(`imagemin-${plugin}`).apply(null, args);
} catch (err) {
  console.log(err); // and will throw error: XX Module Not Found
  gutil.log(`gulp-imagemin: Couldn't load default plugin "${plugin}"`);
}
所以我们可以安装丢失的软件包

如果也有一些错误,只需重新安装
imagemin

npm uninstall gulp-imagemin --save
npm install gulp-imagemin --save

欢迎来到SO!您是否可以尝试卸载(
npm uninstall gulp imagemin
)然后重新安装(
npm install-D gulp imagemin
)并查看安装过程中是否存在任何错误?
npm uninstall gulp-imagemin --save
npm install gulp-imagemin --save