npm ERR! Отказ от удаления / код EEXIST

87

Я просто запускаю простой npm installи получаю эту ошибку.

npm ERR! path /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which
npm ERR! code EEXIST
npm ERR! Refusing to delete /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which: is outside /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/which and not a link
npm ERR! File exists: /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which
npm ERR! Move it away, and try again

Я впервые получаю эту ошибку и не знаю, что делать.

Азулай Джейсон
источник
ты тоже пробовал бегать sudo npm install?
antzshrek 03
Да, было то же самое
Азулай Джейсон
1
Я также видел эту проблему, когда размещал проект в папке, которая синхронизировалась с Google File Stream. После того, как я переместил проект на «локальный диск», я смог запуститьnpm install
Тревор

Ответы:

136

Шаги

  1. node_modulesПолностью удалите каталог.
  2. Беги npm installснова.

Это должно помочь.

Анцшрек
источник
Не удалось установить после этого, из-за отсутствия npm-cli.js. В итоге я выполнил решение для переименования, приведенное ниже, вместе с удалением файлов npx
Дэвид Брэдли,
это работает, да, но удаление и установка занимают много времени. это решение не оптимально.
Джейси
1
Теперь я получаю сообщение «Не могу найти модуль C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js»
Дэвид Клемпфнер,
1
@DavidKlempfner, возможно, вы захотите проверить этот другой ответ SO stackoverflow.com/questions/24721903/…
antzshrek
27

Вот как я решил свою после "поиска в Google" ...

  • Перейдите в каталог, в котором был установлен ваш узел
  • переименовывать npm.cmdи npmфайлы
  • Попробуйте запустить установку еще раз
  • В случае успеха ... удалите файлы, которые вы переименовали ранее, npmиnpm.cmd
  • если не, :( :(

Команды cli здесь ... на случай, если вы не хотите переименовывать и прочее

cd %ProgramFiles%\nodejs
ren npm.cmd npm2.cmd
ren npm npm2 
npm2 install npm@latest -g

del npm2
del npm2.cmd

Рольф-Шмидигер

yemiOdetola
источник
4
Этот ответ сработал для меня, но мне также пришлось переименовать npx.cmd и npx в npx2.cmd и npx2. Еще мне пришлось запустить терминал от имени администратора.
raphadko
4
У меня это тоже сработало. Пришлось переименовать npx и npx.cmd, а также npm и npm.cmd. Затем я сделал "npm_ update -g npm", и это сработало. Возможно, это как-то связано с тем, что я не установил nodejs через установщик, а вместо этого извлек его из zip-файла.
Игорь
1
тоже нужно переименовать в npx.cmd
Реза
1
Я удалил файлы npx вместо того, чтобы переименовывать их, которые работали, были созданы новые.
Дэвид Брэдли,
2
Это сработало и для меня. @DavidKlempfner запустите команду, используя npm2 теперь, когда она переименована. После этого у меня возникла проблема с отказом в удалении `... \ npm \ node_modules * \ node_modules \ .bin * Я просто вручную удалял папки .bin каждый раз, когда он жаловался (например, дважды или 3 раза), и это сработало.
Закк Диаз,
7

Попробуйте бежать, npm update -g npmзатем npm iснова бегите .
Если это не сработает, возможно, npm cache cleanпоможет.

Если это не сработает, вам следует подумать об удалении node_modulesпапки в вашем приложении и npm iповторном запуске .
Если вы по- прежнему не везет, я предлагаю удаление package-lock.jsonи в node_modulesпапку перед запуском npm i.

Орнарссон
источник
2
@AzoulayJason Я только что понял. Если вы используете новейшую версию angular CLI, настоятельно рекомендуется использовать yarnвместо npm i. В последней версии есть какая-то ошибка, связанная с npm. Надеюсь, это поможет!
OArnarsson
Начиная с npm @ 5, кеш npm самовосстанавливается от проблем с повреждением, и данные, извлеченные из кеша, гарантированно являются действительными. Если вы хотите убедиться, что все согласовано, используйте вместо этого npm cache verify.
Руан,
4

У меня возникла эта проблема в Linux (npm - это последняя версия 5.6.0), потому что я создал архив tgz, и мне нужно было указать --dereference некоторые символические ссылки (см. man tar) При создании архива tgz (который был скопирован в виртуальную машину для тестирования ). Таким образом, многие символические ссылки node_modules/.binтакже стали обычными файлами. npm говорит в сообщении об ошибке, например.

npm ERR! Отказ от удаления /path/to/node_modules/.bin/jest: находится вне / path / to / node_modules / jest, а не по ссылке

Аттила123
источник
1

У меня была аналогичная ошибка (у меня не @angular),
решенная путем удаления и переустановки узла с помощью установщика.

userA789
источник
1

У меня была такая же проблема, и выяснилось, что проблема заключалась в том, что npmгде-то в фоновом режиме работал случайный экземпляр, в то время как я пытался выполнить установку (если npm run serveбыть точным, это был Webpack ).

Остановка работающего экземпляра решила проблему.

KT.
источник
1

У меня была аналогичная проблема, и похоже, что сработало, так это удалить npm и переустановить его, убедившись, что вы вошли в систему как правильный пользователь для переустановки. Думаю, я ранее устанавливал npm как root, но обновлял пакет как обычный (sudo) пользователь.

Маленький мозг
источник
1

У меня возникла эта проблема при работе с виртуальным зашифрованным диском. Перенос проекта на обычный диск решил проблему.

Кьельд
источник
1
  1. Удалите node.js из панели управления
  2. Удалить ниже папки
C:\Program Files (x86)\Nodejs
C:\Program Files\Nodejs
C:\Users\{User}\AppData\Roaming\npm (or %appdata%\npm)
C:\Users\{User}\AppData\Roaming\npm-cache (or %appdata%\npm-cache)
C:\Users\{User}\.npmrc (and possibly check for that without the . prefix too)
C:\Users\{User}\AppData\Local\Temp\npm-*
  1. Снова установите node.js
Сезайир Дагтекин
источник
1

Это сработало для меня

npm install -g --force gatsby-cli

Благодарность

Динеш
источник
0

У меня та же ошибка, но когда я пытался обновить модуль "cordova" до версии 9. Я исправил ее, принудительно установив с помощью --force. Я использовал команду npm:

npm i -g --force cordova@9 
Альберто
источник
0

Для пользователей Windows (особенно для Windows 10) это должно решить проблему.

Перейдите в эту папку:

C:\Users\[UserName]\AppData\Roaming\

удаления или переименования npmи npm-cacheпапки.

Это устранило мою проблему в Windows.

нимодка
источник