在GitHub Registry发布的包安装失败,如何指定依赖从npmjs源获取?
解决GitHub私有包安装时依赖拉取源的问题
你遇到的问题根源是:用--registry把npm全局源改成GitHub Registry后,npm会尝试从GitHub源拉取所有依赖(包括typeorm这类公共包),但GitHub Registry没有这些公共包,所以报“Package not found”。以下是几种直接可行的解决方法:
方法一:安装时直接指定私有包的Scope源
执行这条命令,它会让npm仅从GitHub源拉取@narumir开头的私有包,其他公共依赖自动从npm官方源(registry.npmjs.com)获取:
npm install @narumir/my-package@0.0.1 --@narumir:registry=https://npm.pkg.github.com
方法二:项目本地配置.npmrc
在项目根目录创建或编辑.npmrc文件,添加以下内容:
@narumir:registry=https://npm.pkg.github.com
之后直接执行常规安装命令即可,npm会自动识别对应Scope的源:
npm install @narumir/my-package@0.0.1
方法三:全局配置Scope对应的源
如果经常需要安装@narumir下的私有包,可全局配置一次,后续所有该Scope的包都会自动从GitHub源拉取:
npm config set @narumir:registry https://npm.pkg.github.com
配置完成后,直接执行npm install @narumir/my-package@0.0.1即可。
(注:你提供的错误截图显示npm尝试从https://npm.pkg.github.com获取typeorm包,这正是问题核心——全局源被改成GitHub后,公共包也被导向私有源,自然找不到。)
内容的提问来源于stack exchange,提问作者narumir
相关产品推荐
相关产品推荐

