2011-12-05 53 views
2

我想在我的Windows機器上設置doctorjs,以使用vim的tagbar,但我認爲這可能是一個比任何其他事情都更加出色的node.js問題。我正在關注this tutorial。即使在設置了NODE_PATH後,我仍然得到一個錯誤,聲稱它需要設置。可能會出現什麼問題?Node.js嘗試爲vim設置jsctags時出現NODE_PATH錯誤

這裏是一個終端登錄我的win7機器上:

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

在node.js的0.6.x的require.paths已被刪除。如果我記得它已經從0.2.x開始被棄用。所以問題不在於缺少NODE_PATH環境變量,而在於運行的軟件包/應用程序與節點0.6.x不兼容。正常的解決方案是在node.js 0.4.12中運行這個應用程序。不幸的是,Windows沒有支持0.4.x的版本。最好的辦法是重寫應用程序,以便require.paths不再使用。

此外:不要像node.exe C:\Full\Path\Folder那樣啓動應用程序,因爲工作目錄將是C:\。因此,做類似的事情:

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

嘿揚,謝謝你的回覆。當你說重寫應用程序時,你的意思是我打電話的ctags應用程序?我認爲所有的路徑代碼出現在文件的頂部(參見[這段代碼](http://pastebin.com/Bihyd6bV))。但我有點不清楚如何改變這個代碼,所以應用程序仍然可以工作。你能提供一些建議嗎? – Jonah

+0

您將不得不將路徑更改爲相對路徑。所以如果'underscore'在文件夾'lib/underscore'中,你的require應該看起來像'require(「./ lib/underscore」)'。或者,您應該將所有依賴關係移至'node_modules'文件夾。然後你應該刪除'require.paths.unshift'行。 –

+0

手動編輯require()調用被嵌套的require()調用太困難了,所以我試圖將所有依賴關係移動到node_modules。我做了完整的nodejs msi安裝,並嘗試將jsctags lib文件夾放在「C:\ Program Files文件(x86)\ nodejs \ node_modules \」以及「C:\ Program Files文件(x86)\ nodejs \ node_modules \ npm \ node_modules「,但它仍未檢測到包含。我還需要做什麼? – Jonah

相關問題