npm - EPERM: ไม่อนุญาตให้ดำเนินการกับ Windows


111

ฉันวิ่ง

npm config set prefix /usr/local

หลังจากเรียกใช้คำสั่งนั้นเมื่อพยายามเรียกใช้คำสั่ง npm บน Windows OS ฉันจะได้รับสิ่งต่อไปนี้

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 สองครั้งใช้ได้ผลสำหรับฉัน
VIshal Jain

คำตอบ:


103

การเรียกใช้คำสั่งนี้เป็นความผิดพลาดของฉัน

npm config ตั้งค่า prefix / usr / local

เส้นทาง/usr/localไม่ใช่สำหรับ windows คำสั่งนี้เปลี่ยนตัวแปรคำนำหน้าเมื่อ'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 Jain

เพิ่งเปิดใช้งานอีกครั้งในฐานะผู้ดูแลระบบแก้ไขปัญหาของฉัน
Unbreakable

34

สิ่งนี้เกิดขึ้นเนื่องจาก windows ไม่ให้สิทธิ์แก่ผู้ใช้ในการสร้างโฟลเดอร์ภายในไดรฟ์ระบบ วิธีแก้ปัญหานี้:

คลิกขวา

แท็บโฟลเดอร์> คุณสมบัติ > ความปลอดภัย

คลิกที่แก้ไขเพื่อเปลี่ยนสิทธิ์> เลือกผู้ใช้และให้การควบคุมทั้งหมดแก่ผู้ใช้นั้น


2
เพิ่มคำอธิบายพร้อมคำตอบว่าคำตอบนี้ช่วย OP ในการแก้ไขปัญหาปัจจุบันได้อย่างไร
ρяσѕρєя K

1
การให้สิทธิ์ผู้ใช้เข้าถึงเพื่อเปลี่ยนโฟลเดอร์ระบบไม่ใช่ความคิดที่ดีโดยเฉพาะอย่างยิ่งเมื่อสามารถแก้ไขได้อย่างง่ายดายโดยเปลี่ยนคำนำหน้าเป็นโฟลเดอร์ในโฮมไดเร็กทอรีของผู้ใช้
atomic77

1
สิ่งนี้จะใช้ไม่ได้กับแล็ปท็อปของ บริษัท ที่คุณไม่ได้เป็นผู้ดูแลระบบ
schlingel


27

บางครั้งสิ่งที่จำเป็นคือหยุดเซิร์ฟเวอร์ dev ก่อนที่จะติดตั้ง / อัปเดตแพ็คเกจ


1
มีปัญหานี้บน WebStorm ขอบคุณ! สิ่งนี้ช่วยแก้ปัญหาได้
takasoft

1
วิธีที่แปลก แต่จริง ... การติดตั้ง react-dom@16.7.0-alpha.0 สำหรับการลองใช้ react hooks ไม่ได้ผลจนกว่าจะลองทำสิ่งนี้
Dimitar Nikovski

หากต้องการเพิ่มสิ่งนี้หากคุณสงสัยว่าปัญหานี้เกิดจากเซิร์ฟเวอร์ dev ของคุณกำลังทำงานอยู่ แต่ไม่รู้จะหยุดอย่างไรเพียงแค่ออกจากระบบ / รีสตาร์ท windows ของคุณก็จะแก้ไขปัญหานี้ได้เสมอ
อึ้งเสกลอง

24

เมื่อเร็ว ๆ นี้ฉันมีปัญหาเดียวกันเมื่อฉันอัปเกรดเป็นเวอร์ชันใหม่วิธีแก้ปัญหาเดียวคือทำการดาวน์เกรด

ในการถอนการติดตั้ง:

npm uninstall npm -g

ติดตั้งเวอร์ชันก่อนหน้า:

npm install npm@5.3 -g

ลองอัปเดตเวอร์ชันในอีกสักครู่


2
เหมือนกันที่นี่ ดูเหมือนว่าการอัปเกรด npm เป็นปัญหา
SokIsKedu

แน่นอนฉันติดตามหัวข้อนี้เพื่อทราบว่าจะได้รับการแก้ไขเมื่อใด
Leonardo Oliveira

สิ่งนี้แก้ไขให้ฉัน!
จิม

btw ฉันอัปเดตจาก 5.4.1 เป็น 5.4.2 และดูเหมือนว่าปัญหาจะหายไป - ดังนั้นฉันคิดว่าปัญหาอาจได้รับการแก้ไขแล้ว ยากที่จะบอกได้เล็กน้อยเนื่องจากหัวข้อที่ Leonardo อ้างถึงถูกล็อค
Mantis Support

มันได้ผลสำหรับฉันด้วย ขอบคุณ @LeonardoOliveira สำหรับความช่วยเหลือ
Vipin

13

