更新 - 投稿の下部を参照してください
node.js で jquery をセットアップしようとしていますが、問題が発生しています。SO で説明されているように、jquery をインストールしnpm install jquery
て、javascript をサーバーとして実行するのではなく、コマンド ラインからスクリプトとして実行しています。
いくつかの注意点:
- OS X 10.7.3
- node.js バージョン 0.6.11
- npm バージョン 1.1.1
- node-waf バージョン 1.5.16
したがって、ノード スクリプトを含むディレクトリから I npm install jquery
. その後、ターミナルは 5 秒間オフになり、いくつかのことを行います。特に、モジュールのダウンロードとコンテキスト化のビルドです。最後に、メッセージは'build' finished successfully
.
また、インストールログから次のように表示されます。
- htmlパーサー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
が、それが私にとって予想外であるということ以外に、それをどうすればよいかわかりません。
誰かが提案を提供できるなら、私はそれを大いに感謝します!
更新 - 2012 年 2 月 21 日
さらに調査した結果、ノード パスが見つからないという奇妙な点を修正することができました。実行後:export NODE_PATH="/usr/local/lib/node"
ターミナルでは、ビルド プロセス中にノード パスが検出されます。ただし、jquery モジュールを削除して再度インストール/ビルドした後も、同じ状況のままです。
指定したリリース ディレクトリに contextify.node ファイルが存在しますが、スクリプトでまだロードできません。