NPMがスタックして同じエラーが発生するEISDIR:ディレクトリでの不正な操作、エラー時に読み取り(ネイティブ)


102

自分がどのディレクトリにいても、cmd.exeで「npm」の後に何を入力しても、このエラーが発生します。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を複数回アンインストール/再インストールしようとしましたが、C:\ Users \ me \ AppData \ Roamingのnpmおよびnpm-cacheフォルダーも削除しました。何が原因でこれが発生したのかはわかりません。1秒で問題なく動作しましたが、今ではこのエラーを取り除くことができません。ログの説明は、どのディレクトリでもこのエラーが発生するため、意味がありません。管理者としてコマンドプロンプトを実行しても、このエラーは発生しないことに注意してください。今週の金曜日の夜、髪の毛を抜いてこれを修正しようとしています。


1
私は人々がnpmを更新するときにこのエラーが一般的であることを見つけています、あなたがnpmを更新したときにこのエラーが始まったのか、それともまったく更新したのでしょうか?
Clavin

これは新しいコンピュータなので、ここ数日でnodeをインストールしました。私は管理者モードで更新を行いましたが、運はありませんでした
AnotherMike

回答:


60

いくつかのnpm設定を変更しているときに、同じ問題に遭遇しました。1つのnpm config setコマンドでミスをしたため、存在しないディレクトリを参照する行がに追加されましたC:\Users\{User}\.npmrc。その行をから手動で削除した後.npmrc、問題はなくなりました。


1
私は馬鹿ですか?私はサブフォルダーahahahahに感謝しました。
サンプガン

私も、cafileに実際のファイルではなくフォルダを指定していたため、すべてのnpmコマンドが完全に機能しなくなりました。回答以外に解決策はありませんでした。ありがとう!
ジョルジョテンペスタ

194

EISDIRは「エラー、ディレクトリです」の略です。これは、NPMがファイルに対して何かを実行しようとしているが、それがディレクトリであることを意味します。あなたの場合、NPMはディレクトリであるファイルを「読み取ろう」とします(行:4)。操作を実行できないため、エラーがスローされます。

ここで確認する3つのこと。

  1. ファイルが存在することを確認してください。そうでない場合は、作成する必要があります。(NPMがファイル内の特定の情報に依存している場合は、そこにその情報が必要です)。
  2. 実際にはファイルではなく、ディレクトリであることを確認してください。
  3. 適切な権限があります。「sudo chmod 777 FILE_NAME」を使用して、すべての権限を持つようにファイルを変更できます。(注意:そのファイルのすべてのユーザーに読み取り、書き込み、実行のアクセス許可を与えます)

13
問題に関する情報と解決策が含まれているため、これは受け入れられる回答であるはずです
schu34

4
私は馬鹿ですか?私はサブフォルダーahahahahに感謝しました。
サンプガン

3
これに3時間費やしました。back-button.cssというフォルダーがありました。3時間、二度と戻りません。あなたのおかげでそれは4ではありませんでした
Loke

1
fs.writeFileを使用してこれを取得しましたが、エラーが原因でプログラムがFileNameを渡すことができなかったため、フォルダーに書き込もうとしていました。ありがとう。
Nelles

1
そのとおりです。メールマネージャーのコードを記述しているときにNW.jsデスクトップアプリでnodemailerを使用しているときに、この問題に直面しました。また、添付ファイルとして送信する画像ファイルを読み取る代わりに、ディレクトリを読み取ろうとしました。どうもありがとうございました。
hygull

13

npmをバージョン6.4.1からバージョン6.5.0にアップグレードした後、今日も同じ問題がありました。node.jsから.pkgインストーラー(ほとんどのユーザーに推奨)をダウンロードしてこれを修正し、後で実行しました。


まったく同じ方法が私を助けました
DNReNTi

私のマシンには同じnpmバージョンがインストールされていますが、私はまだ問題に直面しています
Gaurav Paliwal

9

私の場合、.angular-cli.jsonファイルで「scripts:」に完全なパスを指定していなかったため、「EISDIR:ディレクトリでの不正な操作、読み取り」を取得していました。

例えば私が持っていた

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

実際には

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

7

Mac OS X(homebrewと共にインストールされた)でも同じ問題があり、.npmrcがノードに保存された構成変数だけではありません。/ usr / local / etcにglocal npmrc設定ファイルがあり、このコマンドを使用して編集する必要があります。

sudo nano npmrc

このca=行を削除するか、インストールに影響を与えた構成設定を削除し、そのファイルを保存して、npmを再試行すると、動作するはずです。


お役に立てて嬉しいです。
rncrtr 2017

4

これらの奇妙なエラーは私のOSXマシンで最近発生しました。

次のコマンドを実行することで、すばやく簡単な方法で自分自身を助けることができます。

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

