AgentSkillsCN

local-development

在本地运行函数与 Web 应用,排查模拟器问题,使用 Storybook。当您需要在本地运行或调试代码时,此技能便能派上用场。

SKILL.md
--- frontmatter
name: local-development
description: Running functions and web app locally, troubleshooting emulator issues, Storybook. Use when running or debugging locally.

Local Development

When to Use

Use this skill when running the web app or functions locally, troubleshooting emulator issues, or running Storybook.

Important

The user runs functions and web app locally for testing. Claude writes code and creates PRs -- Claude does NOT deploy or run dev servers.

Running Functions Locally (user runs this)

bash
npx nx run functions:serve

This command:

  1. Builds the functions
  2. Copies .env.dev to dist/apps/functions/.env
  3. Starts watch mode for rebuilds (background)
  4. Runs firebase serve --only functions --project=dev on port 5001

Running Web App Locally (user runs this)

bash
npx nx run maple-spruce:serve

Runs on http://localhost:3000

Running Storybook

bash
npx nx run maple-spruce:storybook
# Opens http://localhost:6006

Building Storybook:

bash
npx nx run maple-spruce:build-storybook
# Output: dist/storybook/maple-spruce

Running Tests

bash
npm test

Deployment

User decides when to deploy to dev. Production deploys automatically via CI/CD on merge to main.

Troubleshooting Local Functions

Emulator prompts for environment variables

The Firebase emulator is not finding the .env file. This happens when:

  • The build clears dist/apps/functions/ before the .env is copied
  • A stale watch process is interfering

Fix:

bash
# Kill any stale processes
pkill -f "firebase serve"
pkill -f "nx run functions"

# Clean and restart
rm -rf dist/apps/functions
npx nx run functions:serve

Why this happens:

  • Firebase reads .env from dist/apps/functions/
  • The nx run functions:build clears this directory
  • The serve command copies .env.dev after build, before starting the emulator
  • If ordering is wrong or stale processes exist, the emulator starts without the .env

Key indicator it's working:

code
i  functions: Loaded environment variables from .env.