npm - EPERM: операция не разрешена в Windows


111

Я побежал

npm config set prefix /usr/local

После запуска этой команды при попытке запустить любые команды npm в ОС Windows я получаю следующее.

Error: EPERM: operation not permitted, mkdir 'C:\Program Files (x86)\Git\local'
at Error (native)

Удалили все файлы из

C:\Users\<your username>\.config\configstore\

Это не работает.

Любое предложение ?


26
Бег npm cache clean --forceрешил проблему для меня.
Nuhman

Выполнение npm cache clean --force два раза сработало для меня.
Вишал Джайн

Ответы:


103

Выполнение этой команды было моей ошибкой.

npm config установить префикс / usr / local

Путь /usr/localне для окон. Эта команда изменила префиксную переменную на'C:\Program Files (x86)\Git\local'

Чтобы получить доступ и внести изменения в этот каталог, мне нужно запустить мой cmd от имени администратора.

Так я и сделал:

  1. Запускаем cmd от имени администратора
  2. Запускаем npm config edit(вы получите редактор блокнота)
  3. Измените prefixпеременную наC:\Users\<User Name>\AppData\Roaming\npm

Потом npm startработает в обычной консоли.


4
это также решило мою проблему (Windows 10), спасибо.
AntonB

В моем случае я просто раскомментировал prefix(было ;prefix...) после npm config editи Profit. Не уверен, что это умная вещь, но это сработало.
ruffin

в моем случае у меня не было прав администратора на ноутбуке, поэтому вот как я это сделал - stackoverflow.com/a/57249779/10603466
Rishabh Jain

Просто перезапуск, как администратор, исправил мою проблему.
Нерушимый

34

Это происходит потому, что Windows не дает пользователю разрешения на создание папки на системном диске. Чтобы решить эту проблему:

Щелкните правой кнопкой мыши

Папка> Свойства > Вкладка Безопасность

Нажмите « Изменить», чтобы изменить разрешения> Выберите пользователя и предоставьте ему полный доступ .


2
Добавьте объяснение с ответом на то, как этот ответ помогает OP в
решении

1
Предоставление пользователю доступа к изменению системных папок - не лучшая идея, особенно если это можно легко исправить, изменив префикс на папку в домашнем каталоге пользователя.
atomic77

1
это не будет работать с ноутбуком компании, где вы не являетесь системным администратором.
schlingel


27

Иногда все, что требуется, - это остановить сервер разработки перед установкой / обновлением пакетов.


1
Была эта проблема в WebStorm. Спасибо! Это решило проблему.
takasoft

1
как странно, но факт ... установка react-dom@16.7.0-alpha.0 для проверки перехватчиков реакции не сработала, пока не попробовал это
Димитар Никовски

В дополнение к этому, если вы подозреваете, что эта проблема связана с запущенным сервером разработки, но не знаете, как ее остановить, просто выйдите из системы / перезапустите свои окна, и это всегда будет исправлено
Нг Сек Лонг

24

У меня недавно была такая же проблема, когда я обновился до новой версии, единственным решением было сделать пониженную версию.

Чтобы удалить:

npm uninstall npm -g

Установите предыдущую версию:

npm install npm@5.3 -g

Попробуйте обновить версию в другой момент.


2
Тоже самое. Похоже, проблема была в обновлении npm
SokIsKedu

Собственно, слежу за этой темой, чтобы знать, когда это будет исправлено.
Леонардо Оливейра

это исправило это для меня!
Джим

Кстати, я обновился с 5.4.1 до 5.4.2, и проблема, похоже, исчезла, поэтому я думаю, что проблема, возможно, была исправлена. Сложно сказать, поскольку тема, о которой говорил Леонардо, была закрытой.
Служба поддержки Mantis

У меня это тоже сработало. Спасибо @LeonardoOliveira за помощь
Vipin

13

В моем случае я столкнулся с этой ошибкой, потому что мой каталог и его файл были открыты в моем редакторе (код VS) во время работы npm install. Я решил проблему, закрыв редактор и запустив npm installкомандную строку.


12

Я использую Windows 10. Я запустил CMD от имени администратора, и это решило проблему.

Найдите CMD, щелкните правой кнопкой мыши и откройте от имени администратора.


@EtienneGautier: Это ... просто неправда. Какое решение вы предлагаете для изменения системных файлов? Если есть какой-либо способ сделать это, кроме «разрешений администратора», то с безопасностью ОС что-то серьезно не так.
Clonkex

Привет @Clonkex, я предполагал, что контекст был NPM (согласно вопросу). Пока мой комментарий не актуален, удаляю. Спасибо за ваш отзыв.
Этьен Готье,

@EtienneGautier Ах, честно.
Clonkex

10

