【发布时间】:2016-12-10 01:41:12
【问题描述】:
在我的 gulpfile 中调用 resize:images 任务时出现如下错误(见底部)...
events.js:160
throw er; // Unhandled 'error' event
^
Error: Error: write EOF
at finish (C:\Users\brendan\Documents\Code\Web\TheOrm\WWW\v3\node_modules\gulp-gm\index.js:40:21)
at gm.<anonymous> (C:\Users\brendan\Documents\Code\Web\TheOrm\WWW\v3\node_modules\async\lib\async.js:485:30)
at emitMany (events.js:127:13)
at gm.emit (events.js:201:7)
at gm.<anonymous> (C:\Users\brendan\Documents\Code\Web\TheOrm\WWW\v3\node_modules\gm\lib\getters.js:70:16)
at Socket.cb (C:\Users\brendan\Documents\Code\Web\TheOrm\WWW\v3\node_modules\gm\lib\command.js:322:16)
at Socket.g (events.js:291:16)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at onwriteError (_stream_writable.js:340:10)
Imagemagick 已安装并且似乎可以从命令行运行。即magick -help 提供合理的输出,您可以保存内置的测试徽标图像。
我尝试了各种其他 gulp 库,包括 gulp-responsive-images,它会给出空管道错误。
我在适用于 Windows 的 Linux 子系统下尝试过这个,它工作正常 - 似乎这是一个 Windows 唯一的问题。
在 fork gulp-image-resize 并运行测试套件后,我收到以下错误...
...
[14:18:20] Starting 'image_resize:interlace_and_resize_imagemagick'...
events.js:160
throw er; // Unhandled 'error' event
^
Error: write EPIPE
at exports._errnoException (util.js:1026:11)
at Socket._writeGeneric (net.js:710:26)
at Socket._write (net.js:729:8)
at doWrite (_stream_writable.js:328:12)
at writeOrBuffer (_stream_writable.js:314:5)
at Socket.Writable.write (_stream_writable.js:241:11)
at Socket.write (net.js:656:40)
at gm._spawn (C:\Users\brendan\Documents\Code\OpenSource\gulp-image-resize\node_modules\gm\lib\command.js:194:18)
at gm._exec (C:\Users\brendan\Documents\Code\OpenSource\gulp-image-resize\node_modules\gm\lib\command.js:167:17)
at gm.proto.(anonymous function) [as size] (C:\Users\brendan\Documents\Code\OpenSource\gulp-image-resize\node_modules\gm\lib\getters.js:68:12)
不幸的是,repo 禁用了错误报告 - 有人知道如何解决这个问题吗?
这是我的 gulpfile.js ...
let gulp = require('gulp');
let imageResize = require('gulp-image-resize');
let path = require('path');
let rename = require('gulp-rename');
let debug = require('gulp-debug');
let INPUT_DIR = './NO_UPLOAD/img_src';
let OUTPUT_DIR = './NO_UPLOAD/img_tmp';
gulp.task('resize:images', function() {
relFns = [
'logo.png',
'image.png',
].map((f) => path.join(INPUT_DIR, f));
return gulp.src(relFns, { base: INPUT_DIR })
.pipe(debug({ title: 'resized' }))
.pipe(imageResize({
width: 100
}))
.pipe(rename((path) => { path.basename += '.sml' }))
.pipe(gulp.dest(OUTPUT_DIR));
});
【问题讨论】:
标签: windows npm gulp imagemagick image-manipulation