You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Deno中从Google Artifact Registry导入指定NPM模块,其余用公共源

在Deno中配置私有Google Artifact Registry的NPM作用域模块

你需要通过Deno的npmRegistries配置项来指定特定作用域对应的私有NPM注册表,而非直接在imports里映射URL。以下是正确的实现步骤:

1. 配置deno.jsonc的注册表映射

在项目根目录的deno.jsonc中添加npmRegistries字段,指定你的作用域对应的Google Artifact Registry地址:

{
  "npmRegistries": {
    "@example:registry": "https://europe-west1-npm.pkg.dev/mymodule/mymodule/"
  }
}

这里的键格式为[你的作用域]:registry,值填写GAR提供的NPM注册表完整地址。

2. 正常导入私有模块

配置完成后,直接使用npm:前缀导入模块即可,和公共NPM模块的写法一致:

import exampleModule from "npm:@example/mymodule";

为什么之前的方法失败?

  • 直接在imports里映射注册表根地址:Deno无法自动解析模块的版本和文件结构,NPM模块需要按版本规则寻址,不能直接指向注册表根URL。
  • 映射到tar包文件:Deno处理tar包时需要正确的UTF-8编码,你提供的URL里的双斜杠可能导致解析错误,而且这种方式无法自动处理版本更新,维护成本高。

可选:私有库认证(如果需要)

如果你的GAR仓库需要认证(而非公开),可以在配置里添加token信息,支持直接写死或使用环境变量:

{
  "npmRegistries": {
    "@example:registry": {
      "url": "https://europe-west1-npm.pkg.dev/mymodule/mymodule/",
      "token": "${env:GAR_NPM_TOKEN}" // 从环境变量读取token,更安全
    }
  }
}

配置完成后,运行deno cache your-entry-file.ts触发模块缓存,验证是否能成功拉取私有模块。

内容的提问来源于stack exchange,提问作者hallvors

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 12:07:45