2016-11-17 107 views
6

更新時出現NPM錯誤。我最近更新到節點版本7.x.現在npm不工作。
NPM不工作(無法找到模塊'內部/ fs' - nodejs)

我無法找到該錯誤,這可能是由於 -
npm ERR! Cannot find module 'internal/fs'

我得到如下當我運行sudo npm update -g -

npm ERR! Linux 3.13.0-101-generic 
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "update" "-g" 
npm ERR! node v7.1.0 
npm ERR! npm v3.10.8 
npm ERR! code MODULE_NOT_FOUND 

npm ERR! Cannot find module 'internal/fs' 
npm ERR! 
npm ERR! If you need help, you may report this error at: 
npm ERR!  <https://github.com/npm/npm/issues> 

/etc/profile.d/nodejs.sh有以下內容:

NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript 
export NODE_PATH 

回答

4

您應該能夠刪除NPM目錄(通常在/ usr/local/lib目錄/ node_modules/npm),然後重新安裝其中一個官方節點tarball,其中包含npm(您可以從http://nodejs.org/dist/latest-v7.x/中找到最新版本)。

您是否從舊版本的節點升級?

如果是這樣,那可能是您遇到此問題的原因之一。舊版本的graceful-fs(npm的依賴關係)做了在節點v7中不再可用的事情。

+1

重新安裝工作,命令按順序運行 - 'sudo apt-get remove nodejs';'sudo apt-get remove npm'; 'sudo apt-get install nodejs' – vjjj

1

根據這一thread,更新npm 4版本將解決您的問題,請嘗試:

npm i -g [email protected] 

如果這不起作用,請嘗試:

~/.n/n/versions/node/7.0.0/bin/npm i -g [email protected] 
+2

沿着這些路線,我直到我降級使用'n'到6.x.x,運行'npm i -g npm @ 4',然後升級到7.x.x,我才能做到這一點。 – cyberwombat

+1

對於Mac OS X和Homebrew:[1]查找哪個版本的節點已經使用'brew info node'安裝[2]將節點版本切換回7之前的版本,例如:'brew switch node 6.2.0' [3]按照matheusr的建議更新npm - 'npm i -g npm @ 4' [4]切換回最新版本的節點 - 'brew switch node 7.2.1' – k7n4n5t3w4rt

0

刪除node_modules目錄,然後鍵入在你的控制檯「npm install」中。由於我不知道的原因,如果你只更新npm,它不能修復錯誤,但重新安裝npm一切都會好起來的。

+0

我知道這很舊,但是當你說'刪除node_modules目錄「是指你的項目中的文件夾,還是你的系統中的主文件夾?我在OSX 10.10.5上 –

+0

如果您使用的是框架,請從您的項目中刪除,然後從您的框架控制檯重新安裝。 – vrecalde

0

對我來說,如果我面臨錯誤「無法找到模塊內部/ fs」,它將參考命令路徑。最好找到指令路徑:

npm config get prefix 

放入系統環境路徑。 面對錯誤幾天後,它是爲我工作。