npm WARN notsup 跳过可选依赖项:fsevents 不受支持的平台

npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents

我正在尝试 运行 this project。 将 minimatch 版本更新到 3.10.9 后,出现以下错误:

npm WARN optional 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: Unsupported platform for fsevents@1.0.14: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})

我的配置:

Node v - 4.4.2
npm v - 3.10.9
32 bit windows OS

这是警告,不是错误。出现是因为 fsevents 是一个可选的依赖项,仅当项目在 macOS 环境下 运行 时使用(包提供 'Native Access to Mac OS-X FSEvents')。

并且由于您 运行 在 Windows 上完成项目,fsevents 被认为无关紧要而被跳过。

这里有一个修复此行为的 PR:https://github.com/npm/cli/pull/169

这似乎仍然是一个问题,导致软件包安装被中止,并显示由于 "Unsupported platform".

未安装可选软件包的警告

问题与 "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.

完整的命令如下所示:

    npm install --no-optional --no-shrinkwrap --no-package-lock

nJoy!

使用参数 --force:

npm i -f

Unsupported platform for fsevents

目前最好的解决方案是upgrading your version of npm,不会有这个警告。

如果使用 Windows 机器,升级的简单方法是使用工具 Upgrade npm on Windows

This answer 为我工作,将此添加到您的 package.json

"optionalDependencies": {
    "fsevents": "^2.3.2"
}