Проблема с установкой JSDOM на Mac

Используя эту команду: npm install jsdom, при попытке запустить jsdom для использования с сервером node.js я получаю следующую серию ошибок. Может ли кто-нибудь помочь прояснить этот вопрос? Я думаю, что также может быть проблема, потому что он не может установить contextify... заранее спасибо!

npm http GET https://registry.npmjs.org/jsdom
npm http 304 https://registry.npmjs.org/jsdom
npm http GET https://registry.npmjs.org/htmlparser
npm http GET https://registry.npmjs.org/cssom
npm http GET https://registry.npmjs.org/contextify
npm http 304 https://registry.npmjs.org/contextify
npm http 304 https://registry.npmjs.org/cssom
npm http 304 https://registry.npmjs.org/htmlparser
npm WARN package.json [email protected] No README.md file found!
npm http GET https://registry.npmjs.org/bindings
npm http 304 https://registry.npmjs.org/bindings

> [email protected] install /Users/dereklo/node_modules/jsdom/node_modules/contextify
> node-gyp rebuild

gyp ERR! rebuild error Error: not found: make
gyp ERR! rebuild error     at F (/usr/local/lib/node_modules/npm/node_modules/which/which.js:43:28)
gyp ERR! rebuild error     at E (/usr/local/lib/node_modules/npm/node_modules/which/which.js:46:29)
gyp ERR! rebuild error     at /usr/local/lib/node_modules/npm/node_modules/which/which.js:57:16
gyp ERR! rebuild error     at Object.oncomplete (fs.js:297:15)
gyp ERR! not ok 
npm WARN optional dep failed, continuing [email protected]
[email protected] node_modules/jsdom
├── [email protected]
└── [email protected]

person Apollo    schedule 19.07.2012    source источник


Ответы (2)


Вам нужен GCC для компиляции этих модулей node.js.

  1. Перейдите в магазин приложений и бесплатно загрузите последнюю версию Xcode.
  2. Установите Xcode (магазин приложений фактически загружает «установщик» для Xcode)
  3. Запустить Xcode
  4. Перейти к настройкам
  5. Перейти к загрузкам
  6. Нажмите кнопку «Установить» после «Инструменты командной строки».
  7. Перезагрузить

Готово! :)

person onlineracoon    schedule 21.07.2012
comment
Да, я думаю, что это сработало, однако я все еще получаю сообщение об ошибке в своем приложении, которое я пытаюсь реализовать. Я знаю, что это выходит за рамки этого вопроса, и, может быть, я просто задам еще один, но знаете ли вы, что означает эта ошибка? /Users/dereklo/Node/node_modules/jsdom/lib/jsdom.js:171 features = JSON.parse(JSON.stringify(window.document.implementation._fea ^ TypeError: Не удается прочитать свойство «реализация» неопределенного - person Apollo; 21.07.2012
comment
Попробуйте отладить и посмотреть, что содержит window.document, он вообще ничего не содержит (undefined), это потому, что window.document является клиентским javascript? Я точно не знаю, что вы пытаетесь сделать, но следует использовать window.document @ клиентский javascript, а не node.js. - person onlineracoon; 21.07.2012
comment
@Derek Загрузите и установите Python (python.org/getit/mac) после установки. перейдите в терминал и введите python, чтобы увидеть, срабатывает ли он, если он не срабатывает, вам нужно добавить переменные среды, чтобы убедиться, что он работает. Перезагрузитесь, повторите попытку компиляции модуля Node.js, готово :) - person onlineracoon; 21.07.2012
comment
В ответ на ваш первый комментарий ^, я думаю, вы, возможно, поняли мою проблему... Я пытаюсь предварительно отрендерить часть сервера javascript (на node.js), превратить этот javascript в изображение png (я создаю график в javascript), а затем передайте это изображение png на веб-страницу, обслуживаемую node.js. Разве это не разрешено/у вас есть лучший подход к этому? - person Apollo; 22.07.2012
comment
p.s. python установлен, так как я использую Mac - person Apollo; 22.07.2012

После установки инструментов командной строки XCode у меня все еще были проблемы с npm install jsdom. Оказывается, я все еще запускал свой сервер узлов, поэтому установка не удалась. Для всех, кто может столкнуться с этой проблемой, обязательно нажмите Ctrl + C, чтобы остановить сервер, затем выполните npm install jsdom. Работал как шарм! :)

person adamgedney    schedule 29.06.2014