繁体   English   中英

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

[英]npm ERR! Error: EPERM: operation not permitted, rename

当我执行npm install时出现此错误

npm ERR:错误:EPERM,不允许操作:重命名 C:\projects******\node_modules\react-async-script' -> 'C.\projects******\node_modules.react-异步脚本.DELETE'

  • 我以管理员身份运行 cmd
  • 我之前跑过npm cache clean
  • 我确保所有其他应用程序都没有与node_modules open 相关的任何内容

在我的情况下,这有帮助:

在继续执行这些命令之前,请关闭所有 VS Code 实例。

  1. 清理缓存

     npm cache clean --force
  2. 以管理员身份全局安装最新版本的 npm:

     npm install -g npm@latest --force
  3. 清理缓存

     npm cache clean --force
  4. 再次尝试安装您的组件。

我希望这能解决您的问题。 如果没有,您可以暂时禁用防病毒程序并重试。

尝试使用强制选项 npm install 获取远程资源时,即使磁盘上存在本地副本,我也能正常工作。 尝试跑步

npm install --force

更新对于我的一些同事,此解决方案不起作用。 但是我们尝试使用yarn而不是npm。 它始终有效(也更快)而没有任何问题

yarn install [package-name]

不是package.json ,但无论出于何种原因,我的node_modules/已成为只读。 重置解决了这个问题。

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

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

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

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

2-如果上述方法不起作用,请尝试关闭其中打开了工作区的代码编辑器(可能是锁定了某些文件或其他内容)

所以尝试关闭代码编辑器并运行:

npm install

3-如果仍然不起作用,那么也许您可以尝试--force选项

npm install --force

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

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

我得到了同样的东西。 我在任何地方都没有找到这个,但我发现我们的虚拟机倾向于将文件更改为只读状态。 所以我打开package.json的文件属性并在“常规”选项卡中取消选择Read-only

步骤

  1. 转到package.json文件。
  2. 右键单击并选择属性
  3. General选项卡的Attributes部分中,取消选择Read-only
  4. 单击应用以应用更改。

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

你必须改变polyfills.jsNpm包:

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

查找此语句:

if (process.platform === "win32") {

在这个语句中,有一个超时会在出现错误时重试。 问题是在某些情况下,超时后文件仍被 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)
}

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

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

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

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

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

关闭 PHPStorm 为我解决了这个问题。

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

将 npm 更新到 5.4.2 后,我遇到了同样的问题,npm 开始对大多数 npm 命令给出相同的错误。 一些解决方案建议使用--no-optional运行它,但它并不总是有效。

其他人建议降级,但我不想降级。

我怀疑是安装有问题,不知道是什么问题。

所以我重新更新了我的 npm:

npm i -g npm

从那以后工作得很好。

我做了以下事情:

  1. 将 npm 升级到最新版本: npm install -g npm@6.5.0-next.0
  2. 从以下位置删除 npm-cache 文件夹: c:/users/[username]/AppData/Roaming/npm-cache
  3. 缓存是否干净: npm cache clean --force
  4. npm install

我用元数据标志重新安装了我的窗口磁盘,并立即提供了帮助: https : //devblogs.microsoft.com/commandline/chmod-chown-wsl-improvements/

之后不再需要对 npm 命令使用 sudo,因为元数据会检查 Windows 和 linux 文件/目录权限。

npm 在scandir对我来说失败了:

npm install -g webpack

...这可能是由 npm 尝试“修改”可能被其他进程锁定的文件引起的,如此和其他几个 github 线程中提到。 在强制清理缓存、验证缓存、以管理员身份运行、禁用 AV 等之后,实际对我有用的解决方案是关闭任何可能锁定文件的东西(即重新启动我的计算机)。

我希望这可以帮助正在挣扎的人。

我有同样的问题。 错误的原因是文件路径中的字符不受支持。 用英语替换了西里尔字母 - 它有帮助。

对于某些人来说, AppRoot\\npm 文件夹可能是一个问题。 有时 AppRoot 文件夹被标记为网络共享,因此防病毒软件会阻止这些内容。 请按照以下链接获取完整的解决方案。

https://alastaircrabtree.com/fixing-intermittant-eperm-operation-not-permitted-on-npm-install/

我希望这会有所帮助。

以管理员身份打开命令提示符并导航到项目位置,然后运行 ​​npm install。 它对我有用。

在我的情况下,在Windows上运行npm: v6.9.0 && node: v10.16.1 ,我必须以管理员身份运行我的 CLI (git bash)。 然后安装软件包没有任何警告/错误

如果您在 PHP Storm 上遇到问题:

  1. 关闭终端选项卡
  2. 打开一个新的终端选项卡

我在 VSCode 中使用终端,我意识到我使用的是bash终端而不是node终端。

以管理员身份运行 CLI 总是为我解决问题

我正在使用 macOS catalina ,

      npm init 

我有错误

       operation not permitted, uv_cwd

在 2021 年,这就是您解决此问题的方法。

很简单:

第 1 步:转到父文件夹

         cd ../
         

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

         cd  your-project-folder

就是这样。 它有效。

我的答案是先做npm cache clean --force 然后运行npm install -g npm@5.3.0安装 npm 5.3.0 版本。 对我来说,这个 npm 版本没有问题。

只需从 npm 全局包的路径中删除包文件夹即可。 然后重新安装包。 请注意,软件包全局安装在: C:\\Users\\your-name\\AppData\\Roaming\\npm\\node_modules

