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 ?

Lahar Shah
źródło
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.

Lahar Shah
źródło
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ę .

RatneZ
źródło
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.

Ezra Obiwale
źródło
1
Miałem ten problem w WebStorm. Dziękuję Ci! To rozwiązało problem.
takasoft
1
jakie dziwne, ale prawdziwe ... Instalacja [email protected] 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.

Leonardo Oliveira
źródło
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ń.

Shashank Rawat
źródło
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.

Salimd83
źródło
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.

DIANGELISJ
źródło
@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

Sonic Soul
źródło
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
LatentDenis
źródło
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.

Liran H.
źródło
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.

Rishabh Jain
źródło
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.

Kote Isaev
źródło
3

Ponowne uruchomienie VsCode rozwiązało to dla mnie.

Legendy
źródło
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.

Sibeesh Venu
źródło
1

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

Rahul Khunt
źródło
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!

Hanny Setiawan
źródło
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!

Rahul Sharma
źródło
1

Restart mojego laptopa, a potem

npm install

pracował dla mnie!

Chau Nguyen
źródł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).

Hummus
źródło
1

Spróbuj npm i -g npm. NPM w wersji 6.9 działa dla mnie.

karlos
źródło
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

Sasi Kumar M
źródło
1

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

Saffer
źródło
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.

Sai Prasad
źródło
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
Loitd
źródło
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.

orrd
źródło
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
Thilak Raj
źródło
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.

factorypolaris
źródło
0

npm install cross-env Wypróbuj to zadziałało.

Mohit Poddar
źródło