2012-04-05 85 views
1

我試圖安裝expressjs。Express JS安裝

我一直在這裏收到此錯誤:

node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^
Error: No such module 
    at Object.<anonymous> (/usr/share/npm/lib/utils/output.js:8:21) 
    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 Module.require (module.js:357:17) 
    at require (module.js:368:17) 
    at Object.<anonymous> (/usr/share/npm/lib/utils/log.js:21:14) 
    at Module._compile (module.js:432:26) 
    at Object..js (module.js:450:10) 

爲什麼錯誤發生的任何想法。我安裝npm似乎沒有任何問題。

這是我嘗試使用安裝快遞JS的命令:我在expressjs website引導嘗試以及

sudo npm install express -g 

。 對不起,我的壞。 dint安裝nodejs的最新版本

+0

安裝其他設備時是否顯示此錯誤? – drinchev 2012-04-06 14:53:44

+0

不,它沒有來試圖安裝插座io ..不知道其他人 – user1306229 2012-04-09 08:44:07

回答

0

如果您有更新版本的Node.js和更早版本的NPM,就會發生這種情況。這聽起來像你剛剛更新Node.js,所以現在你需要更新NPM。

+0

但一切工作正常。沒有任何問題。 我使用NPM版本1.1.12和節點版本0.6.14。 有什麼,我在這裏失蹤? – user1306229 2012-04-13 20:41:43

0

您很可能以某種方式使用舊的NPM版本。

node --version 
npm --version 

另外,還有一些在Ubuntu兩個包具有類似名稱,nodenodejs

Fedora也遵循類似的包命名方案。因此, nodejs中的二進制必須從原始的 節點重命名爲nodejs。然而,這在技術上並非猶太教:大多數nodejs程序 (以及使用npm安裝的庫)假定節點二進制文件是 節點。如果你想解決這個問題,最簡單的方法就是將符號鏈接 這兩個結合在一起。如果採取此路線,請不要安裝節點 包,該包處理業餘無線電收音機的東西。

sudo ln -s /usr/bin/nodejs /usr/local/bin/node 

另外,在node的情況下,我建議使用n,而不是安裝鏈接。只需安裝npm(它將安裝節點),然後刪除npm,然後告訴apt清理它。要做到這一點,只需運行

sudo apt-get install npm 
sudo npm install -g n 
sudo n latest 
sudo apt-get --purge remove npm 
sudo apt-get autoremove 

還有其他二進制發行版的經理,即使是從一個shell腳本的工作就像nvm,但我個人更喜歡n。想象一下n就像一個apt只是一件事:它安裝到/usr/local/bin的節點二進制文件。