Supabase Edge Functions分支下私有npm registry令牌配置问题
解决Supabase Edge Functions私有npm Registry(GitHub Packages)认证问题
核心解决方案步骤
在Supabase后台配置私有包认证密钥
进入Supabase项目的「Settings > Edge Functions > Secrets」,添加一个名为NPM_AUTH_TOKEN的密钥,值填写你的GitHub个人访问令牌(需具备read:packages权限,仅保留访问私有包的最小权限即可)。这个密钥不会被提交到代码库,仅在Supabase部署环境中生效。编写
.npmrc文件(可安全提交代码库)
为区分私有包和公共包,在Edge Functions目录下创建.npmrc,内容如下:# 公共包使用默认npm源 registry=https://registry.npmjs.org/ # 指定你的组织私有包指向GitHub Packages源 @your-org:registry=https://npm.pkg.github.com/ //npm.pkg.github.com/:_authToken=${NPM_AUTH_TOKEN}这里用环境变量占位符
${NPM_AUTH_TOKEN},部署时Supabase会自动替换为你配置的密钥值。Deno环境下的私有包引用
Edge Functions基于Deno,引用私有包时要使用Deno的npm包语法,格式为npm:@组织名/包名@版本号,示例:import { utils } from "npm:@your-org/your-private-package@1.0.0";部署验证
直接部署Edge Functions即可,Supabase会自动读取配置的密钥完成私有包的拉取认证,解决之前的403权限问题。本地测试时可通过deno run --allow-net --allow-env加载本地环境变量模拟,但最终建议在Supabase分支环境验证完整流程。
内容的提问来源于stack exchange,提问作者ps2goat
相关产品推荐
相关产品推荐

