在安装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..
你有没有在你的系统上安装graphicsmagic? 'gm'模块只是命令行二进制文件的一个包装,所以看起来像命令行二进制文件不再安装。 – mscdex 2014-10-03 14:49:23
@mscdex我不确定。我如何检查和/或安装? – Squirrl 2014-10-03 14:54:41
命令行二进制文件仅称为'gm',因此请尝试在终端窗口中键入并查看返回的内容。 – mscdex 2014-10-03 15:04:05