
* chore: init CLAUDE.md * Add Copilot instructions * update gitignore * simplify --------- Co-authored-by: Mark Tolmacs <mark@lazycat.hu>
1.3 KiB
1.3 KiB
CLAUDE.md
Project Structure
Excalidraw is a monorepo with a clear separation between the core library and the application:
packages/excalidraw/
- Main React component library published to npm as@excalidraw/excalidraw
excalidraw-app/
- Full-featured web application (excalidraw.com) that uses the librarypackages/
- Core packages:@excalidraw/common
,@excalidraw/element
,@excalidraw/math
,@excalidraw/utils
examples/
- Integration examples (NextJS, browser script)
Development Workflow
- Package Development: Work in
packages/*
for editor features - App Development: Work in
excalidraw-app/
for app-specific features - Testing: Always run
yarn test:update
before committing - Type Safety: Use
yarn test:typecheck
to verify TypeScript
Development Commands
yarn test:typecheck # TypeScript type checking
yarn test:update # Run all tests (with snapshot updates)
yarn fix # Auto-fix formatting and linting issues
Architecture Notes
Package System
- Uses Yarn workspaces for monorepo management
- Internal packages use path aliases (see
vitest.config.mts
) - Build system uses esbuild for packages, Vite for the app
- TypeScript throughout with strict configuration