Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 更新到Maverick后,我的节点模块不再工作_Node.js_Terminal_Osx Mavericks - Fatal编程技术网

Node.js 更新到Maverick后,我的节点模块不再工作

Node.js 更新到Maverick后,我的节点模块不再工作,node.js,terminal,osx-mavericks,Node.js,Terminal,Osx Mavericks,在安装Maverick之前,我的应用程序运行良好。安装Maverick后,当我在终端中键入nodemon app.js时,它不再工作,所以我重新安装了节点,然后 npm卸载nodemon然后npm安装nodemon重新安装它。这很有效,nodemon现在也可以了。不幸的是,现在我有一个新的错误,我无法解决。在我的应用程序中上载图像时,我得到 TypeError:无法读取未定义的属性“宽度” var gm = require('gm').subClass({ imageMagick

在安装Maverick之前,我的应用程序运行良好。安装Maverick后,当我在终端中键入
nodemon app.js
时,它不再工作,所以我重新安装了节点,然后
npm卸载nodemon
然后
npm安装nodemon
重新安装它。这很有效,nodemon现在也可以了。不幸的是,现在我有一个新的错误,我无法解决。在我的应用程序中上载图像时,我得到

TypeError:无法读取未定义的属性“宽度”

        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...
我卸载并重新安装了fs、gm、imagemagick、jquery以及几乎所有模块,但都没有成功。我在
usr/local/lib/node\u模块中有以下内容
在我的
node\u模块
目录中,在我的项目中减去node和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..
/Users/Squirrel/Documents/code/Memry/Memry_11-8/routes/content.js:605
如果(size.width>700 | | size.height>700){
^
TypeError:无法读取未定义的属性“宽度”
总经理(/Users/Squirrel/Documents/Code/Memry/Memry_11-8/routes/content.js:605:15)
在gm.emit(events.js:106:17)
在gm.(/Users/Squirrel/Documents/Code/Memry/Memry_11-8/node_modules/gm/lib/getters.js:70:16)
在cb(/Users/Squirrel/Documents/Code/Memry/Memry_11-8/node_modules/gm/lib/command.js:265:16)
在ChildProcess.\u spawn.proc.on.onExit(/Users/Squirrel/Documents/Code/Memry/Memry\u 11-8/node\u modules/gm/lib/command.js:247:9)
在ChildProcess.emit(events.js:98:17)
在maybeClose(child_process.js:756:16)
在套接字上。(child_process.js:969:11)
在Socket.emit(events.js:95:17)
at Pipe.close(net.js:465:12)
10月3日11:58:43-[nodemon]应用程序崩溃-正在等待文件更改,然后再启动。。

GraphicsMagick似乎已在升级过程中卸载,因此您需要重新安装它才能使
gm
节点模块正常工作,因为它只是命令行二进制文件
gm
的简单包装

要安装GraphicsMagck系统库和命令行实用程序,以下是一些选项:

  • 通过以下方式安装:
    brew安装graphicsmagick

  • 通过以下方式安装:
    端口安装图形MAGICK

  • ,编译并手动安装GM


您的系统上还安装了graphicsmagic吗?
gm
模块只是命令行二进制文件的包装,因此似乎不再安装命令行二进制文件。@msdex我不确定。我如何检查和/或安装它?命令行二进制文件名为
gm
,请尝试在终端中键入它窗口,看看你得到了什么。
-bash:gm:command-not-found
在项目文件夹中。所以
npm-uninstall-gm
,然后是
npm-install-gm
?看起来我得到了
-bash:command-not-found
对于每个模块,除了nodemon,它是唯一工作的模块。不,你必须安装GraphicsMagick软件ware。无论您是从自制、macports还是编译和安装中执行此操作。@Squirrl我不是说每个模块都有一个同名的系统范围命令,只是碰巧节点模块名
gm
与GraphicsMagick的命令行二进制名
gm
相同。我已经更新了对的答案为您提供一些在系统上安装GraphicsMagick的可能解决方案。