在GitHub Actions中无法安装私有npm包求助
解决GitHub私有npm包安装404问题
你的核心问题是:npm默认去npmjs.org拉取你的私有包,但你的包实际托管在GitHub Packages(组织私有包),所以才会出现404错误。下面是两种正确的配置方案:
方案一:使用actions/setup-node官方配置
直接通过setup-node指定GitHub Packages的registry和组织scope,无需手动修改.npmrc:
jobs: build-dev: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: "18.x" # 指定GitHub Packages的npm registry地址 registry-url: "https://npm.pkg.github.com/" # 绑定你的组织scope scope: "@MYORG" - name: 安装依赖并构建 run: | npm ci npm run build-dev env: # 传入GitHub PAT令牌 NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
方案二:手动配置.npmrc
如果需要更灵活的配置,可以直接写入.npmrc,关键是给组织scope指定对应的GitHub registry:
jobs: build-dev: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 18.x - name: 配置npm访问私有包 run: | # 告诉npm @MYORG的包从GitHub Packages拉取 echo "@MYORG:registry=https://npm.pkg.github.com/" >> .npmrc # 给GitHub registry配置认证令牌 echo "//npm.pkg.github.com/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc - name: 安装依赖并构建 run: | npm ci npm run build-dev
额外检查项
- 确认你的
NPM_TOKEN是GitHub个人访问令牌(PAT),且已勾选read:packages权限,同时该令牌拥有目标私有包所在仓库的读取权限 - 登录GitHub组织的Packages页面,确认
@MYORG/ui-package的1.0.0版本确实存在 - 检查项目package.json中的依赖声明,确保包名、版本号完全正确(比如没有拼写错误)
内容的提问来源于stack exchange,提问作者nick
相关产品推荐
相关产品推荐

