2014-10-03 68 views
0

在安装Maverick之前,我的应用运行良好。在安装Maverick后,当我在终端中键入nodemon app.js时,它不再起作用,因此我重新安装了节点,然后 npm uninstall nodemon后跟npm install nodemon重新安装它。这工作得很好,现在nodemon工作。不幸的是,现在我有一个我无法解决的新bug。当我的应用程序上传图片,我得到更新到Maverick后,我的节点模块不再工作

TypeError: Cannot read property 'width' of undefined

 var gm = require('gm').subClass({ imageMagick: true }); 
     gm(target_path).size(function (err, size) {//shrinks and replaces large images 
      if (size.width > 700 || size.height > 700) { 
      gm(target_path).scale(700, 700).autoOrient().write(target_path, function (err) { 
       if (!err) console.log('shrunk! '); 
      }); 
      } 
     }); 

如果我注释掉,然后只加载了图像的页面,然后我得到

Error: spawn ENOENT 
    at errnoException (child_process.js:1001:11) 
    at Process.ChildProcess._handle.onexit (child_process.js:792:34) 
2 Oct 17:30:21 - [nodemon] app crashed - waiting for file changes before starting... 

我已经卸载和resinstalled fs,gm,imagemagick,jquery,以及几乎所有我没有成功的模块。我在usr/local/lib/node_modules 以及我的项目中的node_modules目录中减去以下节点和npm中的以下内容。

$ ls 
    bcrypt-nodejs consolidate express  fs  gm  imagemagick jquery  mongodb  node-fs  nodemon  npm 

仍然得到这样的:

/Users/Squirrel/Documents/Code/Memry/Memry_11-8/routes/content.js:605 
        if (size.width > 700 || size.height > 700) { 
         ^
TypeError: Cannot read property 'width' of undefined 
    at gm.<anonymous> (/Users/Squirrel/Documents/Code/Memry/Memry_11-8/routes/content.js:605:15) 
    at gm.emit (events.js:106:17) 
    at gm.<anonymous> (/Users/Squirrel/Documents/Code/Memry/Memry_11-8/node_modules/gm/lib/getters.js:70:16) 
    at cb (/Users/Squirrel/Documents/Code/Memry/Memry_11-8/node_modules/gm/lib/command.js:265:16) 
    at ChildProcess._spawn.proc.on.onExit (/Users/Squirrel/Documents/Code/Memry/Memry_11-8/node_modules/gm/lib/command.js:247:9) 
    at ChildProcess.emit (events.js:98:17) 
    at maybeClose (child_process.js:756:16) 
    at Socket.<anonymous> (child_process.js:969:11) 
    at Socket.emit (events.js:95:17) 
    at Pipe.close (net.js:465:12) 
3 Oct 11:58:43 - [nodemon] app crashed - waiting for file changes before starting.. 
+1

你有没有在你的系统上安装graphicsmagic? 'gm'模块只是命令行二进制文件的一个包装,所以看起来像命令行二进制文件不再安装。 – mscdex 2014-10-03 14:49:23

+0

@mscdex我不确定。我如何检查和/或安装? – Squirrl 2014-10-03 14:54:41

+0

命令行二进制文件仅称为'gm',因此请尝试在终端窗口中键入并查看返回的内容。 – mscdex 2014-10-03 15:04:05

回答

1

GraphicsMagick工具似乎已经在升级过程中被卸载,所以你需要重新安装它为gm节点模块的工作,因为它只是一个简单的包装围绕命令行二进制gm

要安装GraphicsMagick工具的系统库和命令行实用工具,这里有一些选择:

  • 通过homebrew与安装:port install graphicsmagick

  • brew install graphicsmagick

  • 通过macports与安装Download,编译并手动安装GM。

+0

so'npm uninstall gm' then then'npm install gm'? – Squirrl 2014-10-03 15:06:34

+0

它看起来像我得到'-bash:命令未找到'为每个模块除了nodemon这是唯一一个工作 – Squirrl 2014-10-03 15:08:05

+1

不,你必须再次安装GraphicsMagick软件。无论你是从homebrew,macports还是编译和安装都可以做到这一点。 – mscdex 2014-10-03 15:08:09

相关问题