npm: необработанное отклонение. Ошибка: EISDIR: недопустимая операция с каталогом, откройте «/Users/me/.npm/_cacache/content-v2/sha512/b3/da». - PullRequest
2 голосов
/ 02 апреля 2019

На моем Mac я только что обновил свою рабочую версию npm с 5.6 до 6.9 таким образом:

sudo npm i -g npm

Затем я попытался установить Cordova следующим образом:

sudo npm install -g cordova

И получите

Unhandled rejection Error: EISDIR: illegal operation on a directory, 
open '/Users/me/.npm/_cacache/content-v2/sha512/04/89'
npm ERR! cb() never called!

npm ERR! This is an error with npm itself. Please report this error at:
npm ERR!     <https://npm.community>

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/me/.npm/_logs/2019-04-02T11_50_57_678Z-debug.log

Я попытался понизить рейтинг таким образом:

sudo npm install -g npm@6.4.1

но это терпит неудачу с сотнями строк, подобных этой:

npm WARN tar EISDIR: illegal operation on a directory, open '/tmp/npm-30934-a3ac319a/unpack-28da209e/bin/node-gyp-bin'
Unhandled rejection Error: EISDIR: illegal operation on a directory, open '/Users/me/.npm/_cacache/content-v2/sha512/99/72'

Я также попытался убедиться в правильности владения:

sudo chown -R $(whoami) ~/.npm

Существует множество сообщений о различных проблемах EISDIR (ошибка - это каталог) для других каталогов (таких как / usr / lib / modules), но, похоже, решения не работают.

Кроме того, файл npmrc, похоже, не существует. Если я сделаю:

npm config ls -l

globalconfig = "/usr/local/etc/npmrc"
userconfig = "/Users/me/.npmrc"

но ни один файл не существует.

Обратите внимание, у меня нет homebrew, и я не устанавливал его таким образом (я обычно делаю ручную установку).

Я тоже пробовал это:

sudo npm cache clean -f

Это не помогло.

Что еще я могу попробовать? я должен попробовать удалить каталог ~ / .npm?

Ища способ удаления узла, я нашел много старых сообщений с длинными и иногда конфликтующими списками файлов для удаления. Не уверен, будет ли это еще хуже.

Есть предложения?

Ответы [ 3 ]

2 голосов
/ 02 апреля 2019

Я думаю, что нашел решение.Я сделал следующее:

  1. установил узел из установщика pkg Mac с https://nodejs.org/en/ Это пониженное значение npm до 6.4.1, что является версией до появления проблем EISDIR, по-видимому.
  2. chmod -R 777 ~ / .npm / _cacache // да, это не хорошо
  3. chown -R me ~ / .npm / _cacache

После этого я мог установитьCordova использует "sudo npm install -g cordova" без ошибок.

1 голос
/ 08 мая 2019

Изменение владельца файлов и последующее исключение использования sudo - возможный обходной путь для EISDIR при глобальной установке с использованием sudo. Я полагаю, вы установили папку по умолчанию:

sudo chown -R <user> ~/.npm

sudo chown -R <user> /usr/local/lib

sudo chown -R <user> /usr/local/bin

После этой последовательности это сработало для меня.

1 голос
/ 18 апреля 2019

У меня была такая же проблема при обновлении до npm 6.9.0. Вы должны обновить узел до последней версии:

узел переустановки brew

В настоящее время я установил последнюю доступную версию для Mac OS Mojave (узел: v11.14.0 и npm 6.9.0).

После обновления узла я смог снова установить пакеты глобально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...