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. Я не уверен, что пошло не так, чтобы вызвать это. Одна секунда работала нормально, и теперь я не могу избавиться от этой ошибки. Объяснение в журнале не имеет смысла, поскольку оно дает эту ошибку в любом каталоге. Я должен отметить, что запуск командной строки в качестве администратора не дает этой ошибки. Я тяну свои волосы в эту пятницу вечером, пытаясь понять это, любая помощь будет очень признательна!
Ответы
Ответ 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
В моем случае эти шаги решили мою проблему:
- завершение процесса
npm
(CTRL + C)
- удаление всей папки
- создание нового
- снова запустить
npm
Ответ 21
какое имя каталога? Можете ли вы помочь мне редактировать файл конфигурации glocal npmrc.
Ответ 22
Убедитесь, что node_modules (и ваш корневой package.json) не содержат ссылки на модуль npm "package.json". Удаление package.json FOLDER из node_modules решило проблему для меня.