Я только что обновил npm до 5.4.0.
Теперь, когда я хочу установить пакет npm, я получаю следующую ошибку:

D:\Sources\DownloadCms\Md.Download\Web.Angular>npm install mds.angular.datetimepicker@latest --save
npm ERR! path D:\Sources\DownloadCms\Md.Download\Web.Angular\node_modules\fsevents\node_modules\abbrev\package.json
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall unlink
npm ERR! Error: EPERM: operation not permitted, unlink 'D:\Sources\DownloadCms\Md.Download\Web.Angular\node_modules\fsevents\node_modules\abbrev\package.json'
npm ERR!     at Error (native)
npm ERR!  { Error: EPERM: operation not permitted, unlink 'D:\Sources\DownloadCms\Md.Download\Web.Angular\node_modules\fsevents\node_modules\abbrev\package.jso
n'
npm ERR!     at Error (native)
npm ERR!   stack: 'Error: EPERM: operation not permitted, unlink \'D:\\Sources\\DownloadCms\\Md.Download\\Web.Angular\\node_modules\\fsevents\\node_modules\\ab
brev\\package.json\'\n    at Error (native)',
npm ERR!   errno: -4048,
npm ERR!   code: 'EPERM',
npm ERR!   syscall: 'unlink',
npm ERR!   path: 'D:\\Sources\\DownloadCms\\Md.Download\\Web.Angular\\node_modules\\fsevents\\node_modules\\abbrev\\package.json' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Mohammad\AppData\Roaming\npm-cache\_logs\2017-09-03T03_25_50_432Z-debug.log

Я точно уверен, что запускаю CMD от имени администратора.

Также я проверил D:\Sources\DownloadCms\Md.Download\Web.Angular\node_modules\fsevents\node_modules\abbrev\package.json\, package.json не существует в пути!

< Сильный > Edit: Обновитесь до v5.4.1, все равно получите ту же ошибку, даже не можете обойтись с --no-option :-(

60
Mohammad Dayyan 3 Сен 2017 в 06:30

32 ответа

Лучший ответ

Это проблема npm 5.4.0 https://github.com/npm/npm/issues/18287

Обходные пути

  • понизить до 5,3
  • попробуйте запустить с --no-option, т.е. npm install --no-optional
69
hidden_4003 3 Сен 2017 в 15:06

Моя проблема заключалась в выполнении команды (все исправления аудита npm). Я решил это при закрытии VSCODE и повторно выполнил команду без проблем.

0
Juan Carlos Aponte 16 Авг 2019 в 15:37

Исправлено в NPM 5.6.0

Обновление до NPM 5.6.0 решило проблему для меня.

1
ptilton 19 Дек 2017 в 18:48

Если вы понизили версию до 5.3 и по-прежнему получаете такую же ошибку в Windows, как и я.
После нескольких часов работы с версиями npm я нашел следующее решение:

1. Загрузите последнюю рекомендуемую версию nodejs, сегодня node-v6.11.3-x64
2. Удалите nodejs вместе с ним.
3. Перейдите в папку C:\Users\{YourUsername}\AppData\Roaming и удалите папки npm и npm-cache
4. Запустите установщик nodejs еще раз и установите его
5 Обновите npm до 5.3 с помощью командной строки npm i -g npm@5.3

Теперь вы должны использовать npm без проблем.

13
Mohammad Dayyan 9 Сен 2017 в 02:31

Я попробовал это решение, найденное на Как исправить блог Node.js

Просто используйте

npm cache clean

В окнах, если он отказывается от использования

npm cache clean --force
8
Chris Ihure 16 Окт 2017 в 10:24

Если все вышеперечисленное не работает для вас, вы можете

  • перезагрузите вашу систему
  • запустить командную строку от имени администратора
  • запустите команду npm
2
jed 25 Июн 2019 в 19:44

Та же ошибка приходит ко мне, когда я обновляю версию npm до последней версии 5.4 понижение до версии 5.3.0 полезно. Ошибка поступает из npm 5.4, вы можете проверить ее в выдает в npm 5.4

npm install npm@5.3 -g
1
kfpanda 12 Сен 2017 в 01:39

Я хотел запустить npm install с моего внешнего жесткого диска, так как именно здесь я сохранил свое рабочее пространство кода. ОС Windows 10.

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

  1. удаление nodejs и повторная установка
  2. удаление nodejs, затем понижение / установка более низкой версии nodejs.
  3. npm install -force
  4. удаление папок из C: \ Users {YourUsername} \ AppData \ Roaming ... npm и npm-cache, а затем повторная установка.
  5. очистка кеша npm --force
  6. очистка кеша npm
  7. Установка npm --g или установка npm --global

То, что работало для меня, было этим:

  1. скопируйте папку из C: \ Program Files \ nodejs в D: \ Program Files \ nodejs
  2. Затем перейдите в Панель управления \ Система и безопасность \ Система
  3. Расширенные системные настройки
  4. Переменные среды
  5. Системные переменные
  6. Двойной щелчок Путь
  7. Добавить новый путь
  8. D: \ Program Files \ nodejs
  9. Нажмите ок
  10. перезагрузите компьютер.
  11. попробуйте установить npm из D: Drive
1
ivsuleman 26 Апр 2018 в 17:53

Удаление package-lock.json исправило это для меня.

1
Dean 24 Сен 2019 в 21:46

Попробовав все, включая обновление узла / npm, очистку кеша и возврат кода, ничего не помогло, кроме одной простой вещи: Отключение постоянной защиты Windows 10 во время разработки / сборки. Похоже, последние обновления сделали его очень агрессивным.

0
David D. 10 Ноя 2019 в 13:27

Это было единственное, что сработало для меня:

npm cache clean --force

npm install -g npm@latest --force

rm package-lock.json

npm i -force
0
Cody Gray 29 Июл 2020 в 09:02

У меня такая же проблема, просто выполняя установку npm. Запускайте с отключенным антивирусом (если вы используете Защитник Windows, отключите защиту в реальном времени и защиту на основе облака). Это сработало для меня!

0
Ricky sharma 11 Авг 2020 в 10:25

Я смог это исправить, запустив командную строку / bash от имени администратора и закрыв VSCode! Похоже, VSCode блокировал некоторые файлы. Возможно, что-то еще может заблокировать эти файлы для вас.

81
Mark Whitfeld 9 Окт 2018 в 19:36

В моем случае я столкнулся с похожей проблемой при запуске нескольких экземпляров 'npm install' на виртуальной машине, используемой для сборки (Windows).

Поскольку это была виртуальная машина, используемая только для сборки, не было никакой другой программы, блокирующей файлы. Я пытался отключить различные настройки антивируса, которые не работали. «Очистка npm кэша» и «Проверка кэша npm» работали, но это не было для меня правильным решением, так как я не могу догадаться, когда кто-то запустит задание на сборку из Jenkins для другого выпуска / среды, что приведет к множественному экземпляру «установки npm», а следовательно я не могу добавить его в скрипт сборки и не могу войти в виртуальную машину и каждый раз вручную очищать / удалять папки кэша.

Наконец, после некоторых исследований я запустил «npm install» с отдельным путем кеша для каждого задания, используя следующую команду:

npm install --cache path/to/some/folder

Поскольку все задания, запущенные одновременно, теперь имели отдельный путь кеша, а не общий глобальный путь (Users / AppData / Roaming /), эта проблема была исправлена, поскольку задания больше не пытались заблокировать и получить доступ к одному и тому же файлу, из общего кеша npm.

Обратите внимание, что вы можете установить один пакет с путем кеширования следующим образом:

npm install packageName --cache path/to/some/folder

Я не смог найти этот способ указания пути кеша в документации по npm, но я попробовал, и это сработало. Я использую npm6 и похоже, что он работает с npm5.

[См .: Как указать папку кэша в npm5 на установить команду?

Это решение должно работать и для других сценариев, хотя может подходить или не подходить.

0
Luke P. Issac 16 Ноя 2019 в 21:29

У меня была такая же проблема на Windows.

Источник проблемы прост, это разрешение на доступ к папкам и файлам.

В папке вашего проекта вам нужно

  1. После клонирования проекта измените свойства папки и измените права доступа пользователя (предоставьте полный доступ текущему пользователю).
  2. Удалите опцию только для чтения из папки проекта. (Шаги 1 и 2 занимают много времени, потому что они реплицируются на все дерево ниже).
  3. Внутри папки проекта переустановите узел (npm install reinstall -g)
  4. Отключить антивирус. (необязательный)
  5. Отключить брандмауэр. (необязательный)
  6. Перезагрузите компьютер.
  7. Очистить кэш npm (очистить npm)
  8. Установите зависимости вашего проекта (npm install)

После этого ошибка « Ошибка: EPERM: операция не разрешена, отсоединение » больше не будет отображаться.

Не забудьте активировать брандмауэр и антивирус при необходимости.

8
Thiago Silva 8 Дек 2018 в 16:49

В моем случае проблема заключалась в том, что я не установил машинопись . Хотя я установил Node и Angular. Чтобы проверить, установлен ли у вас машинопись или нет

Run this command: tsc -v

Если нет, то для установки машинописи

Run this command: npm install -g typescript

И, наконец, установить необходимые зависимости

Run this command: npm install

В корневой папке проекта.

---- Надеюсь, это поможет кому-то ----

2
Md khalid hasan 4 Окт 2019 в 15:47

У меня была та же проблема, и все, что мне нужно было сделать, это войти в npm

npm login

Или в качестве альтернативы

npm add user // обратитесь к документации по параметрам

8
frzsombor 29 Апр 2019 в 05:44

Я использую VsCode и решил эту проблему, остановив сервер приложений, и они запустили npm install. Есть файлы, которые были заблокированы сервером приложений.

Не нужно закрывать IDE, просто убедитесь, что нет другого процесса, блокирующего некоторые файлы в ваших проектах.

1
Ermenegildo Cumbe 29 Апр 2020 в 23:55

Я просто полностью выключил, НЕ ОТКЛОНЯЛ свою машину и перезапустил ее. Запустил CMD от имени администратора и использовал команду npm install. Это сработало.

0
PTra 14 Окт 2019 в 10:29

npm cache verify решил мою проблему. Я делал: ng new my-app и я столкнулся с подобной ошибкой

Я имею версия узла: 10.16.0
нпм v 6.9.0

0
adiga 25 Июн 2019 в 08:38

Мой был в результате открытия папки моего проекта 2 разных терминала. Я решил , закрыв все работающие терминалы (код был исключен) и снова выполнив команду установки.

Я надеюсь, что это поможет кому-то.

Примечание: удаление node_modules не помогло.

1
Otis-iDev 13 Июн 2020 в 04:43

Для окон,

  1. Загрузите последнюю рекомендуемую версию nodejs, сегодня node-v6.11.3-x64
  2. Удалите с ним nodejs.
  3. Перейдите в папку C:\Users\{YourUsername}\AppData\Roaming и удалите папки npm и npm-cache
  4. Запустите установщик nodejs еще раз и установите его
  5. По умолчанию npm 3.10.10 должен быть установлен вместе с node-v6.11.3-x64.
  6. У меня это работало с npm 3.10.10, но не работало с 5.3.X. Также это не работает с более высокими версиями узла (выше node-v6.11.3-x64 )
0
arsho 14 Сен 2017 в 13:44

Попробовав несколько способов. Я наконец очистил содержимое package-lock.json, и это сработало.

1
Muayyat Billah 14 Апр 2020 в 01:51

npm login требуется до publish

0
blazehub 19 Ноя 2019 в 00:46

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

1
nAviD 1 Апр 2019 в 04:14

Кажется, есть много решений, которые работали с понижением версии npm. Для меня решение было

npm install -force

Я попытался понизить версию npm, изменив конфигурацию префикса npm в соответствии с каталогом npm и очистив кеш. Ничто из этого не сработало, но, очевидно, они работали на других, так что, возможно, стоит попробовать.

2
JohnsonCore 18 Янв 2018 в 23:22

Очистка кэша и npm обновление до последней версии с принудительной работой для меня

npm cache clean --force

npm install -g npm@latest --force
4
DeC 26 Ноя 2019 в 07:05

Пожалуйста, закройте все IDE, как визуальный код студии. Запустите команду npm install через командную строку node.js. Наслаждайтесь!

6
jagdish desai 26 Июн 2019 в 07:25

Закрытие кода Visual Studio помогло мне решить эту проблему.

0
Ravi Meganathan 4 Сен 2019 в 07:38

У меня были эти журналы в Windows. Я сделал следующее

  • Закрыть код Visual Studio
  • Запустите командную строку как администратор
2
MJ Montes 14 Май 2019 в 13:04

Для меня это работает в bash из пакета git try:

C:\Program Files\Git\bin\bash.exe

Тогда:

npm install mds.angular.datetimepicker@latest
2
Adrian 2 Ноя 2017 в 21:39

Я исправил путем понижения npm с 5.4.0 до версии 5.3

npm i -g npm@5.3

Надеюсь, это поможет вам

10
Mohammad Dayyan 8 Сен 2017 в 03:20