我必须使用 Azure Artifacts 才能访问私有 NPM 包吗?

Do I have to use Azure Artifacts to access private NPM packages?

我们有一个前端 JS 项目,它使用多个 public 和私有包,所有包都指向 NPM 的存储库。我们当前的构建管道是基于 AWS 的,为了获取私有包,我们只需在构建时添加一个带有适当令牌的 .npmrc 文件,然后像往常一样添加 npm install(或实际上是 yarn install) .这非常有效,因为本地开发人员继续像库存设置一样指向 NPM,并且私有访问密钥在每个开发人员级别或构建级别上进行管理,具有不同的权限。

在评估 Azure DevOps Pipelines 时,我们想做同样的事情,但最近的所有说明似乎都要求为 NPM 创建一个 Azure Artifacts 前端,并且还要在本地使用此镜像进行开发。对于已经具有既定模式的东西来说,这似乎有点矫枉过正。遵循此路径,运行 vsts-npm-auth 等,所有这些都是下载所需依赖项所必需的,或者我们可以坚持使用类似于我们现有的设置,将 .npmrc 文件注入到构建时间,然后安装?

Do I have to use Azure Artifacts to access private NPM packages?

我们不必使用 Azure Artifacts 来保存私有包,但这是推荐的方式。

我们可以使用 Azure Artifacts 提要来保存私有包并使用 npm task. And if we set up the npmjs.org as public upstream source 在构建管道中使用这些包,我们可以轻松地同时使用私有包和 public 包。

但是如果您使用第三方包存储库而不是 Azure Artifacts 来保存私有包,Npm/Npm 身份验证任务使我们能够使用来自它们的包。见 this:

如果您的 .npmrc 包含来自不同组织的 Azure Artifacts 注册表或使用第三方认证包存储库,您将需要设置 npm service connections 并在 customEndpoint 输入。