GitHub Actions Secrets未生效,Vue项目部署失败怎么办?

一国曼 阅读 16

在用GitHub Actions给Vue项目部署到Netlify时一直报403错误,怀疑是NPM_TOKEN密钥没读到。

我按照文档设置了仓库Secrets里的NPM_TOKEN,但在workflow里用$NPM_TOKEN时好像没生效。之前试过在步骤里加echo $NPM_TOKEN,结果输出为空。这是我的部署步骤:


- name: Deploy to Netlify
  uses: netlify/actions/netlify@master
  with:
    api_token: ${{ secrets.NETLIFY_TOKEN }}
    production部署命令: npm run build && npm publish

奇怪的是本地用相同token能正常发布,但GitHub Actions日志显示npm publish时提示认证失败。是不是Secrets的使用方式有问题?或者需要额外配置?

我来解答 赞 4 收藏
二维码
手机扫码查看
1 条解答
欧阳旗施
你这个配置有几个问题,改一下就行。

首先 secrets 是好的,但你的 workflow 语法写错了。GitHub Actions 里环境变量和 secrets 要用 ${{ }} 包起来,而你直接写了 $NPM_TOKEN,这当然读不到。

而且你在部署步骤用了 netlify/actions,但里面却执行 npm publish?这逻辑不对。Netlify 部署不需要发包到 npm,你是想部署前端页面吧?

如果你是要部署构建产物到 Netlify,根本不需要 NPM_TOKEN,你需要的是 NETLIFY_SITE_ID 和 NETLIFY_TOKEN。

正确的做法:

1. 确保你在 GitHub 仓库的 Secrets 里设置了:
- NETLIFY_TOKEN:从 Netlify 用户设置里生成的 CLI token
- (可选)NETLIFY_SITE_ID:你的站点 ID,可以在 site settings 里找到

2. 改 workflow 步骤:

- name: Deploy to Netlify
uses: netlify/actions/netlify@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
api-token: ${{ secrets.NETLIFY_TOKEN }}
site-id: ${{ secrets.NETLIFY_SITE_ID }}
production-deploy: true
build-command: npm run build
publish-dir: dist


3. 删掉 npm publish 那一行,那不是用来部署静态页面的,那是发包到 npmjs.com 用的。你现在这个操作是错的,所以报 403,因为没登录 npm。

总结:你混淆了 npm 发包和静态网站部署。Vue 项目打包后上传到 Netlify 就行,不需要 publish 到 npm。把上面那段 workflow 改了,再跑一次,基本就能好。
点赞 1
2026-02-11 10:05