我在 Windows 10 中遇到了同样的问题。只需按照以下步骤操作:

  • 以管理员身份打开cmd。

  • 安装更新的 npm 包。

  • npm i -g npm

  • npm init --yes

以超级管理员身份运行命令对我有用。 关闭您正在使用的编辑器后重试。

当我执行npm install此错误

npm ERR! 错误:EPERM:不允许操作,请重命名C:\\ projects ****** \\ node_modules \\ react-async-script'->'C:\\ projects ******* \\ node_modules.react-async-script 。删除'

  • 我以管理员身份运行cmd
  • 我之前运行过npm cache clean
  • 我确保所有其他应用程序都没有打开任何与node_modules相关的node_modules

当我执行npm install此错误

npm ERR! 错误:EPERM:不允许操作,请重命名C:\\ projects ****** \\ node_modules \\ react-async-script'->'C:\\ projects ******* \\ node_modules.react-async-script 。删除'

  • 我以管理员身份运行cmd
  • 我之前运行过npm cache clean
  • 我确保所有其他应用程序都没有打开任何与node_modules相关的node_modules

当我执行npm install此错误

npm ERR! 错误:EPERM:不允许操作,请重命名C:\\ projects ****** \\ node_modules \\ react-async-script'->'C:\\ projects ******* \\ node_modules.react-async-script 。删除'

  • 我以管理员身份运行cmd
  • 我之前运行过npm cache clean
  • 我确保所有其他应用程序都没有打开任何与node_modules相关的node_modules

我关闭了 VS,删除了 node_modules 文件夹。

然后跑:

npm i -D -E clean-webpack-plugin@3.0.0 css- 
loader@3.4.2 html-webpack-plugin@3.2.0 mini-css- 
extract-plugin@0.9.0 ts-loader@6.2.1 typescript@3.7.5 
webpack@4.41.5 webpack-cli@3.3.10 

然后必须将属性更改为在 node_modules 文件夹完成运行后不只读。

然后跑:

npm i @microsoft/signalr @types/node

然后在 VS 中打开备份项目,package.json 看起来与依赖项正确。

与其他人谈论在 node_modules 文件夹上只读并关闭 VS 以运行 npm install 相同。

经过多次尝试,我通过以下步骤解决了这个问题:

 0. Run `cmd` or `powershell` as admin
  1. clean cachec npm clean cache --force
  2. 删除 %AppData%/npm-cache/ 的内部
  3. 删除 %temp%
  4. 删除导致错误的 npm 模块。 对我来说是iconv 所以删除了iconviconv-lite
  5. 当我再次构建时,我的失败原因是app-builder的病毒。 我在节点模块上运行 Windows Defender 并删除了该病毒。 然后,再次构建。
  6. 这次我成功了。

这些步骤为我解决了

转到文件资源管理器中的 package.json 文件右键单击并选择“属性”。 取消选择只读。 点击应用

注意:(如果它已经被取消选中,请选中并取消选中只读一次,然后单击“应用”)

很可能node_modules文件夹变成了Read Only 您可以尝试更新文件夹权限,但如果您没有管理员访问权限, npm install --force将起作用。

我正在使用 iTerm。 重新启动 iTerm 后,错误消失了。

就我而言,我只是使用 cmd 以管理员身份运行 npm install

我遇到了同样的问题,在cmd使用了npm cache clear命令,并且open as Adminitrator 关闭 VScode 并重新打开它。 它奏效了。

就我而言,我在 node_modules 目录中打开了一个 Windows 资源管理器,导致了问题。 关闭它就成功了。

就我而言,事实是我实际上将项目移到了垃圾箱,从 git 重新克隆了项目,但终端似乎仍然指向在垃圾箱中移动的文件夹。 我只需要cd回到新克隆的项目,一切都很好。

就我而言,发生此错误时,我正在执行fs.renameSync

似乎“新”路径已经存在,删除它不会引发错误。

它并没有真正解决问题,但如果您只是想像我一样构建应用程序,那么这可行。

  1. reinstall NodeJS
  2. Closed VSCode
  3. Open VSCode to where the project让它毫无问题地运行

我带着同样的错误来到这里,按照这里的所有答案,都没有解决它。 我开始通过我的 package.json 删除所有可疑的包。 删除这个不必要的解决了我们的问题。 "npm": "^8.3.2"<\/code>

"

我认为这应该与更新 npm 问题有关。 作为现在的解决方法,您可以将 npm 版本指定为 8.3.1。

  - name: Install latest npm version
    run: npm install --global npm@8.3.1

2022 年 7 月,我将Angular 13 更新到 14 ,我遇到了这个问题。 上述解决方案均无效,因此我只是重新启动了笔记本电脑npm i --force worked似乎后台的一个进程正在锁定对某些 node_modules 文件的访问(您可能在某处运行 ng serve 或由一个 git bash 您关闭但继续在后台运行)

这个简单的修复对我有用

  • 以管理员身份用un打开PowerShell

在此处输入图像描述

  • 运行这个命令

    npm i

我多次面对这个问题。 事实证明,它与权限,缓存等无关。错误消息具有误导性。 对于节点v 6.x,您将看到更详细的错误堆栈,但不会在7.x之后看到我和我的大学,问题是超时功能。 当npm尝试删除它时,基本上包安装尚未完成(即保存目录)。 在节点6.x中你可以看到在finalize.js中它已经消失了! 只需使用纱线。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM