env:
我使用像this npm这样的插件。但是我收到了一个错误。从一些视频来看,这是对的。它与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'))
})
当我" gulp 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 install 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"
}
发生了什么事?
答案 0 :(得分:2)
我遇到了同样的问题而我发现它是因为默认插件安装不正确。
npm install imagemin-jpegtran imagemin-svgo imagemin-gifsicle imagemin-optipng --save
这些警告是由这些代码行#L12
引发的const loadPlugin = (plugin, args) => {
try {
return require(`imagemin-${plugin}`).apply(null, args);
} catch (err) {
gutil.log(`gulp-imagemin: Couldn't load default plugin "${plugin}"`);
}
};
如果catch中的日志错误,我们可以看到Module not found 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
答案 1 :(得分:0)
看起来这是一个node
6问题。尝试降级您为此项目使用的版本。我在6.9.5上获得了gifsicle安装错误,但在6.3.1上却没有(没有尝试过其中的所有版本)。
如果您不熟悉节点版本之间的切换,建议的解决方案是使用nvm
。
仔细阅读https://github.com/creationix/nvm#installation中的注释(并非所有操作系统均受支持),然后运行
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
nvm
文档是彻底的,但基本上您将运行nvm install YOURVERSIONNUMBER
然后nvm use YOURVERSIONNUMBER
。 (另外值得一试:如何使用.nvmrc
和how to automatically load your project's version of node。)