npm - EPERM: операція заборонена в Windows


105

Я побіг

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\

Це не спрацювало.

Будь-яка пропозиція?


25
Біг npm cache clean --forceвирішив питання для мене.
Нухман

Запуск кеш-пам'яті npm чистий - сила два рази працювала на мене.
VIshal Jain

Відповіді:


101

Виконання цієї команди було моєю помилкою.

npm config set префікс / 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і прибуток. Не впевнений, що це розумна річ, але це спрацювало.
ruffin

в моєму випадку я не мав прав на мене на ноутбуці, тож ось як я це зробив - stackoverflow.com/a/57249779/10603466
Rishabh Джайн

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

31

Це відбувається тому, що Windows не дає користувачеві дозволу на створення папки всередині системного диска. Щоб вирішити це:

Клацніть правою кнопкою миші

Папка> Властивості > Вкладка безпеки

Клацніть на Редагувати, щоб змінити дозволи> Виберіть користувача та надайте повний контроль цьому користувачеві.


2
Додайте пояснення з відповіддю, як ця відповідь допоможе ОП у вирішенні поточного питання
ρяσѕρєя K

1
Надання користувачеві доступу до зміни системних папок не є хорошою ідеєю, особливо коли це можна легко виправити, змінивши префікс у папку в домашній директорії користувача.
atomic77

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


26

Іноді все, що потрібно, - це зупинити сервер розробників перед установкою / оновленням пакетів.


1
Була ця проблема в WebStorm. Дякую! Це вирішило питання.
takasoft

1
як це не дивно, але правда ... встановлення react-dom@16.7.0-alpha.0 для випробування гачків реагування не спрацювало, доки не спробували цього
Димитар Ніковський

Щоб додати до цього, якщо ви підозрюєте, що ця проблема працює у вашому сервісі розробників, але не знаєте, як її зупинити, просто вийдіть із системи / перезавантажте ваші Windows завжди виправлять цю петлю
Ng Sek Long

24

Нещодавно у мене була та сама проблема, коли я перейшов до нової версії, єдиним рішенням було зробити понижений рівень

Щоб видалити:

npm uninstall npm -g

Встановіть попередню версію:

npm install npm@5.3 -g

Спробуйте оновити версію в інший момент.


2
Те ж саме. Схоже, проблемою було оновлення npm
SokIsKedu

Точно я стежу за цією темою, щоб знати, коли вона буде виправлена.
Леонардо Олівейра

це зафіксувало це для мене!
Джим

btw, я оновив з 5.4.1 до 5.4.2, і видається, що проблеми вже немає - тому я думаю, що проблема може бути виправлена. Трохи важко сказати, оскільки тема, про яку говорив Леонардо, була заблокована.
Підтримка Mantis

Це працювало і для мене. Спасибі @LeonardoOliveira за допомогу
Vipin

13

У моєму випадку я зіткнувся з цією помилкою, оскільки мій каталог та його файл були відкриті в моєму редакторі (код VS), поки я працював npm install. Я вирішив проблему, закривши редактор і пробігши npm installкомандний рядок.


10

У мене була та сама проблема після оновлення npm. Вирішили це, встановивши останній npm знову за допомогою:

npm i -g npm

але цього разу із запуском cmd в режимі адміністрування.

Я все це зробив, тому що я підозрював, що виникає проблема з оновленням, в основному деякі файли відсутні.


10

Я використовую Windows 10. Я запустив CMD як адміністратор, і це вирішило проблему.

Знайдіть CMD, клацніть правою кнопкою миші та натисніть кнопку "Відкрити" як адміністратор.


@EtienneGautier Це ... просто зовсім не так. Яке пропоноване рішення щодо зміни системних файлів? Якщо це можливо зробити, окрім "дозволів адміністратора", то в безпеці ОС щось серйозно не так.
Клонкекс

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

@EtienneGautier Ах досить справедливо.
Клонкекс

7

для мене це було проблемою зміни існуючих папок у node_module, тому я запустив всю папку та запустив npm install знову. вона працює без помилок після цього


7

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

npm cache clean --force

Тоді:

npm install -g npm@latest --force

Потім (ще раз):

npm cache clean --force

І нарешті вдалося запустити це (встановлення Angular project) без помилок, які я бачив щодо EPERM:

ng new myProject

6

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

rm -rf node_modules
npm cache clean --force

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


Так, у мене якось були папки node_modules у поточному робочому каталозі. Це виключення було, коли я намагався запускати кутові команди "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 вирішило мою проблему. Спасибі Рішаб!
Леандро

рада, що вам це допомогло:)
Rishabh 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 install повинен працювати без запуску CMD як адміністратора. Це не працює в нормальному cmd (не адміністратор) також є проблемою.
Лахар Шах


1

Я оновив версію свого вузла до 8.9.4 і запустив знову необхідну команду встановлення з командного рядка адміністратора. Це працювало на мене!



1

Сталося зі мною, оскільки папка / файл був заблокований іншим процесом. Використовував інструмент (LockHunter) для припинення цього процесу, і він знову почав працювати (можлива причина).



1

Windows 10,

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

Якщо немає IDE, тоді запустіть CMD в режимі адміністратора і спробуйте виконати встановлення npm


1

У мене працював сервер create-react-app. Просто зупинили сервер і все працювало просто чудово.


1
Це вирішило мою проблему! Я думаю, ви повинні спробувати це спочатку, перш ніж спробувати інші. Оскільки інші відповіді вимагають більше зусиль.
Ірфанді Джип


0

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


Мені не потрібно редагувати жоден з конфігураційних файлів, локальних чи інших
Sai Prasad,

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.