npm - EPERM: operacja niedozwolona w systemie Windows


107

Pobiegłem

npm config set prefix /usr/local

Po uruchomieniu tego polecenia, próbując uruchomić jakiekolwiek polecenia npm w systemie operacyjnym Windows, otrzymuję poniższe.

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

Usunęli wszystkie pliki z

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

To nie działało.

Jakieś sugestie ?


25
Uruchomienie npm cache clean --forcerozwiązało problem za mnie.
Nuhman

Uruchamianie npm cache clean --force dwa razy działało dla mnie.
VIshal Jain

Odpowiedzi:


101

Uruchomienie tego polecenia było moim błędem.

npm config ustaw prefiks / usr / local

Ścieżka /usr/localnie jest przeznaczona dla okien. To polecenie zmieniło zmienną prefiksu w'C:\Program Files (x86)\Git\local'

Aby uzyskać dostęp i dokonać zmian w tym katalogu, muszę uruchomić cmd jako administrator.

Więc zrobiłem:

  1. Uruchom cmd jako administrator
  2. Uruchom npm config edit(otrzymasz edytor notatnika)
  3. Zmień prefixzmienną naC:\Users\<User Name>\AppData\Roaming\npm

npm startDziała wtedy w normalnej konsoli.


4
to rozwiązało również mój problem (Windows 10), dziękuję.
AntonB

W moim przypadku po prostu odkomentowałem prefix(był ;prefix...) po npm config editi Zysk. Nie jestem pewien, czy to mądra rzecz, ale zadziałało.
ruffin

w moim przypadku nie miałem uprawnień administratora na laptopie, więc oto jak to zrobiłem- stackoverflow.com/a/57249779/10603466
Rishabh Jain

Uruchomiłem ponownie, ponieważ administrator rozwiązał mój problem.
Unbreakable

32

Dzieje się tak, ponieważ system Windows nie daje użytkownikowi uprawnień do tworzenia folderu na dysku systemowym. Aby rozwiązać ten problem:

Kliknij prawym przyciskiem

Folder> Właściwości > karta Zabezpieczenia

Kliknij Edytuj, aby zmienić uprawnienia> Wybierz użytkownika i daj mu pełną kontrolę .


2
Dodaj wyjaśnienie wraz z odpowiedzią, w jaki sposób ta odpowiedź pomaga OP w naprawianiu bieżącego problemu
ρяσѕρєя K

1
Przyznanie użytkownikowi dostępu do zmiany folderów systemowych nie jest dobrym pomysłem, zwłaszcza gdy można to łatwo naprawić, zmieniając prefiks na folder w katalogu domowym użytkownika.
atomic77

1
to nie zadziała na firmowym laptopie, na którym nie jesteś administratorem systemu.
schlingel


27

Czasami wystarczy zatrzymać serwer deweloperski przed instalacją / aktualizacją pakietów.


1
Miałem ten problem w WebStorm. Dziękuję Ci! To rozwiązało problem.
takasoft

1
jakie dziwne, ale prawdziwe ... Instalacja reag-dom@16.7.0-alpha.0 do wypróbowania hooków reagowania nie działała, dopóki tego nie wypróbowaliśmy
Dimitar Nikovski

Aby dodać do tego, jeśli podejrzewasz, że ten problem jest spowodowany działaniem twojego serwera deweloperskiego, ale nie wiesz, jak go zatrzymać, po prostu wyloguj się / uruchom ponownie system Windows, aby zawsze naprawić ten lool
Ng Sek Long

24

Niedawno miałem ten sam problem, kiedy zaktualizowałem do nowej wersji, jedynym rozwiązaniem było zrobienie zdegradowanej wersji

Aby odinstalować:

npm uninstall npm -g

Zainstaluj poprzednią wersję:

npm install npm@5.3 -g

Spróbuj zaktualizować wersję w innym momencie.


