npm-EPERM:Windows上不允许进行此操作


105

我跑了

npm config set prefix /usr/local

运行该命令后,当尝试在Windows操作系统上运行任何npm命令时,我不断收到以下内容。

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 cache clean --force两次对我有用。
VIshal Jain

Answers:


101

运行此命令是我的错误。

npm config设置前缀/ 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。不确定这是否是明智之举,但确实有效。
鲁芬

在我来说,我对笔记本电脑没有管理员权限,我所以这里是我如何做它- stackoverflow.com/a/57249779/10603466
RISHABH耆那

只需以管理员身份重新运行即可解决我的问题。
牢不可破

31

发生这种情况是因为Windows并未授予用户在系统驱动器内创建文件夹的权限。要解决这个问题:

右键点击

文件夹> 属性 > 安全选项卡

单击编辑以更改权限>选择用户,然后将该用户授予完全控制权限。


2
与答案添加一些解释如何回答帮助OP在固定电流问题
ρяσѕρєяķ

1
授予用户访问更改系统文件夹的权限不是一个好主意,特别是当可以通过将前缀更改为用户主目录中的文件夹来轻松解决此问题时。
atomic77

1
这不适用于您不是系统管理员的公司笔记本电脑。
schlingel


26

有时,所需要做的就是在安装/更新软件包之前停止开发服务器。


1
在WebStorm上出现此问题。谢谢!这解决了问题。
takasoft

1
多么奇怪,但确实如此...安装React-dom@16.7.0-alpha.0来尝试使用react钩子直到尝试此方法都无法正常工作
Dimitar Nikovski 18-10-31

除此之外,如果您怀疑此问题是开发服务器正在运行,但不知道如何停止它,只需注销/重新启动Windows即可始终解决此问题
Ng Sek Long,

24

升级到新版本时,我最近遇到了同样的问题,唯一的解决方案是进行降级

卸载:

npm uninstall npm -g

安装以前的版本:

npm install npm@5.3 -g

请稍后再尝试更新版本。


2
同样在这里。看起来升级npm是个问题
SokIsKedu

确实,我正在关注这个主题,以了解何时可以修复它。
莱昂纳多·奥利维拉

这为我解决了!
吉姆(Jim)2005年

顺便说一句,我从5.4.1更新到5.4.2,问题似乎消失了-所以我认为这个问题可能已经解决。莱昂纳多提到的话题被锁定了,这很难说。
螳螂支持

它也对我有用。感谢@LeonardoOliveira的帮助
VIPIN

13

就我而言,我遇到了此错误,因为在运行时,我的目录及其文件是在编辑器(VS代码)中打开的npm install。我通过关闭编辑器并npm install通过命令行运行来解决了该问题。


10

更新npm后,我遇到了同样的问题。通过重新安装最新的npm来解决此问题:

npm i -g npm

但这一次cmd在管理模式下运行。

我这样做是因为我怀疑更新存在问题,主要是一些丢失的文件。


10

我使用Windows10。我以管理员身份启动了CMD,它解决了该问题。

找到CMD,右键单击,然后单击以管理员身份打开。


@EtienneGautier那是……根本不正确。您提出的修改系统文件的解决方案是什么?如果除了 “管理员权限” 以外,还有其他方法可以使用,那么操作系统的安全性就有严重问题。
Clonkex

嘿@Clonkex,我假设上下文是NPM的上下文(根据问题)。仍然我的评论不相关,我将其删除。感谢您的反馈意见。
Etienne Gautier

@EtienneGautier嗯,很公平。
Clonkex

7

对我来说,这是更改node_module中现有文件夹的问题,因此我取消了整个文件夹并再次运行npm install。在那之后它没有错误


7

我的版本过时npm。我运行了一系列命令来解决此问题:

npm cache clean --force

然后:

npm install -g npm@latest --force

然后(再次):

npm cache clean --force

最终能够运行此程序(安装Angular项目),而没有出现以下错误EPERM

ng new myProject

6

当我尝试安装npm软件包时,我遇到了同样的问题AVA。对我来说,解决方案是删除node_modules文件夹并强制清理npm缓存:

rm -rf node_modules
npm cache clean --force

然后,我可以毫无问题地安装npm软件包。


是的,我不知何故在当前工作目录中有node_modules文件夹。当我尝试运行角度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

希望对您有所帮助。


我在使用WebStorm时遇到了这个问题。这是Google第一页中解决我问题的唯一方法。谢谢利沙伯!
Leandro

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.

只是共享此内容,因为它可以帮助尝试在其办公室LAN中执行此操作的其他人员。谢谢。


1

只需以管理员身份运行cmd。删除旧的node_modules文件夹,然后再次运行npm install。


1
npm install应该可以运行,而无需以admin身份启动CMD。它不能正常使用cmd(non admin)也是一个问题。
Lahar Shah



1

重新启动我的笔记本电脑,然后

npm install

为我工作!


1

因为文件夹/文件被另一个进程锁定,所以发生了我的事情。使用工具(LockHunter)终止该过程,然后重新开始工作(可能是原因)。



1

Windows 10,

在管理员模式下运行IDE(在我的情况下为IntelliJ)并执行npm install确实可以解决问题。

如果没有IDE,则以管理员模式运行CMD并尝试执行npm install


1

我正在运行create-react-app服务器。只是停止了服务器,一切正常。


1
这解决了我的问题!我认为您应该先尝试此方法,然后再尝试其他方法。由于其他答案需要更多的精力。
Irfandy Jip



0

与我相同,我的解决方案是关闭Android Studio,AVD Manager,Visual Studio并重新安装。我执行了以下命令来更新我的expo cli:

npm install -g expo-cli

0

显然,防病毒软件也可能导致此错误。就我而言,我使用Windows安全性的勒索软件保护来保护导致此错误的用户文件夹。


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所致。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.