NPM列表错误,提示缺少卸载可选依赖项的依赖项

时间:2019-03-06 19:52:48

标签: node.js npm

我有一个npm项目,该项目需要同时在Mac和Windows构建服务器上构建。 (这是针对Ionic移动应用程序的,但与我的问题无关。)我们的依赖项之一是对fsevents的依赖,在Windows计算机上,npm install跳过了此依赖。但是,如果我运行npm list --depth=0,则会返回有关缺少可选依赖项依赖项的错误。

要重现的最小package.json:

{
  "dependencies": {
    "@ionic/app-scripts": "^3.2.0"
  }
}

然后我运行npm install

C:\temp\nodetest>npm install
...
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

请注意,由于它不支持Windows操作系统,因此它跳过了fsevents

现在我运行npm list:

C:\temp\nodetest>npm list --depth=0
C:\temp\nodetest
`-- @ionic/app-scripts@3.2.3

npm ERR! missing: mkdirp@0.5.1, required by node-pre-gyp@0.10.3
npm ERR! missing: minimist@0.0.8, required by mkdirp@0.5.1
npm ERR! missing: minimatch@3.0.4, required by ignore-walk@3.0.1
... (many other errors like this)

所有错误均归因于卸载的可选依赖项的依赖项。有什么办法可以抑制这些错误?我没有在npm list documentation中看到任何内容。

我的最终目标是验证是否已安装所有依赖项,否则将使构建失败。我目前正在使用npm list来做到这一点。有一个更好的方法吗?我们不想在每个版本上都运行npm installnpm update,因为过去这样做时会遇到很多令人惊讶的错误。

我也尝试过npm list --depth=0 --no-optional(基于this question),但是看起来--no-optional命令与npm list没有关系。

0 个答案:

没有答案