2011-12-05 2 views
2

vimのタグバーで作業するためにWindowsマシンにdoctorjsをセットアップしようとしていますが、これはnode.jsの質問以上のものです。私はthis tutorialに従っています。 NODE_PATHを設定しても、設定する必要があるというエラーが表示されます。何がうまくいかないでしょうか?ここでvimのjsctagsをセットアップしようとしたときにnode.jsでNODE_PATHエラーが発生しました

は私のwin7のマシン上の端末のログです:Node.jsの中

C:\Windows\system32>set NODE_PATH=C:\Users\JG\Desktop\new\doctorjs\lib\jsctags 

C:\Windows\system32>node.exe C:\Users\JG\Desktop\new\doctorjs\bin\jsctags.js -h 
'node.exe' is not recognized as an internal or external command, 
operable program or batch file. 

C:\Windows\system32>cd c:\Users\JG\Desktop\new\doctorjs 

c:\Users\JG\Desktop\new\doctorjs>node.exe C:\Users\JG\Desktop\new\doctorjs\bin\j 
sctags.js -h 

node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^
Error: require.paths is removed. Use node_modules folders, or the NODE_PATH envi 
ronment variable instead. 
    at Function.<anonymous> (module.js:376:11) 
    at Object.<anonymous> (C:\Users\JG\Desktop\new\doctorjs\bin\jsctags.js:41:8) 

    at Module._compile (module.js:432:26) 
    at Object..js (module.js:450:10) 
    at Module.load (module.js:351:31) 
    at Function._load (module.js:310:12) 
    at Array.0 (module.js:470:10) 
    at EventEmitter._tickCallback (node.js:192:40) 

c:\Users\JG\Desktop\new\doctorjs> 

答えて

3

require.pathsが削除されている0.6.x。私が思い出したように、0.2.x以降は推奨されていません。したがって、問題はNODE_PATH環境変数がないことですが、実行しているパッケージ/アプリケーションはノード0.6.xと互換性がありません。通常の解決策は、このアプリをnode.js 0.4.12で実行することです。残念ながら、サポートされているバージョンの0.4.x for Windowsはありません。最高の賭けはrequire.pathsがもう使用されないようにアプリケーションを書き換えることです。

さらに、作業ディレクトリがC:\になるため、node.exe C:\Full\Path\Folderのようなアプリを起動しないでください。したがって、次のようなことをしてください:

C:\Full\Path\Folder> C:\node.js\bin\node.exe Folder. 
+0

お返事ありがとうございました。アプリケーションを書き直すと、私が呼んでいるctagsアプリケーションを意味するのでしょうか?私は、すべてのパスコードがファイルの先頭にあると思う([this snippet](http://pastebin.com/Bihyd6bV)参照)。しかし、私はこのコードを変更する方法については少し分かりませんので、アプリケーションはまだ動作します。いくつかのヒントを教えてください。 – Jonah

+0

パスを相対パスに変更する必要があります。したがって、 'underscore 'が' lib/underscore'フォルダにある場合、requireは 'require(" ./lib/ underscore ")'のようになります。あるいは、すべての依存関係を 'node_modules'フォルダに移動する必要があります。それから 'require.paths.unshift'行を削除してください。 –

+0

require()呼び出しを手動で編集することは、ネストされたrequire()呼び出しの難しさを証明しているため、すべての依存関係をnode_moduleに移動しようとしています。私は完全なnodejs msiをインストールし、 "C:¥Program Files(x86)¥nodejs¥node_modules¥npm"と同様に "C:¥Program Files(x86)¥nodejs¥node_modules¥"にjsctags libフォルダを入れてみました。 \ node_modules "が含まれていますが、それでもインクルードが検出されません。他に何が必要ですか? – Jonah

関連する問題