2
To samo tutaj. Wygląda na to, że problemem była aktualizacja npm
SokIsKedu

Dokładnie śledzę ten temat, aby wiedzieć, kiedy zostanie naprawiony.
Leonardo Oliveira

to naprawiło to dla mnie!
Jim,

btw, zaktualizowałem z 5.4.1 do 5.4.2 i wydaje się, że problem zniknął - więc myślę, że problem mógł zostać naprawiony. Trochę trudno powiedzieć, ponieważ temat, o którym mówił Leonardo, był zamknięty.
Wsparcie Mantis

Mnie też się udało. Dzięki @LeonardoOliveira za pomoc
Vipin

13

W moim przypadku napotkałem ten błąd, ponieważ mój katalog i jego plik zostały otwarte w moim edytorze (kod VS), gdy byłem uruchomiony npm install. Rozwiązałem problem, zamykając edytor i uruchamiając npm installwiersz poleceń.


10

Miałem ten sam problem po aktualizacji npm. Rozwiązałem to, ponownie instalując najnowszy npm za pomocą:

npm i -g npm

ale tym razem z cmd działającym w trybie administracyjnym.

Zrobiłem to wszystko, ponieważ podejrzewałem, że wystąpił problem z aktualizacją, głównie brakujące pliki.


10

Używam Windows 10. Uruchomiłem CMD jako administrator i rozwiązałem problem.

Znajdź CMD, kliknij prawym przyciskiem myszy i kliknij Otwórz jako administrator.


@EtienneGautier To ... po prostu nie jest prawdą. Jakie jest Twoje proponowane rozwiązanie do modyfikowania plików systemowych? Jeśli można to zrobić inaczej niż przy użyciu „uprawnień administratora”, oznacza to, że jest poważny problem z bezpieczeństwem systemu operacyjnego.
Clonkex

Hej @Clonkex, zakładałem, że kontekst jest kontekstem NPM (zgodnie z pytaniem). Mimo to mój komentarz nie jest istotny, usuwam go. Dziękujemy za twoją opinię.
Etienne Gautier

@EtienneGautier Ah w porządku.
Clonkex

7

dla mnie był to problem ze zmianą istniejących folderów w module node_module, więc nukowałem cały folder i ponownie uruchomiłem instalację npm. po tym działa bez błędów


7

Miałem przestarzałą wersję npm. Uruchomiłem serię poleceń, aby rozwiązać ten problem:

npm cache clean --force

Następnie:

npm install -g npm@latest --force

Następnie (jeszcze raz):

npm cache clean --force

I wreszcie udało mi się uruchomić to (instalując projekt Angular) bez błędów, które widziałem w odniesieniu do EPERM:

ng new myProject

6

Miałem ten sam problem, gdy próbowałem zainstalować pakiet npm AVA. Rozwiązaniem dla mnie było usunięcie folderu node_modules i wymuszone wyczyszczenie pamięci podręcznej npm:

rm -rf node_modules
npm cache clean --force

Mogłem wtedy bez problemu zainstalować pakiet npm.


Tak, w jakiś sposób miałem foldery node_modules w bieżącym katalogu roboczym. Rzucał ten wyjątek, gdy próbowałem uruchomić komendy kątowe CLI „ng new ..”. Pomogło usunięcie folderów node_modules.
Ashokan Sivapragasam

3

Najprostszy sposób

Mam nadzieję, że nie jestem za późno na ten post, ale ostatnio nawet ja też zostałem dotknięty tym problemem. Nie miałem też uprawnień administratora na swoim laptopie.

Oto najprostszy sposób, w jaki naprawiłem błąd.

  1. Zlokalizuj nazwę pliku .npmrc(będzie w C:\Users\<user name>\.npmrc)
  2. Otwórz go i zmień ścieżkę prefix=doprefix=C:\Users\<user name>\AppData\Roaming\npm

mam nadzieję, że będzie to pomocne.