ในกรณีของฉันฉันกำลังเผชิญข้อผิดพลาดนี้เพราะไดเรกทอรีและไฟล์ของฉันได้เปิดในการแก้ไขของฉัน (รหัส VS) npm installในขณะที่ผมทำงาน ฉันแก้ไขปัญหาโดยการปิดตัวแก้ไขและเรียกใช้npm installผ่านบรรทัดคำสั่ง


12

ฉันใช้ Windows 10 ฉันเริ่ม CMD ในฐานะผู้ดูแลระบบและแก้ไขปัญหาได้

ค้นหา CMD คลิกขวาแล้วคลิกเปิดในฐานะผู้ดูแลระบบ


@EienneGautier นั่น ... ไม่จริงเลย โซลูชันที่คุณเสนอสำหรับการแก้ไขไฟล์ระบบคืออะไร? หากมีวิธีอื่นนอกเหนือจาก "สิทธิ์ของผู้ดูแลระบบ" แสดงว่ามีบางอย่างผิดปกติอย่างมากกับความปลอดภัยของระบบปฏิบัติการ
Clonkex

เฮ้ @Clonkex ฉันสมมติว่าบริบทเป็นของ NPM (ตามคำถาม) ความคิดเห็นของฉันยังไม่เกี่ยวข้องฉันกำลังลบออก ขอบคุณสำหรับความคิดเห็นของคุณ.
Etienne Gautier

@EienneGautier อ่ายุติธรรมพอแล้ว
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

และในที่สุดก็สามารถเรียกใช้สิ่งนี้ได้ (การติดตั้งโครงการเชิงมุม) โดยไม่มีข้อผิดพลาดที่ฉันเห็นเกี่ยวกับEPERM:

ng new myProject

ทำงานได้สมบูรณ์แบบสำหรับฉัน! ขอบคุณ.
Chandan YS

7

สำหรับฉันมันเป็นปัญหาของการแก้ไขโฟลเดอร์ที่มีอยู่ใน node_module ดังนั้นฉันจึงทำการ nuked ทั้งโฟลเดอร์และเรียกใช้การติดตั้ง npm อีกครั้ง มันใช้งานได้โดยไม่มีข้อผิดพลาดหลังจากนั้น


6

AVAฉันมีปัญหาเดียวกันเมื่อฉันพยายามที่จะติดตั้งแพคเกจ NPM วิธีแก้ปัญหาสำหรับฉันคือการลบโฟลเดอร์ node_modules และบังคับให้ล้างแคช npm:

rm -rf node_modules
npm cache clean --force

จากนั้นฉันสามารถติดตั้งแพ็คเกจ npm ได้โดยไม่มีปัญหา


ใช่ฉันมีโฟลเดอร์ node_modules ในไดเร็กทอรีการทำงานปัจจุบัน มันโยนข้อยกเว้นนั้นเมื่อฉันพยายามเรียกใช้คำสั่ง angular cli 'ng new .. ' การลบโฟลเดอร์ node_modules ช่วยได้
Ashokan Sivapragasam

3

วิธีที่ง่ายที่สุด

หวังว่าฉันจะไม่สายเกินไปสำหรับโพสต์นี้ แต่เมื่อไม่นานมานี้ฉันก็โดนปัญหานี้เช่นกัน และฉันก็ไม่มีสิทธิ์ผู้ดูแลระบบบนแล็ปท็อปของฉัน

นี่คือวิธีที่ง่ายที่สุดในการแก้ไขข้อบกพร่อง

  1. ค้นหาชื่อไฟล์.npmrc(จะอยู่ในC:\Users\<user name>\.npmrc)
  2. เปิดและเปลี่ยนเส้นทางของprefix=ไปprefix=C:\Users\<user name>\AppData\Roaming\npm

หวังว่าจะเป็นประโยชน์ ..


1
ฉันมีปัญหานี้เมื่อใช้ WebStorm นี่เป็นเพียงสิ่งเดียวในหน้าแรกของ Google ที่แก้ปัญหาของฉันได้ ขอบคุณ Rishabh!
Leandro

ดีใจที่ช่วยคุณ :)
Rishabh Jain

3

หากคุณได้รับข้อผิดพลาดนี้ในพรอมต์เทอร์มินัล / คำสั่งของ IDE ให้ลองลบ node_modules ปิด IDE แล้วรันnpm installคำสั่งอีกครั้ง เวลาที่ IDE เริ่มทำงาน แต่ยังวิเคราะห์โครงสร้าง node_modules ไม่เสร็จเป็นช่วงเวลาที่ยุ่งยากเมื่อการติดตั้งแพ็กเกจอาจล้มเหลวเนื่องจาก IDE ยังคงสแกนเนื้อหา node_modules



1

ฉันมีปัญหาเดียวกันขณะที่ฉันใช้ LAN ของ บริษัท และฉันเพิ่งวิ่งcmd.exe npmและฉันสามารถดำเนินการคำสั่งอื่น ๆ ของฉันได้โดยไม่มีข้อผิดพลาดใด ๆ หลังจากนั้น

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

