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。
如果 dependencies
和 optionalDependencies
中都存在依赖项,则后者优先 (see here),因此 package.json
中的此更改不会影响您.
但是,如果确实如此,您始终可以使用 npm install --no-optional
(https://docs.npmjs.com/cli/install).
明确告诉 npm
跳过这些依赖项
我们使用 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。
如果 dependencies
和 optionalDependencies
中都存在依赖项,则后者优先 (see here),因此 package.json
中的此更改不会影响您.
但是,如果确实如此,您始终可以使用 npm install --no-optional
(https://docs.npmjs.com/cli/install).
npm
跳过这些依赖项