Невозможно установить jquery с node.js - Невозможно загрузить Contextify - PullRequest
1 голос
/ 21 февраля 2012

Обновление - см. Внизу поста

Я пытаюсь настроить jquery в node.js и у меня возникли некоторые проблемы. Как описано в SO 1005 *, я устанавливаю jquery с npm install jquery и выполняю свой javascript в виде сценария из командной строки, а не запускаю его как сервер.

Несколько замечаний:

  • OS X 10.7.3
  • node.js версия 0.6.11
  • npm версия 1.1.1
  • node-waf версия 1.5.16

Итак, из каталога, в котором содержится скрипт моего узла, я npm install jquery. Затем терминал отключается на 5 секунд и делает несколько вещей, в частности, загружает модули и собирает их. В конце сообщение: 'build' finished successfully.

Также из журнала установки вижу:

  • htmlparser 1.7.4
  • jsdom 0.2.10

Я пытаюсь запустить свой скрипт на этом этапе: ./script.js, но это вывод:

Internal Contextify ERROR: Make sure Contextify is build with your current Node version. 
To rebuild, go to the Contextify root folder and run 'node-waf distclean && node-waf configure build'.

Итак, я делаю следующее:

$ cd node_modules/jquery/node_modules/jsdom/node_modules/contextify/
$ node-waf distclean && node-waf configure build

'distclean' finished successfully (0.002s)
Setting srcdir to:     /proj/node_modules/jquery/node_modules/jsdom/node_modules/contextify 
Setting blddir to:     /proj/node_modules/jquery/node_modules/jsdom/node_modules/contextify/build 
Checking for program g++ or c++          : /usr/bin/g++ 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for g++                         : ok  
Checking for node path                   : not found 
Checking for node prefix                 : ok /usr/local 
'configure' finished successfully (0.729s)
Waf: Entering directory `/proj/node_modules/jquery/node_modules/jsdom/node_modules/contextify/build'
[1/2] cxx: src/contextify.cc -> build/Release/src/contextify_1.o
[2/2] cxx_link: build/Release/src/contextify_1.o -> build/Release/contextify.node
Waf: Leaving directory `/proj/node_modules/jquery/node_modules/jsdom/node_modules/contextify/build'
'build' finished successfully (3.335s)

Тем не менее, я все еще получаю Internal Contextify ERROR, когда я запускаю свой скрипт. Ниже приведено полное сообщение об ошибке:

Internal Contextify ERROR: Make sure Contextify is built with your current Node version.
To rebuild, go to the Contextify root folder and run 'node-waf distclean && node-waf configure build'.

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
          ^
Error: Unable to load shared library /proj/node_modules/jquery/node_modules/jsdom/node_modules/contextify/build/Release/contextify.node
    at Object..node (module.js:472:11)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)
    at Module.require (module.js:354:17)
    at require (module.js:370:17)
    at Object.<anonymous>(/proj/node_modules/jquery/node_modules/jsdom/node_modules/contextify/lib/contextify.js:2:22)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)

Мне кажется странным, что not found является выводом Checking for node path при компиляции, но я не знаю, что с этим делать, кроме того, что это неожиданно для меня.

Если кто-нибудь может предложить какие-либо предложения, я был бы очень признателен!

Обновление - 2/21/12

После еще одного исследования я смог исправить странность пути узла, который не был найден. После выполнения: export NODE_PATH="/usr/local/lib/node" в терминале, путь узла находится в процессе сборки. Однако после удаления модуля jquery и повторной установки / сборки я все еще нахожусь в той же ситуации.

Файл contextify.node существует в указанном каталоге выпуска, но все еще не может быть загружен моим сценарием.

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012

Таким образом, это похоже на проблему с 32-битной и 64-битной версиями, и она конкретно связана с node.js v0.6.11 в этом месте.Судя по всему, Contextify является 64-битной библиотекой, но загрузка файла node.js 0.6.11 была 32-битной исполняемой программой.Понижение до v0.6.10, кажется, работает для меня.

Не уверен, что это означает для будущего, но вот ресурсы, которые я нашел для всех, кто интересуется:

1 голос
/ 14 марта 2012

Я решил проблему с заданным контекстом, выполнив следующие инструкции:

"Для тех, кто привык к магии npm, чтобы использовать готовый бинарный файл от Benvie, просто скачайте ZIP-файл по адресу https://github.com/Benvie/contextify/zipball/master, распакуйте его в папку node_modules, а затем переименуйте папку в "contextify". Обратите внимание, что этот двоичный файл работает только в окнах с узлом 0.6, поэтому будьте осторожны, если вы делитесь своей папкой node_modules через систему управления версиями с пользователями, не являющимися Windows. (правка: исправлена ​​ссылка, как указано в следующем комментарии) "

из https://github.com/brianmcd/contextify/issues/12

...