Deno导入私有GitHub仓库模块失败:Module not found问题排查
解决Deno从私有GitHub仓库导入模块失败的问题
问题场景
从私有GitHub仓库导入.ts文件时出现错误:
error: Module not found "https://raw.githubusercontent.com/<pathToTheFile>/index.d.ts".
已配置项目根目录的.env文件:
DENO_AUTH_TOKENS=<myGithubToken>@raw.githubusercontent.com
导入语句正确,Postman可正常获取该文件,但执行deno run --allow-env -L debug theFileWhichImportsFromGithub.ts仍报错。
解决方案
1. 确保环境变量被正确加载
Deno默认不会自动读取.env文件,必须添加--env参数才能加载:
deno run --allow-env --env -L debug theFileWhichImportsFromGithub.ts
或者手动在终端导出环境变量后运行:
export DENO_AUTH_TOKENS=<myGithubToken>@raw.githubusercontent.com && deno run --allow-env -L debug theFileWhichImportsFromGithub.ts
2. 验证令牌格式与权限
- 确认
DENO_AUTH_TOKENS格式为<token>@raw.githubusercontent.com,无多余空格或特殊字符。 - 检查GitHub令牌是否拥有
repo权限(访问私有仓库必需),若权限不足需在GitHub令牌设置页补充。
3. 用Deno配置文件替代环境变量
项目根目录创建deno.json,写入认证配置:
{ "authTokens": { "raw.githubusercontent.com": "<myGithubToken>" } }
之后直接运行命令即可,无需额外环境变量参数:
deno run --allow-env -L debug theFileWhichImportsFromGithub.ts
4. 清除Deno缓存并重新加载模块
缓存残留可能导致认证信息未更新,执行以下命令强制刷新:
deno cache --reload https://raw.githubusercontent.com/<pathToTheFile>/index.d.ts
刷新后再运行原脚本。
5. 检查Debug日志确认认证头
运行带-L debug的命令后,查看输出中的请求头,确认是否包含Authorization: token <yourToken>。若未出现,说明环境变量或配置文件未被正确读取,需重新检查配置格式。
内容的提问来源于stack exchange,提问作者tc v
相关产品推荐
相关产品推荐