เพียงแค่แบ่งปันสิ่งนี้เนื่องจากอาจช่วยคนอื่น ๆ ที่พยายามทำสิ่งนี้ใน LAN สำนักงานของพวกเขา ขอบคุณ.


1

เพียงแค่เรียกใช้ cmd ในฐานะผู้ดูแลระบบ ลบโฟลเดอร์ node_modules เก่าและเรียกใช้การติดตั้ง npm อีกครั้ง


1
การติดตั้ง npm ควรทำงานได้โดยไม่ต้องเริ่ม CMD ในฐานะผู้ดูแลระบบ มันไม่ทำงานบน cmd ปกติ (ไม่ใช่ผู้ดูแลระบบ) ก็เป็นปัญหาเช่นกัน
Lahar Shah

1

ค้นหาคำสั่งนี้npm cache cleanเพื่อแก้ไขข้อผิดพลาดเหล่านั้นด้วยวิธีที่ง่ายและรวดเร็ว!


1

ฉันอัปเดตเวอร์ชันโหนดเป็น 8.9.4 และเรียกใช้คำสั่งติดตั้งที่จำเป็นอีกครั้งจากพรอมต์คำสั่งของผู้ดูแลระบบ มันได้ผลสำหรับฉัน!



1

เกิดขึ้นกับฉันตั้งแต่โฟลเดอร์ / ไฟล์ถูกล็อคโดยกระบวนการอื่น ใช้เครื่องมือ (LockHunter) เพื่อยุติกระบวนการนั้นและเริ่มทำงานอีกครั้ง (เหตุผลที่เป็นไปได้)



1

Windows 10,

การรัน IDE (ในกรณีของฉันคือ IntelliJ) ในโหมดผู้ดูแลระบบและการดำเนินการติดตั้ง npm จะช่วยแก้ปัญหาได้

หากไม่มี IDE ให้เรียกใช้ CMD ในโหมดผู้ดูแลระบบและลองดำเนินการติดตั้ง npm


1

ฉันใช้เซิร์ฟเวอร์ create-react-app เพียงแค่หยุดเซิร์ฟเวอร์และทุกอย่างก็ทำงานได้ดี


1
นี่ช่วยแก้ปัญหาของฉันได้! ฉันคิดว่าคุณควรลองสิ่งนี้ก่อนที่จะลองอย่างอื่น เนื่องจากคำตอบอื่น ๆ ต้องใช้ความพยายามมากขึ้น
Irfandy Jip

1

ข้อผิดพลาดนี้เกิดจากปัญหาต่างๆลองใช้ข้อผิดพลาดด้านล่างนี้จะได้ผลสำหรับคุณ!

  • พยายามเรียกใช้npmในฐานะผู้ดูแลระบบ

  • เรียกใช้ cmd ในฐานะผู้ดูแลระบบnpm config edit(คุณจะได้รับโปรแกรมแก้ไข notepad) เปลี่ยนPrefixตัวแปรเป็นC:\Users\<User Name>\AppData\Roaming\npm

  • ข้อผิดพลาดเกิดขึ้นหลังจากฉันปิดการใช้งานโปรแกรมป้องกันไวรัส (Avast)

  • บางครั้งการล้างแคชง่ายๆเช่นด้านล่างจะแก้ไขได้

     npm cache clear


0

การเรียกใช้คำสั่ง npm ใน Windows Powershell ช่วยแก้ปัญหาของฉันได้


ฉันไม่จำเป็นต้องแก้ไขไฟล์ config ใด ๆ ในเครื่องหรืออื่น ๆ
Sai Prasad

0

สำหรับฉันวิธีแก้ปัญหาของฉันคือปิดสตูดิโอ Android, AVD Manager, Visual Studio และติดตั้งใหม่ ฉันดำเนินการคำสั่งนี้เพื่ออัพเดต expo cli ของฉัน:

npm install -g expo-cli

0

เห็นได้ชัดว่าซอฟต์แวร์ป้องกันไวรัสสามารถทำให้เกิดข้อผิดพลาดนี้ได้เช่นกัน ในกรณีของฉันฉันมี Ransomware Protection ของ 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

สำหรับผู้ที่พยายามอัปเดต config

หากมีปัญหาในการอัปเดตการกำหนดค่า npm ให้ลองรันโดยใช้แฟล็ก-gแทน สิ่งนี้ช่วยแก้ปัญหาใน Win 10 สำหรับฉันหลังจากลองทำทุกอย่างแล้ว

npm config edit -g

ฉันสามารถอัปเดตการกำหนดค่าและการเปลี่ยนแปลงจะปรากฏขึ้นทุกที่ อาจเกิดจากการเรียกใช้ npm ในขอบเขตขององค์กร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.