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.