我们已经使用私有注册表设置了我们的NPM配置文件(.npmrc)。
registry=https://artifactory.someHost.com/npm/libs
当我们运行NPM或YARN时,我们的第一级依赖项已成功从此注册表中提取。
但是,如果第1级依赖项依赖于第2级依赖项,则第2级依赖项将通过github或在第1级依赖项中定义的存储库中提取。
我们希望强制所有依赖项都通过我们的私有存储库和我们的私有存储库来提取。
我们如何配置?
答案 0 :(得分:1)
您是否执行了https://www.jfrog.com/confluence/display/RTF/Npm+Registry#NpmRegistry-AutomaticallyRewritingExternalDependencies中描述的步骤?
Artifactory似乎通过重写依赖关系来保持你的依赖树仅限于你的Artifactory服务器来支持这一点。
引用它,
Npm客户端请求的软件包经常使用外部 包中定义的依赖关系' package.json文件。这些 反过来,依赖关系可能需要额外的依赖关系。因此, 下载npm软件包时,您可能无法完全了解 原始包需要的完整依赖项集(无论是否 直接或传递)。因此,您有下载的风险 来自未知外部资源的恶意依赖。
管理这种风险,并保持最佳的消费习惯 通过Artifactory外部包,您可以指定一个" safe" 白名单,可以从中下载缓存的依赖项 Artifactory并配置为重写依赖关系以便Npm 客户端通过虚拟存储库访问依赖关系,如下所示:
Select the Enable Dependency Rewrite checkbox in the npm virtual repository advanced configuration. Specify a whitelist pattern of external resources from which dependencies may be downloaded. Specify the remote repository in which those dependencies should be cached. It is preferable to configure a dedicated remote repository for that purpose so it is easier to maintain.
答案 1 :(得分:0)
您是否尝试过使用yarn
的{{1}}选项,或将其写入--registry
?
例如为:
.yarnrc
或yarn --registry='https://artifactory.someHost.com/npm/libs'
:
--registry“https://artifactory.someHost.com/npm/libs”