我收到了一个"未处理的错误'事件"在运行gulp时:
events.js:141
throw er; // Unhandled 'error' event
^
Error: spawn gm ENOENT
at exports._errnoException (util.js:870:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32)
at onErrorNT (internal/child_process.js:344:16)
at nextTickCallbackWith2Args (node.js:437:9)
at process._tickCallback (node.js:351:17)
我发现错误是由我的gulpfile.js中的该函数引起的:
var taskResizeSprite2x = function() {
return gulp.src(config.paths.source.sprite + '/*@2x.png')
.pipe(changed(config.paths.source.sprite + '/*@2x.png'))
.pipe(gm(function(gmfile) {
gmfile.size(function(err, value) {
if(value && (value.width % 2 !== 0 || value.height % 2 !== 0)) {
var src = gmfile.name().source;
modules.livereload.notify('Retina images must have even size!<br>' + src);
throw Error('Retina images must have even size! ' + src);
}
})
return gmfile.resize('50%', '50%');
}))
.pipe(rename(function(filepath) {
filepath.basename = filepath.basename.replace(/@\dx/, '');
}))
.pipe(gulp.dest(config.paths.source.sprite));
};
我应该做什么以及如何调试它为什么会发生?
答案 0 :(得分:0)
您需要一个记录实际错误的函数。
function handleError(err) {
console.log(err.toString());
this.emit('end');
}
然后在gulp函数抛出错误时调用它。
.pipe(something({
Paths: 'somepath'
}))
.on('error', handleError)