web-dev-qa-db-ja.com

NPMが同じエラーを出したままEISDIR:ディレクトリーに対する不正な操作、エラー時の読み取り(ネイティブ)

どのディレクトリにいても、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 [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を複数回アンインストール/再インストールしようとしましたが、C:\ Users\me\AppData\Roamingのnpmフォルダとnpm-cacheフォルダも削除しました。これが原因で何が問題になったのかわかりません。一秒でそれはうまく働いていた、そして今私はこのエラーを取り除くことができない。ログ内の説明は意味がありません。ディレクトリ内でこのエラーが発生するためです。管理者としてコマンドプロンプトを実行しても、このエラーは発生しません。私はこの金曜日の夜私の髪を引っ張ってこの問題を解決しようとしています、どんな助けでも大いに感謝されるでしょう!

68
AnotherMike

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

41
user1460043

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

ここで確かめるべき3つのこと。

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

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

12
PeeJee

私の場合は、.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"
      ],
6
Rob

私はMac OS X(自作でインストールされた)で同じ問題を抱えていました、そして.npmrcはコンフィグ変数を格納する唯一の場所ノードではありません。このコマンドを使用して編集する必要があるglocal npmrc構成ファイルが/ usr/local/etcにあります。

Sudo nano npmrc

ca=行を削除するか、インストールを中断した設定が何であれ、そのファイルを保存して、もう一度npmを実行すると、正常に動作するはずです。

6
rncrtr

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

私は実行することによって自分自身を手早く簡単な方法で手助けすることができます:

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

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

5
datayeah

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

1
Friendly-Robot

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

(package.jsonファイルは、たとえば、1つ下のディレクトリに追加できます。)

1
James Lawruk

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

0
Miniwe

サブフォルダー内のnode_modulesへの壊れたシンボリックリンクがありました

0
Daniel Kukula

あなたのnpmのバージョンとそれに問題があるかどうかを確かめてください。この記事の執筆時点で私は同じ問題を抱えていましたが、私のnpmバージョン(6.5)に問題があることがわかりました。私はnpm version 6.4.1をアンインストールして再インストールしなければなりませんでしたそしてそれからすべては再びうまく働き始めました。

0
smoosh911

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

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

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

0
Pablo DelaCruz

私はこれが特に永遠の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
Marc Alexander

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

0
Lanklaas

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

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'

Sudoなしでインストールしようとしている npm.community を読みました。

npm install create-react-app -g

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

0
Ritesh

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

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

0
AnotherMike

私は同じ問題を抱えていました。問題を引き起こしていた私のディレクトリにリンクされたフォルダがありました。私はリストを無視するためにそのフォルダを追加し、それからそれは期待どおりにうまく働き始めました。

0
deyujjal

.gitフォルダを削除しようとするまで、同じ問題がありました。出来た。この種の問題にはさまざまな原因があると思います。

0

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

0
Rafael Paz