1
Miałem ten problem używając WebStorm. To jedyna rzecz na pierwszej stronie Google, która rozwiązała mój problem. Dzięki, Rishabh!
Leandro

cieszę się, że ci pomogło :)
@Leandro

3

Jeśli otrzymujesz ten błąd w wierszu poleceń terminala / poleceń IDE, spróbuj usunąć moduły node_modules, zamknij IDE i npm installponownie uruchom polecenie. Czas, w którym IDE uruchomiło się, ale nadal nie zakończyło analizy drzewa node_modules, jest trudnym momentem, kiedy instalacja pakietów może się nie powieść, ponieważ IDE nadal skanuje zawartość node_modules.



1

Miałem ten sam problem, ponieważ korzystałem z firmowej sieci LAN. Po prostu pobiegłem cmd.exe npmi byłem w stanie wykonać inne polecenia bez żadnego błędu.

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

Po prostu udostępniaj to, ponieważ może to pomóc innym ludziom, którzy próbują to zrobić w swojej biurowej sieci LAN. Dziękuję Ci.


1

Po prostu uruchom cmd jako admin. usuń stary folder node_modules i ponownie uruchom instalację npm.


1
Instalacja npm powinna działać bez uruchamiania CMD jako administrator. Problem nie działa na normalnym cmd (nie admin).
Lahar Shah

1

Znajdź to polecenie npm cache cleanjako rozwiązanie tych błędów w szybki i prosty sposób!


1

Zaktualizowałem wersję swojego węzła do 8.9.4 i ponownie uruchomiłem niezbędne polecenie instalacji z wiersza polecenia administratora. U mnie zadziałało!



1

Zdarzyło mi się to, ponieważ folder / plik został zablokowany przez inny proces. Użyto narzędzia (LockHunter), aby zakończyć ten proces i ponownie zaczął działać (możliwy powód).



1

Windows 10,

Uruchomienie IDE (w moim przypadku IntelliJ) w trybie administratora i wykonanie instalacji npm rozwiązuje problem.

Jeśli nie ma IDE, uruchom CMD w trybie administratora i spróbuj wykonać instalację npm


1

Uruchomiłem serwer aplikacji do tworzenia reakcji. Po prostu zatrzymałem serwer i wszystko działało dobrze.


1
To rozwiązało mój problem! Myślę, że powinieneś najpierw spróbować tego, zanim spróbujesz innych. Ponieważ inne odpowiedzi wymagają więcej wysiłku.
Irfandy Jip


0

Uruchomienie poleceń npm w Windows Powershell rozwiązało mój problem.


Nie potrzebuję edytować żadnych plików konfiguracyjnych, lokalnych ani innych
Sai Prasad

0

Podobnie jak ja, moim rozwiązaniem było zamknięcie Android Studio, AVD Manager, Visual Studio i ponowna instalacja. Wykonałem to polecenie, aby zaktualizować moje klienckie expo:

npm install -g expo-cli

0

Najwyraźniej oprogramowanie antywirusowe może również powodować ten błąd. W moim przypadku miałem ochronę przed ransomware Windows Security chroniącą moje foldery użytkownika, które spowodowały ten błąd.


0

Dla mnie był to problem z plikiem .npmrc. Który jest obecny w C: \ Users \ myname.npmrc Jakoś zmieniła się zawartość pliku .npmrc. Zmieniłem zawartość, porównując z laptopem moich kolegów. Więc to rozwiązane.

Dla porównania dodaję również zawartość pliku .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

Dla tych, którzy próbują zaktualizować config

Jeśli masz problemy z aktualizacją konfiguracji npm, spróbuj zamiast tego uruchomić z flagą -g . To rozwiązało problem z Win 10 po wypróbowaniu wszystkiego innego.

npm config edit -g

Jestem w stanie zaktualizować konfigurację, a zmiany są widoczne wszędzie. Może to być spowodowane uruchomieniem npm w zakresie organizacyjnym.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.