错误的ERR!错误:EPERM:不允许操作,重命名

Rob*_*bin 73 windows node.js npm

当我执行"npm install"时,我收到此错误

__PRE__
  • 我以管理员身份运行cmd
  • 我之前运行了npm缓存
  • 我确保所有其他应用程序都没有与node_modeules打开相关的任何内容

Rom*_*man 70

在我的情况下它有所帮助:

  1. 清理缓存

    npm cache clean --force
    
    Run Code Online (Sandbox Code Playgroud)
  2. 全局安装最新版本的npm作为管理员:

    npm install -g npm@latest --force
    
    Run Code Online (Sandbox Code Playgroud)
  3. 清理缓存

    npm cache clean --force
    
    Run Code Online (Sandbox Code Playgroud)
  4. 尝试再次安装您的组件.

我希望这可以解决你的问题.如果没有帮助,请尝试切换防病毒程序一段时间并重复.

  • 在我的情况下也关闭Atom做了伎俩 (16认同)
  • 相同的评论适用于Windows上的VS Code ...关闭它并且问题消失了 (15认同)
  • 我的非常简单,我关闭了所有 vscode 项目并重新启动它,之后一切开始正常工作,但还是谢谢,因为在阅读了这个答案和评论后,我想到了这样做。 (8认同)
  • 对我来说,我有另一个节点进程在运行,在我的例子中是 json-server。一旦我停止该软件包安装没有错误。 (4认同)
  • `npm WARN 使用 --force 我当然希望你知道你在做什么。`。. . 我不知道我在做什么。 (3认同)

Sif*_*que 26

对我来说,我只是关闭了代码编辑器(VS Code),然后运行相同的命令。这为我解决了这个问题。


hoo*_*ogw 20

我正在使用 macOS Catalina ,

 npm init 
Run Code Online (Sandbox Code Playgroud)

我收到错误

 operation not permitted, uv_cwd
Run Code Online (Sandbox Code Playgroud)

到 2021 年,这就是解决这个问题的方法。

很简单的:

第 1 步:转到父文件夹

 cd ../
         
Run Code Online (Sandbox Code Playgroud)

第2步:再次转到您的项目文件夹,

 cd  your-project-folder
Run Code Online (Sandbox Code Playgroud)

这就对了。有用。


sre*_*ree 19

当我尝试使用force选项进行npm安装时,即使磁盘上存在本地副本,我也可以使用它来获取远程资源.试试跑步

npm install --force
Run Code Online (Sandbox Code Playgroud)

更新 对于我的一些同事,这个解决方案无效.但我们尝试使用纱线代替npm.它工作(也更快)没有任何问题

yarn install [package-name]
Run Code Online (Sandbox Code Playgroud)

  • 我只用纱线解决了我的问题,所以我建议给他一个机会。 (4认同)

Ami*_*sle 13

package.json,但无论出于何种原因,我node_modules/已成为只读.重置固定它.

  • node_modules 文件夹>>属性>>取消选中只读对我有用。将文件夹复制到新位置后发生这种情况。希望这对某人有帮助。 (2认同)

Ahm*_*ssy 13

如果您想避免使用该--force选项(通常是更好的方法)建议您停止运行该项目,因为这通常是在我所看到的几乎90%的情况下锁定文件的主要原因。

我建议按此顺序执行以下步骤:

1-在Angular停止ng s和React停止中 npm start 通常可以解决此问题,因为如果开发服务器正在运行项目,因为它锁定了一些文件,则通常会发生此错误,然后npm无法更新它们,从而引发此错误

2- 如果上述方法不起作用,请尝试关闭已打开工作空间的代码编辑器(也许它正在锁定某些文件或其他内容)

因此,请尝试关闭代码编辑器并运行:

npm install
Run Code Online (Sandbox Code Playgroud)

3- 如果仍然无法正常工作,那么也许您可以尝试--force选择

npm install --force
Run Code Online (Sandbox Code Playgroud)

  • 这是我的问题,我在VS Code上通过终端rimraff'd了一个node_modules文件夹-由于某种原因,它没有完全从文件系统中删除node_modules并将其锁定。直到我关闭了VS Code的窗口,然后将其打开并备份,它实际上已被删除,然后我才能再次运行npm install。 (2认同)

vma*_*san 10

我得到了同样的错误,根据https://github.com/Medium/phantomjs/issues/19,它可能是由您的防病毒软件引起的.我在安装期间禁用了我,并在cmd上执行"npm install"作为管理员,它工作正常.希望这可以帮助.


jay*_*cer 10

正如 Martin Kearn 在评论中指出的那样,关闭 Visual Studio为我解决了这些 npm 权限问题。显然 VS 有时会将文件锁定在node_modules.


小智 8

这是由 Antivirus 引起的典型错误。对于像我这样无法禁用 A/V(公司政策)的情况,有一种解决方法。

您必须更改polyfills.js内部Npm包:

[NODE_HOME]/node_modules/npm/node_modules/graceful_fs/polyfills.js

查找此语句:

if (process.platform === "win32") {
Run Code Online (Sandbox Code Playgroud)

在这个语句中,有一个超时会在出现错误时重试。问题是在某些情况下,超时后文件仍被 A/V 锁定。解决方案是删除超时并让此语句循环。与先前代码的更改注释:

if (platform === "win32") {

fs.rename = (function (fs$rename) { return function (from, to, cb) {
  var start = Date.now()
  var backoff = 0;
  fs$rename(from, to, function CB (er) {
    if (er
        && (er.code === "EACCES" || er.code === "EPERM")
        /*&& Date.now() - start < 60000*/) {
            console.log("Retrying rename file: " + from + " <> " + to)
            fs$rename(from, to, CB);
      /*setTimeout(function() {
        fs.stat(to, function (stater, st) {
          if (stater && stater.code === "ENOENT")
            fs$rename(from, to, CB);
          else
            cb(er)
        })
      }, backoff)*/
      if (backoff < 100)
        backoff += 10;
      return;
    }
    if (cb) cb(er)
  })
}})(fs.rename)
}
Run Code Online (Sandbox Code Playgroud)


chr*_*989 7

我得到了同样的东西.我没有在任何地方找到这个,但它让我觉得我们的VM往往会将文件更改为只读状态.所以我打开了package.json文件属性,并Read-only在"常规"选项卡中取消选中.

脚步

  1. 转到该package.json文件.
  2. 右键单击并选择" 属性".
  3. 在" 常规"选项卡的" 属性"部分中,取消选择" 只读".
  4. 单击" 应用"以应用更改.


ben*_*ten 6

只需关闭 VS Code 即可为我解决问题


Sri*_*ana 5

我仅在 Windows 中多次遇到此问题,我通常按顺序尝试这些问题。

  1. npm install --force
  2. 检查 node_modules 是否设置为只读,如果是则删除
  3. 删除 node_modules/
  4. 检查是否打开了任何可以访问项目根文件夹的编辑器
  5. 重启 :(

通常npm install在这些步骤之一之后尝试将解决它。


Kon*_*Kon 5

就我而言,有些东西被锁定了,快速重新启动就解决了它。


Zac*_*ist 5

尝试将文件重命名为另一个已存在的文件名可能会导致EPERMWindows 上出现错误。