У меня была такая же проблема после обновления npm. Решил, переустановив последнюю версию npm еще раз:

npm i -g npm

но на этот раз с запущенным cmd в режиме администрирования.

Я сделал все это, потому что подозревал, что с обновлением возникла проблема, в основном некоторые отсутствующие файлы.


8

У меня была устаревшая версия npm. Я выполнил серию команд, чтобы решить эту проблему:

npm cache clean --force

Затем:

npm install -g npm@latest --force

Затем (еще раз):

npm cache clean --force

И, наконец, смог запустить это (установив проект Angular) без ошибок, которые я видел относительно EPERM:

ng new myProject

Сработало идеально для меня! Спасибо.
Chandan YS

7

для меня это была проблема изменения существующих папок в node_module, поэтому я уничтожил всю папку и снова запустил npm install. после этого он работает без ошибок


6

У меня была такая же проблема, когда я пытался установить пакет npm AVA. Решением для меня было удалить папку node_modules и принудительно очистить кеш npm:

rm -rf node_modules
npm cache clean --force

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


Да, у меня как-то были папки node_modules в текущем рабочем каталоге. Это исключение выдавалось, когда я пытался запустить команду angular cli 'ng new ..'. Помогло удаление папок node_modules.
Ашокан Шивапрагасам

3

Самый простой способ

Надеюсь, я не опоздал с этой статьей, но недавно даже я тоже столкнулся с этой проблемой. А также у меня не было прав администратора на моем ноутбуке.

Вот самый простой способ исправить ошибку.

  1. Найдите имя файла .npmrc(оно будет внутри C:\Users\<user name>\.npmrc)
  2. Откройте его и измените путь prefix=наprefix=C:\Users\<user name>\AppData\Roaming\npm

надеюсь, это будет полезно ..


1
У меня была эта проблема с использованием WebStorm. Это единственное, что на первой странице Google решило мою проблему. Спасибо, Ришаб!
Леандро

рад, что это помогло вам :)
Jain

3

Если вы получаете эту ошибку в командной строке / терминале IDE, попробуйте удалить node_modules, закройте IDE и npm installснова запустите команду. Время, когда IDE запустилась, но еще не завершила свой анализ дерева node_modules, является сложным моментом, когда установка пакетов может завершиться неудачно, потому что IDE все еще сканирует содержимое node_modules.



1

У меня была такая же проблема, поскольку я использовал локальную сеть своей компании. И я просто побежал, cmd.exe npmи после этого я смог выполнять другие мои команды без каких-либо ошибок.

C:\Users\586656>cmd.exe npm
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

Просто поделитесь этим, так как это может помочь другим людям, которые пытаются сделать это в своей офисной локальной сети. Спасибо.


1

Просто запустите cmd от имени администратора. удалите старую папку node_modules и снова запустите npm install.


1
Установка npm должна работать без запуска CMD от имени администратора. Он не работает с обычным cmd (без администратора) также является проблемой.
Lahar Shah


1

Я обновил свою версию узла до 8.9.4 и снова выполнил необходимую команду установки из командной строки администратора. У меня это сработало!



1

Это случилось со мной, так как папка / файл был заблокирован другим процессом. Использовал инструмент (LockHunter), чтобы прервать этот процесс, и он снова начал работать (возможная причина).



1

Windows 10,

Запуск IDE (в моем случае IntelliJ) в режиме администратора и выполнение npm install решают проблему.

Если IDE нет, запустите CMD в режиме администратора и попробуйте выполнить npm install.


1

Я запускал сервер приложений create-response-app. Просто остановил сервер, и все заработало нормально.


1
Это решило мою проблему! Я думаю, вам следует сначала попробовать это, прежде чем пробовать другие. Поскольку другие ответы требуют больше усилий.
Ирфанди Джип,

1

Эта ошибка вызвана различными проблемами, попробуйте один из них ниже, который подойдет вам!

  • попробуйте запустить npmот имени администратора

  • Запустите cmd от имени администратора npm config edit(вы получите редактор блокнота) Измените Prefixпеременную наC:\Users\<User Name>\AppData\Roaming\npm

  • Ошибки возникли после того, как я отключил свой антивирус (Avast).

  • Иногда это можно исправить с помощью простой очистки кеша, как показано ниже.

     npm cache clear


0

Запуск команд npm в Windows Powershell решил мою проблему.


Мне не нужно редактировать какие-либо локальные или другие файлы конфигурации
Сай Прасад

0

То же самое для меня: мое решение было закрыто студией Android, AVD Manager, Visual Studio и переустановлено. Я выполнил эту команду, чтобы обновить мой expo cli:

npm install -g expo-cli

0

