npm ПОМИЛКА! Відмова від видалення / кодування ІСНУЄ


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

Так, він зробив те саме
Азулей Джейсон

1
Цю проблему я також побачив, коли розміщував проект у папці, яка синхронізувалася з Google File Stream. Після того, як я перемістив проект на "локальний диск", я зміг запуститиnpm install
Тревор,

Відповіді:


135

Кроки

  1. Видаліть node_modulesкаталог повністю.
  2. Біжи npm installзнову.

Це має допомогти.


Це не вдалося встановити після цього, оскільки npm-cli.js відсутній. Я закінчив робити рішення перейменування нижче разом із видаленням файлів npx
Девід Бредлі

це працює, так, але видалення та встановлення займає багато часу. це рішення не є оптимальним.
jasie

1
Тепер я отримую "Не вдається знайти модуль C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js '
Девід Клемпфнер

1
@DavidKlempfner ви можете перевірити це інший SO відповідь stackoverflow.com/questions/24721903 / ...
antzshrek

27

Це було те, як я вирішив своє після "гуглиння" навколо ...

  • Перейдіть до каталогу, у якому був встановлений ваш вузол
  • перейменувати ваш 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

Рольф-шмідігер


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 кожного разу, коли він скаржився (наприклад, двічі або тричі), і це спрацьовувало.
Закк Діаз,

7

Спробуйте запустити, npm update -g npmа потім запустити npm iще раз.
Якщо це не працює, можливо, npm cache cleanдопомагає.

Якщо це також не працює, вам слід подумати про видалення node_modulesпапки у вашому додатку та запуск npm iзнову.
Якщо ви по- , як і раніше не щастить, я пропоную видалення package-lock.jsonі в node_modulesпапку перед запуском npm i.


2
@AzoulayJason Я щойно зрозумів. Якщо ви використовуєте найновішу версію кутового CLI, настійно рекомендуємо використовувати yarnзамість npm i. У останній версії є якась помилка, пов’язана з npm. Сподіваюся, це допоможе!
Оарнарссон,

Починаючи з npm @ 5, кеш npm самовиліковується від проблем з корупцією, а дані, витягнуті з кешу, гарантовано дійсні. Якщо ви хочете переконатися, що все узгоджується, використовуйте замість цього "npm cache verify".
Руан,

4

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

npm ПОМИЛКА! Відмова від видалення /path/to/node_modules/.bin/jest: знаходиться за межами / path / to / node_modules / jest, а не посиланням


1

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


1

У мене була та сама проблема, і виявилося, що проблема була в тому, що збитий екземпляр npmзапускався десь у фоновому режимі одночасно з тим, що я намагався виконати встановлення (це було Webpacknpm run serve точніше ).

Зупинка запущеного екземпляра вирішила проблему.


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


0

У мене та сама помилка, але коли я намагався оновити модуль "cordova" до версії 9. Я виправив це, змусивши встановити --force. Я використовував команду npm:

npm i -g --force cordova@9 

0

Для користувачів Windows (особливо для Windows 10) це повинно вирішити проблему.

Перейдіть до цієї папки:

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

видалити або перейменувати папки npmі npm-cache.

Це вирішило мою проблему в Windows.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.