2016-01-23 38 views
20

無論我在哪個目錄以及在cmd.exe中鍵入「npm」後,都會出現此錯誤。這裏是NPM-的debug.log:NPM卡住給出相同的錯誤EISDIR:目錄上的非法操作,在錯誤時讀取(本地)

0 info it worked if it ends with ok 
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe', 
1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js' ] 
2 info using [email protected] 
3 info using [email protected] 
4 verbose stack Error: EISDIR: illegal operation on a directory, read 
4 verbose stack  at Error (native) 
5 verbose cwd C:\Users\me 
6 error Windows_NT 6.1.7601 
7 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" 
8 error node v4.2.6 
9 error npm v2.14.12 
10 error code EISDIR 
11 error errno -4068 
12 error syscall read 
13 error eisdir EISDIR: illegal operation on a directory, read 
13 error eisdir This is most likely not a problem with npm itself 
13 error eisdir and is related to npm not being able to find a package.json in 
13 error eisdir a package you are trying to install. 
14 verbose exit [ -4068, true ] 

我曾嘗試和卸載/多次重新安裝的NodeJS,我甚至刪除NPM和NPM-緩存文件夾C:\用戶\我\應用程序數據\漫遊。我不確定發生了什麼問題。一秒鐘它工作正常,現在我無法擺脫這個錯誤。日誌中的解釋沒有意義,因爲它在任何目錄中都會出現此錯誤。我應該注意到,以管理員身份運行命令提示符不會發生此錯誤。我在這個星期五晚上拉我的頭髮試圖讓這個固定,任何幫助將不勝感激!

+0

我發現這個錯誤很常見,當人們更新npm時,我想知道這個錯誤是否在更新npm時開始,或者如果你甚至更新過? – Clavin

+0

這是一臺新電腦,所以我在過去幾天安裝了節點。我只是在管理員模式下進行了更新,但不是運氣 – AnotherMike

回答

17

我遇到了同樣的問題,而我是改變一些NPM設置。我犯了一個npm config set命令,並在C:\Users\{User}\.npmrc中添加了一條指向不存在的目錄的行。在我從.npmrc手動刪除該行後,問題消失了。

+1

拯救生命!謝謝! :-) –

3

我在Mac OS X(使用自制軟件安裝)上遇到了同樣的問題,並且.npmrc不是存儲配置變量的唯一節點。有在/ usr/local/etc中一個全球本地化npmrc配置文件,你必須使用此命令編輯:

sudo nano npmrc 

刪除CA =行,或任何配置設置是打破了你的安裝,保存該文件,並再次嘗試npm,你應該看到它的工作。

+0

我現在愛你。 – john

+0

很高興我能幫到你。 – rncrtr

0

我有這個問題與吞噬。問題是,大口添加了一個依賴於我的源文件,我覺得故宮試圖打開它:

{ 
    "name": "name", 
    "version": "2.0.0", 
    "description": "", 
    "main": "gulpfile.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "author": "", 
    "license": "ISC", 
    "devDependencies": { 
    "appname": "file://gulp", 
    "gulp-concat": "^2.6.1", 
    "gulp-electron": "^0.1.3", 
    "gulp-shell": "^0.5.2", 
    "gulp-uglify": "^2.0.0", 
    "gulp-util": "^3.0.7", 
    "node-7z": "^0.4.0" 
    } 
} 

確保有你不怪引用的package.json文件。

0

檢查以確保您從正確的目錄運行npm install。

(該文件的package.json可能是一個額外的目錄下,例如。)

42

EISDIR代表 「錯誤,將目錄」。這意味着NPM正在嘗試對某個文件進行操作,但它是目錄。在你的情況下,NPM正試圖「讀取」一個文件,這是一個目錄(行:4)。由於操作無法完成,因此會引發錯誤。

三件事,以確保在這裏。

  1. 確保文件存在。如果沒有,你需要創建它。 (如果NPM取決於文件中的任何特定信息,則需要在那裏獲得該信息)。
  2. 確保它實際上是一個文件而不是目錄。
  3. 它具有正確的權限。您可以更改文件以獲得「sudo chmod 777 FILE_NAME」的所有權限。(小心:您正在爲該文件上的每個人授予讀,寫和執行權限)
+2

這應該是被接受的答案,因爲它包含有關問題的信息以及解決方案 – schu34

0

設置樣板代碼時出現類似問題。它正在讀我的bundle.js文件作爲一個目錄。正如這裏所述。 EISDIR是指它的目錄而不是文件。爲了解決這個問題,我刪除了文件並重新創建(它最初是自動創建的)。 如果找不到該文件(因爲它隱藏),只需使用終端來查找並刪除它。

2

在我來說,我得到了「EISDIR:非法操作上的目錄,請閱讀」因爲在我.angular-cli.json文件我沒有提供一個完整路徑「腳本:」

對於例如,我有

"scripts": [ 
     "../node_modules/hammerjs", 
     "../node_modules/moment" 
     ], 

實際上它應該是

"scripts": [ 
     "../node_modules/hammerjs/hammer.min.js", 
     "../node_modules/moment/min/moment.min.js" 
     ], 
0

有同樣的問題,直到我試圖刪除文件夾git的。有效。我想這類問題可能有不同的原因。

0

如果您的問題與React Native打包程序相關聯。嘗試使用react-native start --reset-cache重置高速緩存。

相關問題