mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-28 10:44:12 +00:00
* feat: v3 style of node body * Update src/renderer/extensions/vueNodes/components/LGraphNode.vue * fix: review's issues * fix: review's issue
2.0 KiB
2.0 KiB
ComfyUI Frontend Project Guidelines
Quick Commands
npm run: See all available commandsnpm run typecheck: Type checkingnpm run lint: Lintingnpm run format: Prettier formattingnpm run test:component: Run component tests with browser environmentnpm run test:unit: Run all unit testsnpm run test:unit -- tests-ui/tests/example.test.ts: Run single test file
Development Workflow
- Make code changes
- Run tests (see subdirectory CLAUDE.md files)
- Run typecheck, lint, format
- Check README updates
- Consider docs.comfy.org updates
Git Conventions
- Use [prefix] format: [feat], [bugfix], [docs]
- Add "Fixes #n" to PR descriptions
- Never mention Claude/AI in commits
External Resources
- PrimeVue docs: https://primevue.org
- ComfyUI docs: https://docs.comfy.org
- Electron: https://www.electronjs.org/docs/latest/
- Wiki: https://deepwiki.com/Comfy-Org/ComfyUI_frontend/1-overview
Project Philosophy
- Clean, stable public APIs
- Domain-driven design
- Thousands of users and extensions
- Prioritize clean interfaces that restrict extension access
Repository Navigation
- Check README files in key folders (tests-ui, browser_tests, composables, etc.)
- Prefer running single tests for performance
- Use --help for unfamiliar CLI tools
GitHub Integration
When referencing Comfy-Org repos:
- Check for local copy
- Use GitHub API for branches/PRs/metadata
- Curl GitHub website if needed
Common Pitfalls
- NEVER use
anytype - use proper TypeScript types - NEVER use
as anytype assertions - fix the underlying type issue - NEVER use
--no-verifyflag when committing - NEVER delete or disable tests to make them pass
- NEVER circumvent quality checks
- NEVER use
dark:prefix - always usedark-theme:for dark mode styles, for example:dark-theme:text-white dark-theme:bg-black - NEVER use
:class="[]"to merge class names - always useimport { cn } from '@/utils/tailwindUtil', for example:<div :class="cn('bg-red-500', { 'bg-blue-500': condition })" />