1

更新 - 投稿の下部を参照してください

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 ファイルが存在しますが、スクリプトでまだロードできません。

4

2 に答える 2

3

したがって、これは32ビットと64ビットの問題のようであり、このポイントのnode.jsv0.6.11に特に関連しています。どうやらContextifyは64ビットライブラリですが、node.js0.6.11のダウンロードは32ビットの実行可能ファイルでした。v0.6.10へのダウングレードはうまくいくようです。

これが将来にとって何を意味するのかはわかりませんが、興味のある人のために私が見つけたリソースは次のとおりです。

于 2012-02-22T04:19:06.037 に答える
1

次の手順に従って、コンテキスト化の問題を修正しました。

「npm の魔法に慣れている人は、Benvie からビルド済みのバイナリを使用するには、https://github.com/Benvie/contextify/zipball/masterで ZIP ファイルをダウンロードし、それを node_modules フォルダーに展開します。フォルダーの名前を「contextify」に変更します。このバイナリはノード 0.6 の Windows でのみ機能するため、node_modules フォルダーをソース管理経由で Wi​​ndows 以外のユーザーと共有する場合は注意してください。(編集: 指摘されたリンクを修正しました)次のコメントでアウト)」

https://github.com/brianmcd/contextify/issues/12から

于 2012-03-14T17:24:50.523 に答える