2013-10-15 36 views
7

我寫了一個使用溫斯頓記錄的東西一點點模塊。找不到模塊「溫斯頓

我用sudo npm install -g winston(它是在虛擬機上...所以我不是太在意使用sudo等從NPM

登錄:

[email protected] /usr/local/lib/node_modules/winston 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]) 

當我嘗試運行我的模塊在節點獲得:

Error: Cannot find module 'winston' 
    at Function.Module._resolveFilename (module.js:331:15) 
    at Function.Module._load (module.js:273:25) 
    at Module.require (module.js:357:17) 
    at require (module.js:373:17) 
    at Object.<anonymous> (/home/name/Code/neon/neon-js-spike/logger.js:2:9) 
    at Module._compile (module.js:449:26) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:349:32) 
    at Function.Module._load (module.js:305:12) 
    at Module.require (module.js:357:17) 

系統版本:Ubuntu的 節點 -v = v0.11.7預 NPM -v = 1.3.8

附:我在我的家用筆記本電腦(另一個ubuntu vm)上試過這個,然後工作。

+1

你總是可以安裝在本地溫斯頓,在同一目錄下的程序。 –

+0

在本地安裝它工作,但我不明白如何在我的其他虛擬機安裝全球工作。謝謝你的幫助。 – hba

回答

6

你可能需要export NODE_PATH=/usr/local/lib/node_modules,其中/usr/local/lib/node_modules是你的節點模塊被安裝在全球範圍的路徑。

+1

試過它沒有工作。 – hba

+0

同樣在這裏,這適用於其他模塊,但不是在這種情況下 – Mark

4

如果設置類路徑的建議沒有奏效,這可能會是你需要使用NPM鏈接。請參閱:http://blog.nodejs.org/2011/04/06/npm-1-0-link/

溫斯頓跳轉到你的腳本的根文件夾,然後使用命令:

npm link winston 
+0

在Windows上,但一定要以管理員身份運行。 –

0

一般情況下,缺少模塊應通過NODE_PATH爲@fakewaffle說來解決。假設他們當然安裝了。

winston,這並沒有爲我工作。出於某種原因,我不得不更新文件權限:

chmod o+rx -R /pathto/node_modules/winston 

我不知道爲什麼它的權限設置不正確。這個解決方案適用於Ubuntu,據推測它適用於其他Linux,但不適用於Windows。