Очевидно, антивирусное программное обеспечение также может вызвать эту ошибку. В моем случае у меня была защита от программ-вымогателей Windows Security, защищающая мои пользовательские папки, которые вызывали эту ошибку.


0

Для меня это была проблема с файлом .npmrc. Который присутствует в C: \ Users \ myname.npmrc Каким-то образом содержимое файла .npmrc изменилось. Я изменил содержание по сравнению с ноутбуком моих коллег. Так оно и было решено.

Для справки, я также добавляю содержимое файла .npmrc

 ;;;;
 ;npm userconfig file
 ;this is a simple ini-formatted file
 ;lines that start with semi-colons are comments.
 ;read `npm help config` for help on the various options
 ;;;;

 //registry.npmjs.org/:_authToken=95632bcf-3056-4538-b57d-38426736e3a0
 scope=true
 @true:registry=https://registry.npmjs.org/

 ;;;;
 ;all options with default values
 ;;;;
 ;access=null

 ;allow-same-version=false

 ;always-auth=false

 ;also=null

 ;audit=true

 ;audit-level=low

 ;auth-type=legacy

 ;before=null

 ;bin-links=true

 ;browser=null

 ;ca=null

 ;cafile=undefined

 ;cache=C:\Users\myname\AppData\Roaming\npm-cache

 ;cache-lock-stale=60000

 ;cache-lock-retries=10

 ;cache-lock-wait=10000

 ;cache-max=null

 ;cache-min=10

 ;cert=null

 ;cidr=null

 ;color=true

 ;depth=null

 ;description=true

 ;dev=false

 ;dry-run=false

 ;editor=notepad.exe

 ;engine-strict=false

 ;force=false

 ;fetch-retries=2

 ;fetch-retry-factor=10

 ;fetch-retry-mintimeout=10000

 ;fetch-retry-maxtimeout=60000

 ;git=git

 ;git-tag-version=true

 ;commit-hooks=true

 ;global=false

 ;globalconfig=C:\Users\myname\AppData\Roaming\npm\etc\npmrc

 ;global-style=false

 ;group=0

 ;ham-it-up=false

 ;heading=npm

 ;if-present=false

 ;ignore-prepublish=false

 ;ignore-scripts=false

 ;init-module=C:\Users\myname\.npm-init.js

 ;init-author-name=

 ;init-author-email=

 ;init-author-url=

 ;init-version=1.0.0

 ;init-license=ISC

 ;json=false

 ;key=null

 ;legacy-bundling=false

 ;link=false

 ;local-address=undefined

 ;loglevel=notice

 ;logs-max=10

 ;long=false

 ;maxsockets=50

 ;message=%s

 ;metrics-registry=null

 ;node-options=null

 ;node-version=10.15.2

 ;offline=false

 ;onload-script=null

 ;only=null

 ;optional=true

 ;otp=null

 ;package-lock=true

 ;package-lock-only=false

 ;parseable=false

 ;prefer-offline=false

 ;prefer-online=false

 ;prefix=C:\Program Files\nodejs

 ;preid=

 ;production=false

 ;progress=true

 ;proxy=null

 ;https-proxy=null

 ;noproxy=null

 ;user-agent=npm/{npm-version} node/{node-version} {platform} {arch}

 ;read-only=false

 ;rebuild-bundle=true

 ;registry=https://registry.npmjs.org/

 ;rollback=true

 ;save=true

 ;save-bundle=false

 ;save-dev=false

 ;save-exact=false

 ;save-optional=false

 ;save-prefix=^

 ;save-prod=false

 ;scope=

 ;script-shell=null

 ;scripts-prepend-node-path=warn-only

 ;searchopts=

 ;searchexclude=null

 ;searchlimit=20

 ;searchstaleness=900

 ;send-metrics=false

 ;shell=C:\windows\system32\cmd.exe

 ;shrinkwrap=true

 ;sign-git-commit=false

 ;sign-git-tag=false

 ;sso-poll-frequency=500

 ;sso-type=oauth

 ;strict-ssl=true

 ;tag=latest

 ;tag-version-prefix=v

 ;timing=false

 ;tmp=C:\Users\myname\AppData\Local\Temp

 ;unicode=false

 ;unsafe-perm=true

 ;update-notifier=true

 ;usage=false

 ;user=0

 ;userconfig=C:\Users\myname\.npmrc

 ;umask=0

 ;version=false

 ;versions=false

 ;viewer=browser

 ;_exit=true

 ;globalignorefile=C:\Users\myname\AppData\Roaming\npm\etc\npmignore

0

Для тех, кто пытается обновить конфигурацию

Если возникают проблемы с обновлением конфигурации npm, попробуйте вместо этого запустить с флагом -g . Это решило проблему с Win 10 для меня, попробовав все остальное.

npm config edit -g

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.