配置 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 的代理来解决依赖关系 的相关文章

  • 如何在 Angular 模板中嵌入 GitHub gist?

    角度忽略script其模板中包含标签 但加载 GitHub gist 需要它们 执行此操作的最佳做 法是什么 使用iframe 创造script动态标记 或者是其他东西 一种方法是创建一个iframe with script里面并在你希望你
  • gyp ERR,Npm 无法获取本地颁发者证书

    我正在致力于 Windows 10 的全新安装 唯一的事情是我安装了 cygwin 以在 cmd 中获取 unix 命令 当我打字时npm install g angular cli它下载了必要的文件 但我收到错误 gyp ERR conf
  • npm install 始终使用神器注册表并忽略 .npmrc 文件

    我的 npmrc 文件以前包含registry https company jfrog io如此一来npm install使用了该注册表 现在我想在我的个人项目中使用公共注册表 但即使我删除了 npmrc 文件 甚至在包含公共注册表的项目根
  • 我可以通过链接分享我的私人 GitHub 存储库吗?

    我在 GitHub 上的私人存储库中有一个 Java 应用程序 我想与没有帐户的人共享它 我在网站上没有找到任何与此相关的选项 有没有办法做到这一点 协作者只能是 GitHub 用户 无法在非 Github 用户之间共享私有存储库 您需要
  • 如何使用特定版本的NPM?

    如何切换我正在使用的 npm 版本 现在 npm v 1 1 65 但我需要 1 0 x 我尝试过 但出现错误 npm version 1 0 npm ERR version No package json found 有人知道如何使用不同
  • 将“npm run start”的输出写入文件

    我想捕获的输出npm run start在一个文件中 我遇到了大量错误 我想更好地控制如何筛选输出 当我尝试时 npm run start gt log txt 我得到一个非常简短的文件 8 行 其结尾为 34m 39m 90m wdm 3
  • 发布到 npm 时出现问题

    所以我尝试使用 React 构建一个开源项目并将其推送到 npm 问题是 我的组件虽然在测试环境中运行良好 安装到其他组件 但当我将其发布到 npm 并下载包并尝试访问它时 它给了我一个错误 这是代码的一个小示例 import React
  • 角度代理配置不起作用

    我不明白我错在哪里 附 已经尝试通过这个答案修复但仍然不起作用 Angular CLI 代理到后端不起作用 https stackoverflow com questions 39809008 angular cli proxy to ba
  • readthedocs 中自动生成的索引文件

    我无法上传到阅读文档 http docs readthedocs io en latest 我为我的项目准备的文档 我正在尝试了解问题所在 该文档在本地构建良好make html但我无法上传 GitHub 项目是ASCII基因组 https
  • 如何上传文件 - sails.js

    我可以下载图像和 pdf 但无法下载文档文件 doc pptx odt 下载文档 doc pptx odt 时 仅将其下载为 ZIP XML 文件 我可以做什么 我在用着 填写上传文件文档 https github com balderda
  • Haskell Stack 从 github 安装包依赖项

    是否可以使用 Haskell 堆栈从 github 安装软件包的版本 例如在一个 cabal or a stack yaml文件 如何在 git repo branch revision 上指向依赖项 对于堆栈 The 的文档stack y
  • React-Native 打包器失败:模块名称重复

    这在开发过程中似乎是随机发生的 当尝试跑步时npm start or react native run ios 我收到以下错误 Failed to build DependencyGraph providesModule naming co
  • 致命:.git/info/refs 无效:这是一个 git 存储库吗?

    我有一个托管在 Assembla 上的 Git 存储库 我正在尝试执行以下操作 git push u origin master 我一遍又一遍地收到以下错误 fatal https url repo name git info refs n
  • “npm install”给出错误消息“无效”,这是什么?

    请检查图片 我想这与package json但我不太确定 回复评论以获取更多信息 最初我是安装material ui 详细消息在这里 I react boilerplate gt npm install Material ui 电子邮件受保
  • 从 GitHub 上托管的 Spring Cloud Config Server 访问存储库的身份验证问题

    我在 GitHub 上的存储库中托管配置 如果我将回购公开 一切都好 但如果我将其设为私有 我将面临 org eclipse jgit errors TransportException https github com my user m
  • 如何使用脚本在 GitHub 上发布构建工件资产?

    我正在尝试找出一种在 GitHub 上生成构建的单命令流程 我预计要做的是运行某种命令 比如 make release make release 脚本会构建发布工件 然后以某种方式将其上传到 GitHub 然而 我对如何在 GitHub 上
  • github - 启用分支锁

    作为 GitHub 管理员 我想为所有用户锁定 GitHub 中的特定分支 例如如果我不希望任何人推送到主 生产或项目分支 我该怎么做 有没有办法直接锁定 GitHub 服务器上的分支 而不是使用任何客户端挂钩 是否有任何第三方工具 API
  • 如何使用 GitHub GraphQL API 查看问题已在项目的列之间转移?

    我想确定卡片何时从一列移动到另一列GitHub 项目板 https help github com articles about project boards 使用 GitHub GraphQL API 我可以在项目板中列出所有问题 例如
  • 为什么我的 Github 托管网站响应 HTTP 302 而不是 200?

    我拥有该域名penkov id au http penkov id au 我主持一个blog http michael penkov id au blog 2014 01 02 reinventing the wheel html usin
  • 使当前提交成为 Git 存储库中唯一(初始)提交?

    我目前有一个本地 Git 存储库 我将其推送到 Github 存储库 本地存储库有约 10 次提交 Github 存储库是其同步副本 我想要做的是从本地 Git 存储库中删除所有版本历史记录 以便存储库的当前内容显示为唯一提交 因此存储库中

随机推荐