可选依赖性: 不支持 fsevents 平台

我在试着运行 这个项目。 在将 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
165097 次浏览

这是警告,不是错误。之所以会出现这种情况,是因为 fsevents是一个可选的依赖项,仅当项目在 macOS 环境中运行时才使用(该包提供了“本机访问 Mac OS-X FSEvents”)。

由于在 Windows 上运行项目,因此跳过 fsevents,认为它是不相关的。

这里有一个公关来修正这种行为: https://github.com/npm/cli/pull/169

这似乎仍然是一个问题,导致软件包安装中止,并警告可选软件包不安装,因为“不支持的平台”。

这个问题涉及到每次执行包管理器之后都会持久化的“ shrinkwra”或 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

快乐!

使用参数——力:

npm i -f

不支持 fsevents 的平台

目前最好的解决方案是 升级您的 npm 版本,它没有这个警告。

如果使用 Windows 计算机,一个简单的升级方法是使用工具 在 Windows 上升级 npm

这个回答 对我很有用,把这个加到你的 package.json

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