Nodejs GM模块ImageMagick – 奇怪的错误

我有一个非常奇怪的错误。 我正在使用MAC OS X 10.9.5。 当我使用GM( npm install gm )的一些函数像resize或其他东西我得到这个错误。

  events.js:72 throw er; // Unhandled 'error' event ^ Error: spawn ENOENT at errnoException (child_process.js:988:11) at Process.ChildProcess._handle.onexit (child_process.js:779:34) 

我已经find了很多关于它的线索,据他们说,我已经安装了graphicksmagic和imagemagick与酿造系统。

 brew install imagemagick brew install graphicsmagick 

这是工作了一段时间,但没有理由,它开始再次显示上述错误。

我检查了我已经在系统中安装了imagemagick和graphicksmagick,并从terminal上运行。 我检查了如果我在$ PATH和它在那里。

如果我在nodejs中运行它,它会在控制台中显示正确版本的imagemagick,所以我假设pathj在nodejs中是可以的。

 var sys = require('sys') var exec = require('child_process').exec; function puts(error, stdout, stderr) { if(error) sys.puts(error); if(stderr) sys.puts(stderr); sys.puts(stdout); } exec("identify --version", puts); 

这是崩溃的代码:

 gm(request(url), thumbName) .resize('300', '300', '^') .gravity('Center') .crop('300', '300') .toBuffer('JPG',function (err, buffer) { var data = { Bucket: bucket, Key: thumbName, Body: buffer, ACL:'public-read', ContentType: 'image/jpeg' }; s3.putObject(data, function(err, res) { .... }); 

当我在heroku上部署它时,一切正常

如果有人会有这个问题,我解决了它。 我将variablesPATH添加到具有此值bin的节点中的环境variables:node_modules / .bin:/ usr / local / bin:/ usr / bin:/ bin