何かがすべてのグローバルノードモジュールのアクセス権をめちゃくちゃにしたようです。


2

私にとって修正は、ディレクトリ名の後にスラッシュを追加することでした


1

パスの削除などの完全なアンインストールを実行し、再インストールすることで問題は解決しましたが、非常に奇妙な問題です。

Windowsからnode.jsを完全に削除する方法


そもそもあなたの答えは気に入らなかったが、同じことが私に起こったことを告白しなければならない。で新しいmeteorプロジェクトを作成すると--reactこの問題が発生しましたが、プロジェクトを削除して再作成すると機能しました(OS X)。
Hola Soy Edu Feliz Navidad

1

gulpでこの問題が発生しました。問題はgulpがソースファイルに依存関係を追加したことで、npmがそれを開こうとしたと思います。

{
  "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ファイルに奇妙な参照がないことを確認してください。


1

適切なディレクトリからnpm installを実行していることを確認してください。

(たとえば、package.jsonファイルは、1つ下の追加ディレクトリになる可能性があります。)


1

問題がReact Nativeパッケージャに関連している場合。でキャッシュをリセットしてみてくださいreact-native start --reset-cache


1

私の場合、要求していたファイルの1つの絶対パスを渡すのを忘れていました。ファイルのフルパスを渡した後:)


1

私の場合、次のコマンドでインストールcreate-react-appMAC (Mojave OS)ているときにこの問題に直面していました:

sudo npm install create-react-app -g

このようなエラーが発生しました:

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'

私はなしでインストールしようとするnpm.communityを読みましsudo

npm install create-react-app -g

そしてそれは実際に私の問題を解決しました.. !!


1

node_modules(およびルートpackage.json)にnpmの「package.json」モジュールへの参照が含まれていないことを確認してください。node_modulesからpackage.json FOLDERを削除すると、問題が解決しました。


0

ボイラープレートコードの設定中に同様の問題が発生しました。それは私のbundle.jsファイルをディレクトリとして読んでいました。ここで述べたように。EISDIRは、ファイルではなくディレクトリを意味します。問題を修正するために、ファイルを削除して再作成しました(元々は自動的に作成されました)。(隠されているため)ファイルが見つからない場合は、ターミナルを使用してファイルを見つけて削除します。



0

同じ問題がありました。問題の原因となっているリンクされたフォルダが私のディレクトリにありました。そのフォルダを無視リストに追加すると、期待どおりに正常に機能し始めました。


0

私はこれが永遠にjsについて特に尋ねているのではないことを知っていますが、グーグルはここに私を導きます。

私はちょうど変わりました:

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

に:

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

そしてエラーは消えた


0

npmのバージョンと、問題があるかどうかを確認してください。この投稿の時点で同じ問題が発生していましたが、npmバージョン(6.5)に問題があることがわかりました。npmバージョン6.4.1をアンインストールして再インストールする必要があり、その後すべてが再び正常に動作し始めました。



0

私の場合、これらの手順で問題が解決しました:

  1. 終了npmプロセス(CTRL + C)
  2. フォルダ全体を削除する
  3. 新しいものを作成する
  4. npm再び走る

0

私の場合、Windows 10をスペイン語で使用していますが、このバージョンでは英語とスペイン語のディレクトリ名が混在しています。私の問題は、デスクトップディレクトリが一部のコマンドやescritorio他のコマンドに対してこの名前を持っていることでした。npmはこれを解決できないと思います。私の解決策は、ホームディレクトリとは異なるC:\から始まる別のディレクトリに変更することでした。


0

私は同様の問題に直面していました。次のコマンドを使用してcafileを設定します。

npm config set cafile PATH_TO_CERTIFICATE

証明書ファイルの設定を削除し、を設定することで、これを解決できましたstrict-ssl = false


0

シンボリックリンクをサポートしていないexFATドライブからディレクトリを移動して、この問題を修正しました。

私のexFatドライブはosxとブートキャンプのWindowsパーティションで共有されているため、プロジェクトを複製してnpmでインストールしようとすると失敗しましたが、exFATがこの機能をサポートしていないことは説明できません。

そこにインストールしてシンボリックリンクの機能を追加できるドライバーがありますが、単純なnpmスクリプトを実行する場合と比較して、多くの設定を手動で行う必要があります。


0

Mac OSの場合:nodejsウェブサイトから直接インストールした場合、npmrcファイルは/ usr / local / etc / npmrcにあります。未定義の構成を削除するだけで、この問題は修正されます。



0

私の場合、 C:\Users\{user}\AppData\local\npmファイルは非表示だったので、トラブルディレクトリを見つけて削除することができませんでした。これを実現するためにDAYSかかった!

フォルダを再表示して、見逃さないように再確認してください。 方法がわからない場合のリンクは次のとおりです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.