
* chore: init CLAUDE.md * Add Copilot instructions * update gitignore * simplify --------- Co-authored-by: Mark Tolmacs <mark@lazycat.hu>
35 lines
1.3 KiB
Markdown
35 lines
1.3 KiB
Markdown
# 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 library
|
|
- **`packages/`** - Core packages: `@excalidraw/common`, `@excalidraw/element`, `@excalidraw/math`, `@excalidraw/utils`
|
|
- **`examples/`** - Integration examples (NextJS, browser script)
|
|
|
|
## Development Workflow
|
|
|
|
1. **Package Development**: Work in `packages/*` for editor features
|
|
2. **App Development**: Work in `excalidraw-app/` for app-specific features
|
|
3. **Testing**: Always run `yarn test:update` before committing
|
|
4. **Type Safety**: Use `yarn test:typecheck` to verify TypeScript
|
|
|
|
## Development Commands
|
|
|
|
```bash
|
|
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
|