界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
部署与运维 · SKILL.md

firebase-hosting-basics

firebase-hosting-basics

【部署与运维】Firebase Hosting for static SPAs and web apps. Use when configuring firebase.json hosting block, deploying a static site to Firebase Hosting, creating preview channels for PR review, or setting up GitHub Actions CI/CD with Workload Identity Federation. Do NOT use for Firebase App Hosting (SSR). Triggers: firebase hosting, deploy angular spa, firebase…

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: firebase-hosting-basics description: >- Firebase Hosting for static SPAs and web apps. Use when configuring firebase.json hosting block, deploying a static site to Firebase Hosting, creating preview channels for PR review, or setting up GitHub Actions CI/CD with Workload Identity Federation. Do NOT use for Firebase App Hosting (SSR). Triggers: firebase hosting, deploy angular spa, firebase hosting deploy, preview channel, static site deploy, firebase ci/cd, hosting rewrite. allowed-tools: Bash, Read, Write, Edit, Glob

Iron Law

NO FIREBASE HOSTING DEPLOY WITHOUT WORKLOAD IDENTITY FEDERATION.

CI/CD uses GitHub Actions + WIF — never long-lived service account JSON keys. The GOOGLE_APPLICATION_CREDENTIALS environment variable must never point to a key file in any workflow or .env file.

Project Context

Before using this skill:

  • Check CLAUDE.md for the project's build tool and output path (e.g. dist/)
  • Confirm the firebase.json location (typically repo root)
  • Confirm whether a hosting block already exists in firebase.json

Build the web app before deploying:

# Adjust command to match your project's build setup
npm run build
# Confirm the output directory matches firebase.json "public" setting

What are you doing?

Configuring firebase.json? → Load references/configuration.md → Set "public" to the project's actual build output directory

Deploying live or to a preview channel? → Load references/deploying.md → For CI/CD with GitHub Actions: Load references/ci-cd-github-actions.md

Adding env vars for project ID or WIF? → Must sync across all env files (.env, .env.staging, .env.production) in the SAME PR → Run the project's env-sync check before committing

References

Related Skills

  • angular-spa — Angular build setup; produces the static output
  • firebase-basics — Firebase CLI auth, project setup, npx discipline
  • gcp-cloud-run — WIF setup patterns reused for Firebase Hosting CI/CD
  • deployment-engineer agent — for complex multi-environment pipeline setup

Local Development

Firebase Hosting has no local emulator equivalent — the project's dev server handles this:

# Serve locally (no Firebase needed) — adjust to project's dev command
npm run start

# Or test the production build locally
npx -y firebase-tools@latest emulators:start --only hosting
# Serves the build output at http://localhost:5000
我的收藏