Prerequisites
Node.js
Install Node.js (LTS version recommended)
pnpm
Package manager used by the project
Git
Version control system
Code Editor
VS Code or your preferred editor
Initial Setup
Install Node.js
We recommend using nvm to manage Node versions:
Fork the repository
- Go to angular/components
- Click the “Fork” button
- Clone your fork:
Windows Setup
For more details, see Microsoft’s WSL documentation.
Building the Project
Development Build
Development Server
Start the dev app with live reload:http://localhost:4200 and automatically reload on changes.
- Material Dev App
- CDK Dev App
Browse Material components:
- Navigate to
http://localhost:4200 - Select component from menu
- Test different configurations
Running Tests
Unit Tests
Use
--debug to manually connect a browser to Karma for debugging.E2E Tests
Linting
Working with Public API
When making changes to public APIs:Review API Changes
Approve API Changes
Getting Build Artifacts
CI stores build artifacts for each PR:Environment Variables
Optional environment variables for the dev app:Google Maps API Key
Disabling Git Hooks
If you don’t want automatic commit validation:- Commit message validation
- Pre-commit formatting
Git hooks help maintain code quality but can be disabled for certain workflows.
Development Workflow
Typical Workflow
Common Commands
Troubleshooting
Build fails with memory error
Build fails with memory error
Increase Node memory:
Tests fail randomly
Tests fail randomly
Clear caches:
Dev app won't start
Dev app won't start
Check port availability:
Git hooks not running
Git hooks not running
Reinstall hooks:
WSL performance issues
WSL performance issues
Clone repo inside WSL filesystem (not /mnt/c):
IDE Setup
VS Code
Recommended extensions:IntelliJ / WebStorm
- Enable TypeScript support
- Enable Angular support
- Configure Prettier as formatter
- Enable ESLint
Resources
Contributing Guide
How to contribute code
Coding Standards
Code style guidelines
GitHub Repo
Angular Components repository
Team Wiki
Internal team documentation
Getting Help
GitHub Discussions
Ask development questions
Gitter Chat
Real-time chat with team
Stack Overflow
Community Q&A
Discord
Angular community Discord