mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-26 10:59:53 +00:00
* migration: npm to pnpm Step 1, package and lockfile * migration: npm to pnpm Step 2: docs / LLM instructions * migration: npm to pnpm Step 3: More documentation updates * migration: npm to pnpm Step 4: Even more documentation * migration: npm to pnpm Step 5: GitHub Actions * migration: npm to pnpm Step 6: PNPM installation in actions. This merge is going to be painful. * migration: npm to pnpm Unignore and add pnpm lockfile. * migration: npm to pnpm package-lock.json -> pnpm-lock.yaml * migration: explicit @primeuix/styled, move glob to prod deps * migration: more explicit deps required by the importmap plugin and vite * fix: missed merge artifact * fix: Make sure pnpm is available to install wrangler * migration: pnpm for dev-release.yaml * migration: new setup action version Won't work until that is updated and a new release is cut. * migration: Playwright needs uuid * migration: Add explicit deps for lobehub * chore(version-bump.yaml): change cache from npm to pnpm to optimize package management and improve build performance * migration: install pnpm in version-bump action --------- Co-authored-by: snomiao <snomiao@gmail.com>
2.6 KiB
2.6 KiB
Repository Guidelines
Project Structure & Module Organization
- Source:
src/(Vue 3 + TypeScript). Key areas:components/,views/,stores/(Pinia),composables/,services/,utils/,assets/,locales/. - Routing/i18n/entry:
src/router.ts,src/i18n.ts,src/main.ts. - Tests: unit/component in
tests-ui/andsrc/components/**/*.{test,spec}.ts; E2E inbrowser_tests/. - Public assets:
public/. Build output:dist/. - Config:
vite.config.mts,vitest.config.ts,playwright.config.ts,eslint.config.js,.prettierrc.
Build, Test, and Development Commands
pnpm dev: Start Vite dev server.pnpm dev:electron: Dev server with Electron API mocks.pnpm build: Type-check then production build todist/.pnpm preview: Preview the production build locally.pnpm test:unit: Run Vitest unit tests (tests-ui/).pnpm test:component: Run component tests (src/components/).pnpm test:browser: Run Playwright E2E tests (browser_tests/).pnpm lint/pnpm lint:fix: Lint (ESLint).pnpm format/format:check: Prettier.pnpm typecheck: Vue TSC type checking.
Coding Style & Naming Conventions
- Language: TypeScript, Vue SFCs (
.vue). Indent 2 spaces; single quotes; no semicolons; width 80 (see.prettierrc). - Imports: sorted/grouped by plugin; run
pnpm formatbefore committing. - ESLint: Vue + TS rules; no floating promises; unused imports disallowed; i18n raw text restrictions in templates.
- Naming: Vue components in PascalCase (e.g.,
MenuHamburger.vue); composablesuseXyz.ts; Pinia stores*Store.ts.
Testing Guidelines
- Frameworks: Vitest (unit/component, happy-dom) and Playwright (E2E).
- Test files:
**/*.{test,spec}.{ts,tsx,js}undertests-ui/,src/components/, andsrc/lib/litegraph/test/. - Coverage: text/json/html reporters enabled; aim to cover critical logic and new features.
- Playwright: place tests in
browser_tests/; optional tags like@mobile,@2xare respected by config.
Commit & Pull Request Guidelines
- Commits: Prefer Conventional Commits (e.g.,
feat(ui): add sidebar),refactor(litegraph): …. Use[skip ci]for locale-only updates when appropriate. - PRs: Include clear description, linked issues (
Fixes #123), and screenshots/GIFs for UI changes. Add/adjust tests and i18n strings when applicable. - Quality gates:
pnpm lint,pnpm typecheck, and relevant tests must pass. Keep PRs focused and small.
Security & Configuration Tips
- Secrets: Use
.env(see.env_example); do not commit secrets. - Backend: Dev server expects ComfyUI backend at
localhost:8188by default; configure via.env.