node.js - 使用 grunt 插件调整 4000 多个图像的大小

标签 node.js gruntjs image-resizing

我正在尝试使用 node.js、grunt 和 grunt 插件调整 4000 个图像的大小。目前,我正在使用 grunt-imagemagick,但无论我使用什么,我都会遇到类似的错误。

任何人都可以阐明这个错误,或者推荐一个 grunt 插件,该插件可以在 OSX 上开箱即用,用于中等较大的图像目录吗?

这是使用 --stack 选项运行 grunt 任务时控制台的输出

$ grunt --stack imagemagick-resize

Running "imagemagick-resize:people" (imagemagick-resize) task
Beginning ImageMagick resizing process
resizing:../photos_src/organisms/Genus_Acanthostrongylophora^Species_ashmorica.jpg...
    ...
    ... (approx 170 files)
    ...
resizing:../photos_src/organisms/Genus_Chrysomelobia^species_lipsettae.jpg...
resizing:../photos_src/organisms/Genus_Chrysomelobia^species_vafer.jpg...
Warning: spawn EMFILE Use --force to continue.
Error: spawn EMFILE
    at errnoException (child_process.js:847:11)
    at ChildProcess.spawn (child_process.js:794:11)
    at Object.exports.spawn (child_process.js:618:9)
    at exec2 (/Users/user/Documents/projectName/node_modules/grunt-imagemagick/node_modules/node-imagemagick/lib/imagemagick.js:24:25)
    at Object.exports.convert (/Users/user/Documents/projectName/node_modules/grunt-imagemagick/node_modules/node-imagemagick/lib/imagemagick.js:262:10)
    at resizeCall (/Users/user/Documents/projectName/node_modules/grunt-imagemagick/node_modules/node-imagemagick/lib/imagemagick.js:267:22)
    at Object.exports.resize (/Users/user/Documents/projectName/node_modules/grunt-imagemagick/node_modules/node-imagemagick/lib/imagemagick.js:282:10)
    at Object.ResizeCommand.init (/Users/user/Documents/projectName/node_modules/grunt-imagemagick/tasks/imagemagick.js:112:13)
    at Object.<anonymous> (/Users/user/Documents/projectName/node_modules/grunt-imagemagick/tasks/imagemagick.js:222:11)
    at Object.task.registerMultiTask.thisTask (/Users/user/Documents/projectName/node_modules/grunt/lib/grunt/task.js:258:15)

最佳答案

以下可能是您问题的答案:https://github.com/gruntjs/grunt/issues/788

EMFILE means it is trying to open more file descriptors than your system allows. If you're on OSX, the default is 256 and really low. You can temporarily increase it on your session with ulimit -n 10480 (assuming your own OSX).

关于node.js - 使用 grunt 插件调整 4000 多个图像的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19850817/

相关文章:

javascript - 如何告诉 JSHint 在另一个 JS 文件中查找定义

java - 操作图像而不删除其 EXIF 数据

javascript - 如何使用 javascript 在 IE 中删除图像周围的 resizig 处理程序?

gruntjs - 如何使用 Mocha 作为分层测试套件?

iphone - ios 调整拇指的图像大小 - 虽然高插值但模糊

javascript - 如何识别 socket.io 中不同的客户端?

node.js - 如何在 Mongoose 中显示关系?

javascript - 我可以在我的 Electron 应用程序中使用两个 ioHook 事件吗?

javascript - Node.js 页面重定向 AJAX 登录?重定向后使用函数调用?

json - 目标...未写入,因为src文件为空?