【问题标题】:Error: EPERM: operation not permitted, unlink 'D:\Sources\**\node_modules\fsevents\node_modules\abbrev\package.json'错误:EPERM:不允许操作,取消链接 'D:\Sources\**\node_modules\fsevents\node_modules\abbrev\package.json'
【发布时间】:2018-02-11 16:28:20
【问题描述】:

我刚刚将npm 更新为5.4.0
现在,每当我想安装一个 npm 包时,我都会收到以下错误:

D:\Sources\DownloadCms\Md.Download\Web.Angular>npm install mds.angular.datetimepicker@latest --save
npm ERR! path D:\Sources\DownloadCms\Md.Download\Web.Angular\node_modules\fsevents\node_modules\abbrev\package.json
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall unlink
npm ERR! Error: EPERM: operation not permitted, unlink 'D:\Sources\DownloadCms\Md.Download\Web.Angular\node_modules\fsevents\node_modules\abbrev\package.json'
npm ERR!     at Error (native)
npm ERR!  { Error: EPERM: operation not permitted, unlink 'D:\Sources\DownloadCms\Md.Download\Web.Angular\node_modules\fsevents\node_modules\abbrev\package.jso
n'
npm ERR!     at Error (native)
npm ERR!   stack: 'Error: EPERM: operation not permitted, unlink \'D:\\Sources\\DownloadCms\\Md.Download\\Web.Angular\\node_modules\\fsevents\\node_modules\\ab
brev\\package.json\'\n    at Error (native)',
npm ERR!   errno: -4048,
npm ERR!   code: 'EPERM',
npm ERR!   syscall: 'unlink',
npm ERR!   path: 'D:\\Sources\\DownloadCms\\Md.Download\\Web.Angular\\node_modules\\fsevents\\node_modules\\abbrev\\package.json' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Mohammad\AppData\Roaming\npm-cache\_logs\2017-09-03T03_25_50_432Z-debug.log

我确定,以管理员身份运行CMD

我还检查了D:\Sources\DownloadCms\Md.Download\Web.Angular\node_modules\fsevents\node_modules\abbrev\package.json\package.json 在路径中不存在!

编辑: 升级到 v5.4.1,仍然出现同样的错误,甚至无法解决 --no-optional :-(

【问题讨论】:

    标签: npm package.json


    【解决方案1】:

    我可以通过以管理员身份运行命令提示符/bash 并关闭 VSCode 来解决此问题! 似乎 VSCode 正在锁定一些文件。 可能有其他东西会为您锁定这些文件。

    【讨论】:

    • 谢谢!就我而言,是 Visual Studio 2015 锁定了一些文件。
    • 是的。谢谢。超级简单。关闭 VS Code 并解决了我所有的问题。
    • 在我的例子中,Process Explorer 总是告诉我锁定文件npm 试图删除的罪魁祸首是……另一个node.exe 进程由npm 产生,运行npm!哦,天哪,这个工具永远不会让人感到惊讶……(这是在 Windows 10、Node 12.11.0、npm 6.11.3 上)
    • 为什么 vscode 无法安装 Angular 应用程序?
    • +1 用于关闭任何可能挂在文件上的正在运行的进程 - 我让 vue-cli-service serve 运行。关闭它为我解决了它。
    【解决方案2】:

    这是一个 npm 5.4.0 问题https://github.com/npm/npm/issues/18287

    解决方法是

    • 降级到 5.3
    • 尝试使用 --no-optional 运行,即npm install --no-optional

    【讨论】:

    • --no-optional 完全帮我搞定了 (@5.4.1)!
    • 如果你打开了VSCode然后关闭它并尝试运行npm命令它肯定会安装,降级不是解决方案。
    • 关闭 VS Code 并从外部运行 npm i 为我工作。
    • 在现代版本中已修复。
    【解决方案3】:

    如果您降级到 5.3,但仍然像我一样在 Windows 中遇到同样的错误。
    在使用 npm 版本数小时后,我找到了以下解决方案:

    1. 下载最新推荐的 nodejs 版本,现在是 node-v6.11.3-x64
    2. 用它卸载nodejs
    3. 转到C:\Users\{YourUsername}\AppData\Roaming 文件夹并删除npmnpm-cache 文件夹
    4. 再次运行 nodejs 的安装程序并安装它
    5 使用 npm i -g npm@5.3 命令行将 npm 更新到 5.3

    现在您应该毫无问题地使用 npm。

    【讨论】:

    • npm i -g npm@5.3 --no-optional 为我工作
    【解决方案4】:

    我通过将 npm 从 5.4.0 降级到版本 5.3 来修复

    npm i -g npm@5.3
    

    希望对你有帮助

    【讨论】:

      【解决方案5】:

      我尝试了在 How to fix Node.js blog 找到的解决方案

      随便用

      npm cache clean
      

      如果它拒绝使用,则在 windows 中

      npm cache clean --force
      

      【讨论】:

      • 对我不起作用。 VSTS 上的 CI 中的 Windows(现为 Azure DevOps)
      【解决方案6】:

      请关闭所有 IDE,如 Visual Studio 代码。通过 node.js 命令提示符运行 npm install 命令。 享受吧!

      【讨论】:

      • 某些情况下需要重启系统。
      • 同时检查 .NPMRC 文件
      【解决方案7】:

      缓存清理和npm 更新到最新版本,为我工作

      npm cache clean --force
      
      npm install -g npm@latest --force
      

      【讨论】:

        【解决方案8】:

        我在 Windows 上遇到了同样的问题。

        问题的根源很简单,就是文件夹和文件的访问权限。

        在你的项目文件夹中,你需要

        1. 克隆项目后,更改文件夹的属性并更改用户的权限(授予当前用户完全访问权限)。
        2. 从项目文件夹中删除只读选项。 (第 1 步和第 2 步需要很长时间,因为它们会复制到下面的整个树中)。
        3. 在项目文件夹中,重新安装节点(npm install reinstall -g)
        4. 禁用防病毒。 (可选)
        5. 禁用防火墙。 (可选)
        6. 重启电脑。
        7. 清除 npm 缓存 (npm clear)
        8. 安装项目的依赖项 (npm install)

        之后,将不再显示错误“Error: EPERM: operation not allowed, unlink”。

        如有必要,请记住重新激活防火墙和防病毒软件。

        【讨论】:

          【解决方案9】:

          我有同样的问题,我需要做的就是登录到 npm

          npm login

          或者

          npm add user // 查看参数的文档

          【讨论】:

            【解决方案10】:

            如果以上所有方法都不适合您,您可能需要

            • 重启系统
            • 以管理员身份运行命令提示符
            • 运行 npm 命令

            【讨论】:

              【解决方案11】:

              就我而言,问题在于,我没有安装 typescript。虽然我确实安装了 Node 和 Angular。 检查您是否安装了打字稿

              Run this command: tsc -v
              

              如果没有,则安装打字稿

              Run this command: npm install -g typescript
              

              最后,安装所需的依赖项

              Run this command: npm install
              

              在项目的根文件夹中。

              ---- 希望这对某人有所帮助----

              【讨论】:

                【解决方案12】:

                对于那些来自 Windows 操作系统的用户,您只需停止开发服务器,然后执行您的 npm install ... 命令即可。

                奇怪的是,Windows 不允许在服务器运行时安装依赖项,但 MacOS 确实允许。 如果这不起作用,则只选择其他选项 - 清理缓存、降级 nodejs 等。

                【讨论】:

                • 谢谢你,就是这样。 Windows 这样做真的很奇怪
                • 是的,就是这样。奇怪的 Windows 再次来袭。谢谢。
                • 拉我的头发好几个小时了。原来我有一个运行开发服务器的 GIt Bash。谢谢
                【解决方案13】:

                我在 Windows 中有此日志。 我做了以下

                • 关闭 Visual Studio 代码
                • 以管理员身份运行命令行

                【讨论】:

                  【解决方案14】:

                  删除 package-lock.json 为我修复了它。

                  【讨论】:

                    【解决方案15】:

                    我正在使用VsCode,并通过停止应用程序服务器解决了这个问题,它们运行npm install。有文件被应用服务器锁定。

                    无需关闭 IDE,只需确保没有其他进程锁定项目中的某些文件即可。

                    【讨论】:

                      【解决方案16】:

                      对我来说,它在 git 包中的 bash 中工作 试试:

                      C:\Program Files\Git\bin\bash.exe
                      

                      然后:

                      npm install mds.angular.datetimepicker@latest
                      

                      【讨论】:

                        【解决方案17】:

                        似乎有许多解决方案可用于降级 npm 版本。对我来说,解决方案是

                        npm install -force
                        

                        我尝试了降级 npm 版本,修改我的 npm 前缀配置以匹配 npm 目录,并清除缓存。这些都不起作用,但显然它们对其他人有用,所以值得一试。

                        【讨论】:

                          【解决方案18】:

                          对于 Windows 上的我来说,问题是路径长度太长。我将项目移到了一条长度较短的路径上,并且成功了。

                          【讨论】:

                            【解决方案19】:

                            我的结果是打开我的项目文件夹有 2 个不同的终端。我通过关闭所有正在运行的终端(排除了vs代码)并再次执行安装命令来解决它。

                            我希望这对某人有所帮助。

                            注意:删除 node_modules 并没有解决问题。

                            【讨论】:

                              【解决方案20】:

                              删除我的节点模块文件夹并运行正常的 npm install 为我做了这件事

                              【讨论】:

                                【解决方案21】:

                                我通过删除 dist 文件夹解决了这个问题

                                --- 删除 dist 或 public 文件夹

                                【讨论】:

                                  【解决方案22】:
                                  当我将 npm 版本更新到最新的 5.4 时,同样的错误出现在我身上 降级到5.3.0版本很有用。错误来自npm 5.4,您可以在issuses in npm 5.4查看
                                  npm install npm@5.3 -g
                                  

                                  【讨论】:

                                    【解决方案23】:

                                    在 NPM 5.6.0 中修复

                                    升级到 NPM 5.6.0 为我解决了问题。

                                    【讨论】:

                                      【解决方案24】:

                                      我想从我的外部硬盘驱动器中运行 npm install,因为这是我保存代码工作区的地方。 Windows 10 操作系统。

                                      但是我遇到了与原始帖子相同的错误。以前的答案都对我不起作用,我尝试了所有答案:

                                      1. 卸载 nodejs 然后重新安装
                                      2. 卸载 nodejs 然后降级/安装较低版本的 nodejs。
                                      3. npm install -force
                                      4. 从 C:\Users{YourUsername}\AppData\Roaming ... npm 和 npm-cache 中删除文件夹,然后重新安装。
                                      5. npm 缓存清理 --force
                                      6. npm 缓存清理
                                      7. npm install --g 或 npm install --global

                                      对我有用的是:

                                      1. 将文件夹从 C:\Program Files\nodejs 复制到 D:\Program Files\nodejs
                                      2. 然后转到控制面板\系统和安全\系统
                                      3. 高级系统设置
                                      4. 环境变量
                                      5. 系统变量
                                      6. 双击路径
                                      7. 添加新路径
                                      8. D:\Program Files\nodejs
                                      9. 点击确定
                                      10. 重启电脑。
                                      11. 在 D: Drive 中尝试 npm install

                                      【讨论】:

                                        【解决方案25】:

                                        在尝试了所有方法(包括节点/npm 升级、缓存清理和还原代码)之后,除了一件简单的事情之外没有任何帮助:在开发/构建期间关闭 Windows 10 的实时保护。看起来最近的更新让它变得超级激进。

                                        【讨论】:

                                          【解决方案26】:

                                          npm login 必须在publish 之前

                                          【讨论】:

                                            【解决方案27】:

                                            对我来说是 Docker...

                                            在我关闭应用容器的那一刻,我可以毫无问题地进行 npm 安装

                                            P.S 我的节点版本是 14.15.5

                                            【讨论】:

                                              【解决方案28】:

                                              对于窗户,

                                              1. 下载最新推荐版本nodejs,这几天是node-v6.11.3-x64
                                              2. 用它卸载 nodejs。
                                              3. 转到C:\Users\{YourUsername}\AppData\Roaming文件夹并删除npmnpm-cache文件夹
                                              4. 再次运行nodejs的安装程序并安装它
                                              5. 默认情况下npm 3.10.10 应与node-v6.11.3-x64 一起安装。
                                              6. 它适用于 npm 3.10.10,但不适用于 5.3.X。 它也不适用于更高版本的节点(以上 node-v6.11.3-x64)

                                              【讨论】:

                                                【解决方案29】:

                                                npm cache verify 解决了我的问题。 我在做:ng new my-app 我遇到了类似的错误

                                                我有 节点版本:10.16.0
                                                npm v 6.9.0

                                                【讨论】:

                                                  【解决方案30】:

                                                  我的问题是执行命令(npm audit fix all)。我在关闭VSCODE的时候解决了,重新执行命令没有问题。

                                                  【讨论】:

                                                    猜你喜欢
                                                    • 2018-05-24
                                                    • 1970-01-01
                                                    • 2021-12-07
                                                    • 2019-01-31
                                                    • 2019-10-26
                                                    • 2019-11-04
                                                    • 1970-01-01
                                                    • 1970-01-01
                                                    • 2023-03-07
                                                    相关资源
                                                    最近更新 更多