Подтвердить что ты не робот

NPM застревает, давая ту же ошибку EISDIR: Незаконная операция в каталоге, считанная при ошибке (native)

Я застрял в этой ошибке независимо от того, в какой директории я вхожу, и что я набираю после "npm" в cmd.exe. Вот 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 несколько раз, я даже удалил папки npm и npm-cache в C:\Users\me\AppData\Roaming. Я не уверен, что пошло не так, чтобы вызвать это. Одна секунда работала нормально, и теперь я не могу избавиться от этой ошибки. Объяснение в журнале не имеет смысла, поскольку оно дает эту ошибку в любом каталоге. Я должен отметить, что запуск командной строки в качестве администратора не дает этой ошибки. Я тяну свои волосы в эту пятницу вечером, пытаясь понять это, любая помощь будет очень признательна!

4b9b3361

Ответ 1

Я столкнулся с той же проблемой, когда менял некоторые настройки npm. Я сделал ошибку с одной командой npm config set, и это добавило строку, ссылающуюся на несуществующий каталог на C:\Users\{User}\.npmrc. После того, как я удалил эту строку вручную из .npmrc, проблема исчезла.

Ответ 2

EISDIR означает " Ошибка, есть каталог". Это означает, что NPM пытается сделать что-то в файле, но это каталог. В вашем случае NPM пытается "прочитать" файл, который является каталогом (строка: 4). Поскольку операция не может быть выполнена, возникает ошибка.

Три вещи, чтобы убедиться здесь.

  • Убедитесь, что файл существует. Если это не так, вам нужно создать его. (Если NPM зависит от какой-либо конкретной информации в файле, вам нужно будет иметь там такую ​​информацию).
  • Убедитесь, что это файл, а не каталог.
  • Он имеет правильные разрешения. Вы можете изменить файл, чтобы иметь все разрешения с помощью "sudo chmod 777 FILE_NAME". (Осторожно: вы даете разрешения на чтение, запись и выполнение каждому из них в этом файле)

Ответ 3

Была такая же проблема сегодня после того, как я обновил свой npm с версии 6.4.1 до версии 6.5.0. Я исправил это, загрузив установщик .pkg (рекомендуется для большинства пользователей) из node.js, и запустил его позже.

Ответ 4

У меня была такая же проблема в Mac OS X (установлена с homebrew), и .npmrc - не единственное место, где хранятся переменные конфигурации узла. В файле /usr/local/etc есть глобальный файл конфигурации npmrc, который вы должны отредактировать с помощью этой команды:

sudo nano npmrc

Удалите строку ca= или любой другой параметр конфигурации, который нарушил вашу установку, сохраните этот файл и попробуйте снова npm, и вы увидите, что он работает.

Ответ 5

В моем случае я получал "EISDIR: незаконная операция в каталоге, читал", потому что в моем .angular-cli.json файле я не предоставлял полный путь в "scripts:"

Например, у меня был

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

На самом деле это должно было быть

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

Ответ 6

Эти странные ошибки недавно произошли на моей машине с OSX.

Я мог бы помочь себе быстро и грязно, запустив:

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

Что-то, казалось, испортило права доступа всех глобальных узловых модулей.

Ответ 7

Выполнение полной деинсталляции, включая удаление путей и т.д., и повторная установка, решили проблему, но очень странную проблему.

Как полностью удалить node.js из Windows

Ответ 8

Убедитесь, что вы запускаете npm install из соответствующего каталога.

(Например, файл package.json может быть одним дополнительным каталогом вниз.)

Ответ 9

Если ваша проблема связана с упаковщиком React Native. Попробуйте сбросить кэш с помощью react-native start --reset-cache.

Ответ 10

В моем случае я забыл указать полный путь к одному из файлов, которые он запрашивал. После прохождения полного пути файл сработал :)

Ответ 11

У меня была проблема с 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 нет странных ссылок.

Ответ 12

У меня была аналогичная проблема при настройке шаблона. Он читал мой файл bundle.js как каталог. Итак, как указано здесь. EISDIR означает его каталог, а не файл. Чтобы устранить проблему, я удалил файл и только что восстановил (он был создан автоматически). Если вы не можете найти файл (потому что он скрыт), просто используйте терминал, чтобы найти и удалить его.

Ответ 13

Была та же проблема, пока я не попытался удалить папку .git. Это сработало. Я предполагаю, что этот тип проблемы может иметь разные причины.

Ответ 14

Я была такая же проблема. В моем каталоге была связанная папка, которая вызывала проблему. я добавил эту папку, чтобы игнорировать список, а затем она начала работать нормально, как и ожидалось.

Ответ 15

Я знаю, что это конкретно не спрашивает о навсегда JS... но Google привел меня сюда так... Для меня это было так же просто, как окончательный слэш.

Я только что изменился:

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

Для того, чтобы:

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

И ошибка исчезла

Ответ 16

Для меня исправление было добавить слеш после имени каталога

Ответ 17

Обязательно проверьте свою версию npm и выясните, есть ли у нее проблемы. У меня была та же проблема во время этого поста, и я обнаружил, что у моей версии npm (6.5) были проблемы. Мне пришлось удалить и переустановить npm версии 6.4.1, а затем все снова заработало.

Ответ 18

У меня была сломанная символическая ссылка на node_modules в подпапке

Ответ 19

В моем случае я столкнулся с этой проблемой при установке create-react-app в MAC (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

и это фактически решило мою проблему.. !!

Ответ 20

В моем случае эти шаги решили мою проблему:

  1. завершение процесса npm (CTRL + C)
  2. удаление всей папки
  3. создание нового
  4. снова запустить npm

Ответ 21

какое имя каталога? Можете ли вы помочь мне редактировать файл конфигурации glocal npmrc.

Ответ 22

Убедитесь, что node_modules (и ваш корневой package.json) не содержат ссылки на модуль npm "package.json". Удаление package.json FOLDER из node_modules решило проблему для меня.