NPM aynı hatayı vererek takıldı EISDIR: Bir dizinde geçersiz işlem, hatada okuma (yerel)


102

Hangi dizinde olursam olayım ve cmd.exe'de "npm" den sonra ne yazdığım önemli değil, bu hatayla sıkışıp kaldım. İşte npm-debug.log:

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 npm@2.14.12
3 info using node@v4.2.6
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'yi birden çok kez kaldırmayı / yeniden yüklemeyi denedim ve hatta C: \ Users \ me \ AppData \ Roaming'deki npm ve npm-cache klasörlerini bile sildim. Buna neden olan neyin yanlış gittiğinden emin değilim. Bir saniye iyi çalışıyordu ve şimdi bu hatadan kurtulamıyorum. Günlükteki açıklama, bu hatayı herhangi bir dizinde verdiğinden bir anlam ifade etmiyor. Yönetici olarak bir komut istemi çalıştırmanın bu hatayı vermediğini unutmamalıyım. Bu cuma akşamı bunu düzeltmeye çalışırken saçımı çekiyorum, herhangi bir yardım çok takdir edilecektir!


1
İnsanlar npm'yi güncellediğinde bu hatanın yaygın olduğunu görüyorum, bu hatanın npm'yi güncellediğinizde mi başladığını veya hiç güncellediğinizde mi olduğunu merak ediyorum.
Clavin

Bu yeni bir bilgisayar, bu yüzden son birkaç gün içinde node kurmuştum. Yönetici modunda bir güncelleme yaptım ama şansım olmadı
AnotherMike

Yanıtlar:


61

Bazı npm ayarlarını değiştirirken aynı problemle karşılaştım. Bir npm config setkomutla hata yaptım ve bu mevcut olmayan bir dizine atıfta bulunan bir satır ekledi C:\Users\{User}\.npmrc. Bu satırı manuel olarak sildikten sonra .npmrcsorun ortadan kalktı.


1
Ben ne kadar aptalım Bir alt klasördeydim ahahahah teşekkürler.
Sampgun

Ben de cafile'yi gerçek bir dosya yerine bir klasöre yönlendiriyordum ve her npmkomut tamamen çalışmayı durdurdu, cevabınızdan başka hiçbir çözüm işe yaramadı, teşekkürler!
Giorgio Tempesta

196

EISDIR " Hata, Dizindir " anlamına gelir . Bu, NPM'nin bir dosyaya bir şeyler yapmaya çalıştığı, ancak bu bir dizin olduğu anlamına gelir . Sizin durumunuzda, NPM bir dizin olan bir dosyayı (Satır: 4) " okumaya " çalışıyor . İşlem yapılamadığı için hata atılır.

Burada emin olmanız gereken üç şey var.

  1. Dosyanın var olduğundan emin olun. Olmazsa, onu oluşturmanız gerekir. (NPM dosyadaki herhangi bir özel bilgiye bağlıysa, bu bilgiye orada sahip olmanız gerekecektir).
  2. Bunun bir dizin değil, bir dosya olduğundan emin olun.
  3. Doğru izinlere sahip. Dosyayı "sudo chmod 777 FILE_NAME" ile tüm izinlere sahip olacak şekilde değiştirebilirsiniz. (Dikkat: O dosyadaki her birine Okuma, Yazma ve Çalıştırma izinleri veriyorsunuz)

13
Bu, sorunla ilgili bilgilerin yanı sıra bir çözüm içerdiği için kabul edilen cevap imo olmalıdır
schu34

4
Ben ne kadar aptalım Bir alt klasördeydim ahahahah teşekkürler.
Sampgun

4
Bunun için 3 saat geçirdim. Back-button.css adında bir klasörüm vardı. 3 saat asla geri dönmeyeceğim.
Loke

1
Bunu fs.writeFile kullanarak aldım - ancak bir hata programımın DosyaAdı'nı geçmesini engelledi, bu nedenle bir klasöre yazmaya çalışıyordu. Teşekkürler.
Nelles

1
Bu doğru. Kullanırken bu sorunla karşı karşıya nodemailer bir in NW.js email yöneticisi için kod yazarken masaüstü uygulaması. Ek olarak göndermek için bir resim dosyasını okumak yerine dizini okumaya da çalışıyordum. Çok teşekkür ederim.
hygull

13

Bugün aynı sorunu, npm'mi 6.4.1 sürümünden 6.5.0 sürümüne yükselttikten sonra yaşadım. Bunu, node.js'den .pkg yükleyicisini (çoğu kullanıcı için önerilir) indirip daha sonra çalıştırarak düzelttim .


Aynı yöntem bana yardımcı oldu
DNReNTi

makinemde aynı npm sürümü yüklü ama hala sorunla karşılaşıyorum
Gaurav Paliwal

9

Benim durumumda "EISDIR: bir dizinde yasadışı işlem, oku" alıyordum çünkü .angular-cli.json dosyamda "betikler" için tam bir yol sağlamıyordum:

Örneğin ben vardı

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

Aslında olmalıydı

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

7

Mac OS X'te de aynı sorunu yaşadım (homebrew ile yüklenir) ve .npmrc yapılandırma değişkenlerinde depolanan tek yer düğümü değil. / Usr / local / etc içinde bu komutu kullanarak düzenlemeniz gereken bir glocal npmrc yapılandırma dosyası var:

sudo nano npmrc

ca=Satırı kaldırın veya kurulumunuzu bozan yapılandırma ayarı neyse, bu dosyayı kaydedin ve npm'yi tekrar deneyin ve çalıştığını görmelisiniz.


Yardımcı olduğuma sevindim.
rncrtr

4

Son zamanlarda OSX makinemde bu garip hatalar meydana geldi.

Koşarak kendime hızlı ve kirli bir şekilde yardımcı olabilirim:

