如何解决“多次调用写回调”

时间:2019-07-23 14:18:20

标签: gulp node-modules

对于突然之前运行良好的项目,我突然收到一个我不明白的错误信息。我没有更改gulpfile.js中的任何内容,所以我不明白是什么导致了错误。谁能启发我?

这是我得到的错误:

Error: write callback called multiple times
    at DestroyableTransform.afterTransform (/Users/hannah/Documents/random projects/salamander/node_modules/readable-stream/lib/_stream_transform.js:84:31)
    at EventEmitter.signals.on.err (/Users/hannah/Documents/random projects/salamander/node_modules/gulp-cache/lib/index.js:451:7)
    at EventEmitter.emit (events.js:198:13)
    at DestroyableTransform.onError (/Users/hannah/Documents/random projects/salamander/node_modules/gulp-cache/lib/index.js:288:15)
    at Object.onceWrapper (events.js:286:20)
    at DestroyableTransform.emit (events.js:203:15)
    at Immediate.<anonymous> (/Users/hannah/Documents/random projects/salamander/node_modules/through2-concurrent/through2-concurrent.js:37:14)
    at runCallback (timers.js:706:11)
    at tryOnImmediate (timers.js:676:5)
    at processImmediate (timers.js:658:5)
Emitted 'error' event at:
    at DestroyableTransform.onerror (/Users/hannah/Documents/random projects/salamander/node_modules/vinyl-fs/node_modules/readable-stream/lib/_stream_readable.js:558:12)
    at DestroyableTransform.emit (events.js:198:13)
    at DestroyableTransform.afterTransform (/Users/hannah/Documents/random projects/salamander/node_modules/readable-stream/lib/_stream_transform.js:84:17)
    at EventEmitter.signals.on.err (/Users/hannah/Documents/random projects/salamander/node_modules/gulp-cache/lib/index.js:451:7)
    [... lines matching original stack trace ...]
    at runCallback (timers.js:706:11)

3 个答案:

答案 0 :(得分:1)

这实际上是由于我们正在将imagemin的插件与缓存一起使用。

请运行此 npm rebuild jpegtran-bin ,这将重置它,然后再次运行您的gulp任务注释!。

谢谢。

答案 1 :(得分:0)

万一其他人遇到此问题:

我发现错误来自我的图像缩小任务(gulp-imagemin)。我的图像文件夹中有一些SVG文件,我认为它们的结构不正确或其他原因。我从图像文件夹中删除了它们,然后gulp重新开始运行。

答案 2 :(得分:0)

就我而言,它是使用 imagemin.gifsicle() 和一个大的动画 gif 文件 (57Mb) 进行优化的。使用 PhotoShop 重新保存图像没有帮助。我不确定问题的根源,但删除文件可以解决问题。