npm WARN notsup SKIPPING OPTIONAL DEPENDENCY:不支持的fsevents@1.0.14平台

Ais*_*ari 77 node.js npm minimatch

我 将我的minimatch版本更新为3.10.9后尝试运行此项目https://github.com/Soundnode/soundnode-app,即时收到此错误

npm WARN可选SKIPPING OPTIONAL DEPENDENCY:fsevents@^1.0.0(node_modules\webpack \node_modules\watchpack \node_modules\chokidar \node_modules\fsevents):npm WARN notsup SKIPPING OPTIONAL DEPENDENCY:fsevents@1.0.14不受支持的平台:want {" os":"darwin","arch":"any"}(当前:{"os":"win32","arch":"ia32"})

我的配置是Node v - 4.4.2 npm v- 3.10.9我正在使用32位Windows操作系统

pio*_*r.d 121

这是一个警告,而不是错误.它出现是因为它fsevents是一个可选的依赖项,仅在项目在macOS环境中运行时使用(该程序包提供"对Mac OS-X FSEvents的本机访问").

因为你在Windows上运行你的项目,fsevents所以跳过它是无关紧要的.

  • 是不是可选的并且依赖于自身的东西? (21认同)
  • 很好的答案,现在我该如何摆脱它? (16认同)
  • npm install --no-optional (9认同)
  • 这更像是一个理论问题.也许`条件依赖'会更好?命名很难.我想在保持简洁的同时为这个案例找到一个好名字并不容易. (5认同)
  • 我完全同意,@ DemPilafian.因此,我编辑了原始回复并删除了"仅".我个人对待错误之类的警告,但在这种情况下,恕我直言,这不应该被记录为警告,而是信息,因为在Windows环境中,你无法做任何事情来使警告消失. (5认同)
  • 绝对.SW开发中最难的事情.但是如果它是一个条件依赖,那么如果不满足条件,就不会像现在那样生成警告. (2认同)
  • _“这只是警告” _营造了自满的风险文化。我目睹了持续忽略警告直接导致的严重生产错误。 (2认同)
  • 真烦人。这使得每个 Windows 开发人员都会质疑他们的代码或设置。当我在 Windows 上编码时,为什么要关心 Mac-OS 警告。这是开发依赖项(?),而不是运行时依赖项。 (2认同)

nic*_*kl- 28

这仍然是一个问题,导致程序包安装中止,并且由于"不支持的平台"而未安装可选软件包的警告.

问题涉及"shrinkwrap"或package-lock.json在每个包管理器执行后持久化.后续尝试将继续失败,因为此文件被引用而不是package.json.

将这些选项添加到npm install命令应该再次设置.

   --no-optional argument will prevent optional dependencies from being installed.

   --no-shrinkwrap argument, which will ignore an available package lock or
                   shrinkwrap file and use the package.json instead.

   --no-package-lock argument will prevent npm from creating a package-lock.json file.
Run Code Online (Sandbox Code Playgroud)

完整命令如下所示:

    npm install --no-optional --no-shrinkwrap --no-package-lock
Run Code Online (Sandbox Code Playgroud)

  • 这不是一个解决方案,因为使用package-lock.json是一件好事,这个解决方案表明相反. (4认同)
  • 为仅用于消除警告的代码设置“--no-Optional”标志是否有风险?为什么没有默认设置? (2认同)

小智 19

使用参数 --force:

npm i -f
Run Code Online (Sandbox Code Playgroud)

  • 我确实使用此命令强制安装了一次,现在当我启动“npm install”时,我没有任何警告,谢谢! (2认同)