使用 npm 从自定义注册表 (JFrog) 安装软件包时,npm Shrinkwrap 无法按预期工作。
当我安装
@zowe/[email protected]
而不使用命令 npm install @zowe/[email protected]
指定自定义注册表时,npm Shrinkwrap 工作得很好。
但是,当我尝试使用以下命令从自定义注册表安装相同的软件包时:
npm install @zowe/[email protected] --@zowe:registry=https://zowe.jfrog.io/zowe/api/npm/npm-release/
,收缩包装功能无法按预期工作。
迹象表明收缩包装被忽略了:
注:
我是 Zowe CLI 的开发人员之一,这是由 npm 中的错误引起的:https://github.com/npm/cli/issues/4583
Artifactory 和 Verdaccio 等第三方注册表不会在包元数据中实现
_hasShrinkwrap
标志。在这种情况下,npm cli 应该查找是否存在 npm-shrinkwrap.json 文件,但它没有查找并忽略它。所以目前我知道的唯一解决方法是直接从 NPM 注册表安装。