配置 npm 以使用artifactory 作为 npm 注册表和 github 的代理来解决依赖关系

2023-12-20

我有一个无法访问互联网的构建服务器,我需要解决来自 github.com 和registry.npmjs.org 的依赖关系。构建服务器可以访问 Artifactory,因此我创建了一个 NPM 存储库来代理registry.npmjs.org,并且它正在工作,并且我刚刚创建了一个 VCS 存储库来代理 github.com。

我如何配置 npm 来解决这两个问题?由于这两个存储库是不同的类型,因此我无法将它们聚合到一个虚拟存储库中。 NPM 是否可以配置为解决这两者的依赖关系?


VCS 存储库与 NPM 依赖项的相关性为零。 VCS 存储库只是远程 git 服务器上一组 API 的网关,可帮助您缓存源二进制文件(即特定分支/标签甚至发布版本的 zip/tarball)。 npm 客户端不熟悉 Artifactory 为此类存储库公开的 REST 端点。

对于在 package.json 中引用 github 存储库的 NPM 包(请参阅作为依赖项的 URL 和作为依赖项的 Git URL 部分here https://docs.npmjs.com/files/package.json),你想看看 Artifactory 的依赖重写机制 https://www.jfrog.com/confluence/display/RTF/Npm+Registry#NpmRegistry-AutomaticallyRewritingExternalDependencies.

由于您的 NPM 客户端运行在无法访问互联网的计算机上,因此您自己的 package.json 文件不应直接依赖于“github 依赖项”,因为这些文件会使客户端绕过 ~/.npmrc 内的注册表配置并转到直接到github而不是Artifactory。

当项目的某个依赖项的 package.json 使用 github 依赖项,并且该包是通过 Artifactory 解析时,依赖项重写机制会在将 package.json 返回给客户端之前动态修改 package.json,以便后续的依赖项请求解析此类依赖项是通过 Artifactory 尝试的,而不是通过 github——这对于像您这样的用例来说是完美的。

总之,您应该专门使用 Artifactory 上的 NPM 存储库,但也要利用虚拟存储库的依赖项重写机制,以避免通过 github 直接解析依赖项。

HTH,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

配置 npm 以使用artifactory 作为 npm 注册表和 github 的代理来解决依赖关系 的相关文章

  • 如何在Github Actions中获取SECRETS的值?

    我正在尝试访问的价值SECRET发送到 GitHub Action 但我很挣扎 返回值如下 FILTERED 每次 无论键或原始值是什么 我可以访问ENVIRONMENT VARIABLES没有问题 所以我一定是在其他地方搞砸了 本质上 我
  • 将 GitHub 与另一个 Bug 跟踪器一起使用? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我参与了这个项目 Pinta http pinta project com 我们目前正在使用 GitHub 进行开发 我们都喜欢 Git 和 G
  • 如何使用 cypress 登录 Salesforce?

    我目前正在使用 cypress 进行一些测试 但是 我必须与 salesforce 进行一些测试 似乎我遇到了以下问题 哎呀 没有可以运行的测试 context Salesforce gt beforeEach gt cy request
  • 如何在一台电脑上拥有2个git用户?

    我想练习使用 GitHub 做拉取请求并学习如何观看git 差异不同用户之间 如何在 macOS 的终端上设置另一个用户帐户来执行此操作 如何在用户之间切换 充当第二用户有三个方面 1 GitHub账户 要以其他用户身份使用 GitHub
  • 准备要在 npm 上发布的 React 组件

    我有一个想要在 npm 中发布的组件 我只是通过从项目中的组件文件夹导入它来进行测试 我设法发布它 但现在我得到 node modules 中出现错误 index js 模块 解析失败 意外的标记 11 8 您可能需要一个适当的 加载器来处
  • Git推送大文件时远端意外挂断

    当我尝试推送到我的 bitbucket 存储库时 出现以下错误 事实上 在 GitHub 中也是如此 数物体 48 完成 增量压缩最多使用 2 个线程 压缩对象 100 38 38 完成 写入对象 100 48 48 1 95 MiB 38
  • 如何为 github 中两个分支之间的单个文件生成差异

    我需要为单个文件生成一个 diff 以显示两个版本之间的差异 这实际上是 github 中的标签 然后我想通过电子邮件将此差异发送给某人 因此差异的 github URL 将是理想的选择 github 比较视图将允许我对所有更改的文件执行此
  • 我无法在 WSL2 ON(ubuntu 终端)的 Windows 10 上使用 npm 命令

    我试图让 npm 命令起作用 但它不想这样做 正如我在标题中所说 我使用的是 Windows WSL2 我很久以前就已经用 Git Bash 安装了 Nodejs 但现在我需要它在我的 ubuntu 终端上工作 我该如何解决这个问题 我的U
  • Github 版本如何生成存档文件名?

    我刚刚在 github 上为我的 NFQL 软件创建了版本 这是发布页面 https github com vbajpai nfql releases https github com vbajpai nfql releases 对于最新版
  • node.js 和 npm 在 Windows 7 64 位旗舰版中没有网络访问权限

    注意 对于遇到此问题的其他人 我尝试了所有建议和所有研究 最后我格式化了硬盘并重新安装了windows 尽管从一开始就是全新安装 但某些 Windows 安装似乎根本无法与 Node 一起使用 据我所知 这是唯一的解决方案 首先 我已经发现
  • “git rm --cached”、“git Restore --staged”和“git reset”之间有什么区别

    我遇到了以下三种方法来取消暂存由命令 git add 暂存的文件 git rm cached
  • 从 master 更改为新的默认分支 git

    这是一个场景 我们有一个默认的分支 Master 我们以此为基础 创建分支并向上推等等 我们现在创建了一个Develop分支Master并将其设置为默认开发分支 我想知道的是 我现在如何知道我的 git pull 命令是否通过命令行请求默认
  • 如何使用 Nodejs 创建 Excel 文件?

    我是一名 Nodejs 程序员 现在我有一个数据表 我想将其保存为 Excel 文件格式 我该怎么做呢 我找到了一些 Node 库 但其中大多数是 Excel 解析器而不是 Excel 编写器 我使用的是 Linux 服务器 因此需要一些可
  • 如何列出所有 GitHub 用户?

    我正在开发一个网站 需要从 GitHub 爬取所有用户信息 至少是我们网站上的用户 我搜索了 GitHub API 没有找到答案 那么我有什么办法可以完成这份工作吗 我只有用户的电子邮件 我可以通过将电子邮件哈希值与头像 URL 进行比较来
  • Vue 监听 Vuex 提交吗?

    有没有一种方法可以监听 Vuex 提交 而不观察任何随提交而更改的属性 只是简单地找出是否发生了提交 我有一个 Filter 组件 想将其放入 NPM 包中 但我已经有一个用例 在该用例中 我希望设置一个 cookie 在选择过滤器时存储过
  • 如何查看 github 的 SSH 密钥?

    我最近收到一封来自 Github 的电子邮件 要求我检查我的 SSH 密钥 请检查您的钥匙并确保您 认出他们 如果您有任何疑问 请拒绝钥匙并 上传新密钥 如何在 ubuntu 11 10 上使用 git 检查我的密钥 您可以按照 GitHu
  • 如何删除 Github Desktop 上的本地分支?

    上周我将 Windows Github 升级到Github 桌面 https desktop github com 这肯定比他们上次为 Github Windows 所做的更新要快得多 它还有一个不错的提交视觉时间表 也许我很愚蠢 但是删除
  • React Native 初始化挂起

    我无法通过以下方式创建新的 React Native 项目react native init
  • 从自己的 gitlab 服务器安装节点模块

    我想从我们的 gitlab 服务器安装节点模块 这是存储库的链接 http ABCD GITLAB myGroup myNodeModule git http ABCD GITLAB myGroup myNodeModule git 根据n
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下

随机推荐