dyld:使用带有ExpressJS的gm模块时未加载库

时间:2014-08-20 04:58:53

标签: express imagemagick runtime-error

我尝试将gm module与ExpressJS一起使用来调整服务器上的图像大小。调整大小没有按预期工作,所以我将我的代码更改为console.log一个值,我可以立即看到它给了我一个错误。我用Homebrew安装了ImageMagick。

CODE:

var gm = require('gm')

...

gm('uploads/4d03e739a7302fc7f68d022339205dee.JPG').filesize(function(err, value){
  if (err) {
    console.log(err)
  } else {
    console.log(value)
  }
})

FIRST ERROR:

   { [Error: spawn ENOENT] code: 'ENOENT', errno: 'ENOENT', syscall: 'spawn' }




所以,我做了一些谷歌搜索,并读到我应该改变

 var gm = require('gm')

var gm = require('gm').subClass({ imageMagick: true })



现在我收到了这个错误,我找不到任何关于它的信息:

 { [Error: Command failed: dyld: Library not loaded: /usr/local/lib/liblzma.5.dylib
  Referenced from: /usr/local/bin/identify
  Reason: image not found
 ] code: null, signal: 'SIGTRAP' }


我尝试卸载ImageMagick,更新Homebrew并重新安装。我还尝试卸载并重新安装freetype并运行brew unlink freetype&&终端中的brew链接freetype。

1 个答案:

答案 0 :(得分:2)

回答我自己的问题......我很难找到答案,所以这可能会对某人有所帮助。

看起来Homebrew的瓶装版ImageMagick存在问题。

卸载ImageMagick并使用--build-from-source标志重新安装对我来说很有用。

brew install imagemagick --build-from-source

来源:https://github.com/Homebrew/homebrew/issues/12099