Sonatype Nexus 添加 optionalDependencies 到依赖

Sonatype Nexus adds optionalDependencies to dependencies

我们使用 Nexus 作为内部 NPM 存储库。无论出于何种原因,它将所有 optionalDependencies 添加到 dependencies

所以如果我发布(假设正确 JSON): { version: '1.0', dependencies: { a: '1' }, optionalDependencies: { b: '1', c: '1' } }

然后我得到 { version: '1.0', dependencies: { a: '1', b: '1', c: '1' }, optionalDependencies: { b: '1', c: '1' } }

在 metatada 中(例如,如果我通过浏览器请求它)和在安装包的 package.json 中。

有什么建议吗?

原来这是 npm 的隐藏 "features" 之一:参见 https://github.com/npm/npm/issues/3502

如果 dependenciesoptionalDependencies 中都存在依赖项,则后者优先 (see here),因此 package.json 中的此更改不会影响您.

但是,如果确实如此,您始终可以使用 npm install --no-optional (https://docs.npmjs.com/cli/install).

明确告诉 npm 跳过这些依赖项