sudo chmod -R 777 /usr/local/lib/node_modules/

Bir şey tüm genel düğüm modüllerinin erişim haklarını bozmuş görünüyordu.


2

Benim için düzeltme, dizin adından sonra eğik çizgi eklemekti



1

Bu sorunu yudumla yaşadım. Sorun, gulp'un kaynak dosyama bir bağımlılık eklemesiydi ve sanırım npm onu ​​açmaya çalıştı:

{
  "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 dosyanızda garip referanslar olmadığından emin olun.


1

Uygun dizinden npm kurulumunu çalıştırdığınızdan emin olmak için kontrol edin.

(Örneğin, package.json dosyası fazladan bir dizin aşağı olabilir.)


1

Sorununuz React Native packager ile ilişkiliyse. Önbelleği ile sıfırlamayı deneyin react-native start --reset-cache.


1

Benim durumumda , sorduğu dosyadan birinin tam yolunu geçmeyi unuttum . Dosyanın tam yolunu geçtikten sonra çalıştı :)


1

Yüklerken Benim durumumda, ben bu sorunu bakıyordu create-react-appiçinde MAC (Mojave OS)şu komutla:

sudo npm install create-react-app -g

ve bunun gibi hatalar var:

npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/scheduler'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/symbol'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/testing'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/util'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/webSocket'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/symbol'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/testing'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/util'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/webSocket'

Şunları olmadan yüklemeyi deneyen npm.community'yi okudum sudo:

npm install create-react-app -g

ve aslında sorunumu çözdü .. !!


1

Node_modules'in (ve kök package.json dosyanızın) npm'nin "package.json" modülüne referans içermediğinden emin olun. Package.json FOLDER'ı node_modules'den silmek sorunu benim için çözdü.


0

Ortak kod oluştururken benzer bir sorun yaşadım. Bundle.js dosyamı bir dizin olarak okuyordu. Burada belirtildiği gibi. EISDIR, bir dosya değil, bir dizin anlamına gelir. Sorunu düzeltmek için dosyayı sildim ve yeniden oluşturdum (başlangıçta otomatik olarak oluşturuldu). Dosyayı bulamıyorsanız (gizli olduğu için), bulmak ve silmek için terminali kullanmanız yeterlidir.


0

.Git klasörünü silmeyi deneyene kadar aynı sorunu yaşadım. İşe yaradı. Sanırım bu tür bir sorunun farklı nedenleri olabilir.


0

Ben de aynı sorunu yaşadım. Dizinimde soruna neden olan bağlantılı bir klasör vardı. Listeyi yok saymak için bu klasörü ekledim ve beklendiği gibi iyi çalışmaya başladı.


0

Bunun özellikle sonsuza kadar js hakkında soru sormadığını biliyorum .. ama google beni buraya yönlendiriyor ... Benim için bu, bir bitiş çizgisi kadar basitti.

Az önce değiştim:

forever start -a -l /dev/null/ /var/www/node/my_file.js

Kime:

forever start -a -l /dev/null /var/www/node/my_file.js

Ve hata kayboldu


0

Npm sürümünüzü ve bununla ilgili bir sorun olup olmadığını kontrol ettiğinizden emin olun. Bu gönderi sırasında aynı sorunu yaşıyordum ve npm sürümümün (6.5) sorun yaşadığını keşfettim. Npm 6.4.1 sürümünü kaldırmam ve yeniden yüklemem gerekti ve sonra her şey yeniden harika çalışmaya başladı.



0

Benim durumumda şu adımlar sorunumu çözdü:

  1. sonlandırma npmsüreci(CTRL + C)
  2. tüm klasörü silmek
  3. yenisini yaratmak
  4. npmtekrar koşmak

0

Benim durumumda, Windows 10'u İspanyolca kullanıyorum ve bu sürüm İngilizce ve İspanyolca dizin adlarını karıştırıyor. Benim sorunum, masaüstü dizininin bazı komutlar ve escritoriodiğerleri için bu adı taşımasıydı. Npm'nin bunu çözemeyeceğine inanıyorum. Çözümüm, C: \ ile ana dizinimden farklı bir dizine geçmekti.


0

Benzer bir sorunla karşılaşmıştım. Şu komutu kullanarak kafile ayarladım:

npm config set cafile PATH_TO_CERTIFICATE

Sertifika dosyası ayarlarını ve ayarını silerek bu sorunu çözebildim strict-ssl = false.


0

Bu sorunu, dizinimi sembolik bağlantıyı desteklemeyen exFAT sürücümden taşıyarak çözdüm.

ExFat sürücüm osx ve bir bootcamp windows bölümü arasında paylaşılıyor, bu yüzden projemi klonlamaya ve npm yüklemeye çalıştığımda başarısız oluyordu ancak exFAT'in bu işlevi desteklemediğini asla açıklamıyor.

Sembolik bağlantı özelliği eklemek için yükleyebileceğiniz sürücüler var, ancak basit bir npm komut dosyası çalıştırmaya kıyasla kurulumunuzun çoğunu manuel olarak yapmanız gerekecek.


0

Mac os için: Doğrudan nodejs web sitesinden kurulursa, npmrc dosyası / usr / local / etc / npmrc konumunda bulunur . Sadece tanımsız olan yapılandırmayı silin ve bu sorun çözülecektir.



0

Benim durumumda, C:\Users\{user}\AppData\local\npmdosyalar gizlendi, bu yüzden sorun dizinini bulup silemedim. Bunu fark etmem günler sürdü!

Bu nedenle, herhangi bir klasörün gizlemesini kaldırmak için iki kez işaretleyin, böylece onları kaçırmazsınız! Nasıl yapılacağını bilmiyorsanız, işte bunu yapabileceğiniz bir bağlantı .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.