【问题标题】:How to fix 'Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})如何修复 fsevents@1.2.9 不支持的平台:想要 {"os":"darwin","arch":"any"}(当前:{"os":"win32","arch":"x64" })
【发布时间】:2019-09-29 21:55:19
【问题描述】:

测试二进制 二进制没问题 npm WARN rollback 回滚 node-pre-gyp@0.12.0 失败(这可能是无害的):

EPERM: 不允许操作,lstat 'C:\Users\orca yoon\Documents\IonicProjects\starters\epic\node_modules\fsevents\node_modules'

npm 通知创建了一个锁文件作为 package-lock.json。你应该承诺 这个文件。

npm WARN 可选跳过可选依赖:fsevents@1.2.9 (node_modules\fsevents):

npm WARN notsup 跳过可选依赖:不支持的平台 对于 fsevents@1.2.9:想要 {"os":"darwin","arch":"any"}(当前: {"os":"win32","arch":"x64"})

添加了来自 1050 个贡献者的 1105 个包,并在 445.94 秒内审核了 53269 个包 发现 1 个高危漏洞 运行npm audit fix 来修复它们,或者运行npm audit 了解详情

【问题讨论】:

标签: ionic-framework npm


【解决方案1】:
  • 首先,

管理员角色运行您的命令提示符powershell。然后你会被PERMISSION ERROR 避开。

  • 第二,

忽略npm audit fix。它仅建议您更新所有 package.json 依赖项最新。您应该保留package.json 中阐明的设置。

  • 第三,

如果你在 ubuntu 或 OS X 上工作,我猜你不会遇到这个问题。


PS:

根据您的回复,我想考虑一下解决方法。

  • 删除本地 node_modules & package-lock.json
  • npm cache verify 清理 npm 缓存
  • 通过 sudo npm i -g npm 更新 global npm
  • 通过npm i重新安装本地 node_modules

希望这可能会有所帮助。

【讨论】:

  • 在 ubuntu 虚拟机上工作得到了同样的错误。 npm WARN notsup 跳过可选依赖:fsevents@1.2.9 不支持的平台:想要 {"os":"darwin","arch":"any"}(当前:{"os":"linux","arch": "x64"}) npm verb notsup 跳过可选依赖:有效操作系统:darwin npm verb notsup 跳过可选依赖:有效 Arch:任何 npm 动词 notsup 跳过可选依赖:实际操作系统:linux
  • @KojiD'infinte 我已经更新了答案。请检查 PS:下面。
  • 以上没有帮助。 fsevents 是仅适用于 MacOS 的软件包,即使您删除 node_modules 文件夹并重新安装,此警告也不会消失。在我的应用程序(vue.js v2.6)中,这个 fsevents 是来自 fuse.js 的依赖,它用于任何事情。我已经习惯了这些警告。
  • > “如果你在 ubuntu 或 OS X 上工作,我猜你不会遇到这个问题。”什么? Ubuntu 是 Linux,不是 Darwin,你当然会面临同样的问题!
  • 我使用的是 Ubuntu 20.04,PS 运行良好
【解决方案2】:

当在 ionic 或其他任何地方看到此类消息时,请运行 npm audit fix 并查看您是否可以成功遵循给定的建议来解决所有“高严重性漏洞”问题并将生成的更新依赖项贡献回给定的代码库.

这里发生的是一个名为chokidar 的包被用于“监视”文件系统目录中的“事件”(例如添加的文件)。 chokidar 是 Linux、Windows 和 Mac 特定的文件系统监视包的包装器,其中 fsevents 是 Mac 的变体。所以,我很确定任何使用chokidar 的东西都会有fsevents 作为可选依赖项,但正如其他人所说,这个WARN 消息可以安全地忽略,因为chokidar 支持所有常见的桌面架构。

【讨论】:

    【解决方案3】:

    我找到了解决方案,这就是我所做的:

    打开您的 package-lock.json

    找到node_modules/fsevents,里面有个叫"os"的东西,我只有这个:

     "os": [
            "darwin",
          ],
    

    所以我的操作系统是 windows 10 64 bits 我刚刚在“os”中添加了我的操作系统,结果是这样的:

     "os": [
            "darwin",
            "win32"
          ],
    

    然后保存并解决,这样做之后我可以安装我试图安装但我无法安装的包。

    【讨论】:

    • 这看起来像一个肮脏的黑客,但它是唯一为我解决它的事情。谢谢
    • 这里一样,一如既往的脏,但我会接受它并去哈哈
    【解决方案4】:

    如果你像我一样,因为同时使用两个不同的包管理器(例如 yarn 和 npm)而遇到这个问题,你可以简单地删除锁定文件并重新运行你的包管理器。

    rm package-lock.json
    

    下次运行包管理器时将重新生成锁定文件。尝试使用npm upgrade 升级软件包时出现此错误。删除锁文件后,升级顺利进行,锁文件创建正确。

    【讨论】:

      【解决方案5】:

      当我今天刚遇到这个问题时,我阅读了第一个解决方案,但首先尝试了一个

      首先删除 Package-lock.json 和 node-modules 目录

      运行这些命令,它应该可以工作。

      rm -rf node-modules package-lock.json
      npm install
      

      像一个魅力一样工作,也许它会帮助别人。

      【讨论】:

        【解决方案6】:

        如果您将 IOS 作为平台添加到项目并在 Windows 或 Linux 上运行 npm i,则会出现此警告。由于无论如何您都无法在这些系统上构建 IOS 软件包,因此您可以放心地忽略此警告。

        【讨论】:

          【解决方案7】:

          我遇到了同样的问题:

          1. 已删除 package-lock.json
          2. npm 安装

          中提琴,它对我有用

          【讨论】:

          • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
          【解决方案8】:

          您必须在 package.json 文件中添加 win64

          例如

          {"os":"darwin,linux","arch":"any"} 将替换为

          {"os":"darwin,linux,win32,win64","arch":"any"}

          【讨论】:

          • 我的 package.json 没有 {"os":"darwin,linux","arch":"any"} 但我仍然收到消息 npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform对于 fsevents@1.2.12:想要 {"os":"darwin","arch":"any"}(当前:{"os":"win32","arch":"x64"})
          猜你喜欢
          • 2023-03-13
          • 2020-02-20
          • 2021-08-31
          • 1970-01-01
          • 2017-06-08
          • 2015-12-14
          • 1970-01-01
          • 2021-10-05
          • 2012-09-27
          相关资源
          最近更新 更多