2011-12-18 95 views
2

全球範圍內尋找。如果我有npm install benchmark安裝Benchmark.js本地比一切工作良好:Benchmark.js模塊不能的NodeJS

require("benchmark") > Object 

但是,當我嘗試使用-g標誌npm install benchmark -g全球安裝基準,的NodeJS找不到模塊(先刪除本地安裝的基準測試):

require("benchmark") > Error: Cannot find module 'benchmark' 

我在Windows和Linux下都嘗試過。結果相同。 本地工作,全球不。任何人都可以幫我爲什麼?

該mongodb模塊全球工作。

+0

這是一個全球性問題?適用於所有模塊?另外,你是否安裝了類似NVM或N的東西? (節點版本管理器) – alessioalex 2011-12-18 14:11:36

+0

它只發生在基準測試中。其他軟件包運行良好。我沒有安裝nvm。你試過這個嗎?錯誤是否發生在你身上? – 2011-12-18 14:21:11

回答

7

您可以使用npm link。例如 - 表達 - npm link express

npm install -g express 
cd <your-application-development-path> 
npm link express 

的符號將被創建鏈接快遞

[email protected]:~/Programming/web/foo$ ls -lrt node_modules 
total 12 
drwxr-xr-x 2 xxxx xxxx 4096 2011-12-21 17:07 .bin/ 
lrwxrwxrwx 1 xxxx xxxx 38 2011-12-21 17:07 express -> ../../../node/lib/node_modules/express/ 
+0

+1 - 我不知道'npm link'!太好了! – swatkins 2011-12-21 21:28:39

+0

第一個零!感謝你的回答,但首先:npm鏈接不能在windows上工作,其次,這不是爲什麼基準測試人員不能在全球範圍內工作,其他模塊如何工作。你是否試圖在全球範圍內使用基準測試而不是本地測試?再次感謝! – 2011-12-22 12:17:29

+0

嗨Omnosis,測試'npm link基準測試'並且做了benchmark = require('benchmark');'並且腳本開始正常。儘管這是在Ubuntu Linux上完成的。不是窗戶。 node_modules的'ls -lrt'顯示 'benchmark - > ../../../ node/lib/node_modules/benchmark /' 您有腳本,我可以在Linux上運行和測試嗎? 因爲NTFS/FAT不支持符號鏈接,所以並不意外'npm link'在Windows上不起作用。 – 2011-12-22 13:17:31

0

我認爲還有另一種方式使您安裝全局模塊它的工作。 嘗試設置env變量export NODE_PATH=/usr/local/lib/node_modules

然後您的「要求」應該正常工作。