2014-10-03 4 views
0

Перед установкой Maverick мое приложение хорошо работает. После установки Maverick, когда я набрал nodemon app.js в терминале, он больше не работал, поэтому я переустановил узел, а затем npm uninstall nodemon, а затем npm install nodemon, чтобы переустановить его. Это сработало хорошо, и теперь nodemon работает. К сожалению, теперь у меня есть новая ошибка, которую я не могу решить. При загрузке изображений в моем приложении я получаюМой модуль узла больше не работает после обновления до 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... 

Я удалил и смоделированные 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

У вас есть графическая магия, установленная на вашей системе? Модуль 'gm' - это всего лишь обертка вокруг двоичного кода командной строки, поэтому кажется, что двоичный файл командной строки больше не установлен. – mscdex

+0

@mscdex Я не уверен. Как проверить и/или установить его? – Squirrl

+0

Бинарный файл командной строки просто называется 'gm', поэтому попробуйте ввести его в окне терминала и посмотреть, что вы вернете. – mscdex

ответ

1

GraphicsMagick, кажется, были удалены в процессе обновления, так что вам нужно будет переустановить его для модуля gm узла работать, так как это всего лишь простая обертка вокруг двоичной строки командной строки gm.

Чтобы установить GraphicsMagick системной библиотеки и утилиты командной строки, вот несколько вариантов:

  • Установка с помощью homebrew с: brew install graphicsmagick

  • Установка с помощью macports с: port install graphicsmagick

  • Download, скомпилируйте и установите GM вручную.

+0

, поэтому' npm uninstall gm' следует за 'npm install gm'? – Squirrl

+0

Похоже, что я получаю '-bash: command not found' для каждого модуля, кроме nodemon, который является единственным, кто работает – Squirrl

+1

Нет, вам нужно снова установить программное обеспечение GraphicsMagick. Будете ли вы делать что-то вроде homebrew, macports или компилировать и устанавливать. – mscdex

Смежные вопросы