You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							177 lines
						
					
					
						
							4.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							177 lines
						
					
					
						
							4.7 KiB
						
					
					
				
								# Dependency Management — Best Practices
							 | 
						|
								
							 | 
						|
								> **Agent role**: Reference this file for dependency management strategies and
							 | 
						|
								  best practices when working with software projects.
							 | 
						|
								
							 | 
						|
								## Dependency Management Best Practices
							 | 
						|
								
							 | 
						|
								### Pre-build Validation
							 | 
						|
								
							 | 
						|
								- **Check Critical Dependencies**:
							 | 
						|
								
							 | 
						|
								  Validate essential tools before executing build
							 | 
						|
								  scripts
							 | 
						|
								
							 | 
						|
								- **Use npx for Local Dependencies**: Prefer `npx tsx` over direct `tsx` to
							 | 
						|
								
							 | 
						|
								  avoid PATH issues
							 | 
						|
								
							 | 
						|
								- **Environment Consistency**: Ensure all team members have identical dependency
							 | 
						|
								
							 | 
						|
								  versions
							 | 
						|
								
							 | 
						|
								### Common Pitfalls
							 | 
						|
								
							 | 
						|
								- **Missing npm install**: Team members cloning without running `npm install`
							 | 
						|
								
							 | 
						|
								- **PATH Issues**: Direct command execution vs. npm script execution differences
							 | 
						|
								
							 | 
						|
								- **Version Mismatches**: Different Node.js/npm versions across team members
							 | 
						|
								
							 | 
						|
								### Validation Strategies
							 | 
						|
								
							 | 
						|
								- **Dependency Check Scripts**: Implement pre-build validation for critical
							 | 
						|
								
							 | 
						|
								  dependencies
							 | 
						|
								
							 | 
						|
								- **Environment Requirements**:
							 | 
						|
								
							 | 
						|
								  Document and enforce minimum Node.js/npm versions
							 | 
						|
								
							 | 
						|
								- **Onboarding Checklist**: Standardize team member setup procedures
							 | 
						|
								
							 | 
						|
								### Error Messages and Guidance
							 | 
						|
								
							 | 
						|
								- **Specific Error Context**:
							 | 
						|
								
							 | 
						|
								  Provide clear guidance when dependency issues occur
							 | 
						|
								
							 | 
						|
								- **Actionable Solutions**: Direct users to specific commands (`npm install`,
							 | 
						|
								
							 | 
						|
								  `npm run check:dependencies`)
							 | 
						|
								
							 | 
						|
								- **Environment Diagnostics**: Implement comprehensive environment validation
							 | 
						|
								
							 | 
						|
								  tools
							 | 
						|
								
							 | 
						|
								### Build Script Enhancements
							 | 
						|
								
							 | 
						|
								- **Early Validation**: Check dependencies before starting build processes
							 | 
						|
								
							 | 
						|
								- **Graceful Degradation**: Continue builds when possible but warn about issues
							 | 
						|
								
							 | 
						|
								- **Helpful Tips**: Remind users about dependency management best practices
							 | 
						|
								
							 | 
						|
								## Environment Setup Guidelines
							 | 
						|
								
							 | 
						|
								### Required Tools
							 | 
						|
								
							 | 
						|
								- **Node.js**: Minimum version requirements and LTS recommendations
							 | 
						|
								
							 | 
						|
								- **npm**: Version compatibility and global package management
							 | 
						|
								
							 | 
						|
								- **Platform-specific tools**: Android SDK, Xcode, etc.
							 | 
						|
								
							 | 
						|
								### Environment Variables
							 | 
						|
								
							 | 
						|
								- **NODE_ENV**: Development, testing, production environments
							 | 
						|
								
							 | 
						|
								- **PATH**: Ensure tools are accessible from command line
							 | 
						|
								
							 | 
						|
								- **Platform-specific**: Android SDK paths, Xcode command line tools
							 | 
						|
								
							 | 
						|
								### Validation Commands
							 | 
						|
								
							 | 
						|
								```bash
							 | 
						|
								
							 | 
						|
								# Check Node.js version
							 | 
						|
								
							 | 
						|
								node --version
							 | 
						|
								
							 | 
						|
								# Check npm version
							 | 
						|
								
							 | 
						|
								npm --version
							 | 
						|
								
							 | 
						|
								# Check global packages
							 | 
						|
								
							 | 
						|
								npm list -g --depth=0
							 | 
						|
								
							 | 
						|
								# Validate platform tools
							 | 
						|
								
							 | 
						|
								npx capacitor doctor
							 | 
						|
								
							 | 
						|
								```
							 | 
						|
								
							 | 
						|
								## Dependency Troubleshooting
							 | 
						|
								
							 | 
						|
								### Common Issues
							 | 
						|
								
							 | 
						|
								1. **Permission Errors**: Use `sudo` sparingly, prefer `npm config set prefix`
							 | 
						|
								
							 | 
						|
								2. **Version Conflicts**: Use `npm ls` to identify dependency conflicts
							 | 
						|
								
							 | 
						|
								3. **Cache Issues**: Clear npm cache with `npm cache clean --force`
							 | 
						|
								
							 | 
						|
								4. **Lock File Issues**: Delete `package-lock.json` and `node_modules`,
							 | 
						|
								
							 | 
						|
								  then reinstall
							 | 
						|
								
							 | 
						|
								### Resolution Strategies
							 | 
						|
								
							 | 
						|
								- **Dependency Audit**: Run `npm audit` to identify security issues
							 | 
						|
								
							 | 
						|
								- **Version Pinning**: Use exact versions for critical dependencies
							 | 
						|
								
							 | 
						|
								- **Peer Dependency Management**: Ensure compatible versions across packages
							 | 
						|
								
							 | 
						|
								- **Platform-specific Dependencies**: Handle different requirements per platform
							 | 
						|
								
							 | 
						|
								## Best Practices for Teams
							 | 
						|
								
							 | 
						|
								### Onboarding
							 | 
						|
								
							 | 
						|
								- **Environment Setup Script**: Automated setup for new team members
							 | 
						|
								
							 | 
						|
								- **Version Locking**: Use `package-lock.json` and `yarn.lock` consistently
							 | 
						|
								
							 | 
						|
								- **Documentation**: Clear setup instructions with troubleshooting steps
							 | 
						|
								
							 | 
						|
								### Maintenance
							 | 
						|
								
							 | 
						|
								- **Regular Updates**: Schedule dependency updates and security patches
							 | 
						|
								
							 | 
						|
								- **Testing**: Validate changes don't break existing functionality
							 | 
						|
								
							 | 
						|
								- **Rollback Plan**: Maintain ability to revert to previous working versions
							 | 
						|
								
							 | 
						|
								**See also**:
							 | 
						|
								  `.cursor/rules/development/software_development.mdc` for core development principles.
							 | 
						|
								
							 | 
						|
								**Status**: Active dependency management guidelines
							 | 
						|
								**Priority**: Medium
							 | 
						|
								**Estimated Effort**: Ongoing reference
							 | 
						|
								**Dependencies**: software_development.mdc
							 | 
						|
								**Stakeholders**: Development team, DevOps team
							 | 
						|
								
							 | 
						|
								## Model Implementation Checklist
							 | 
						|
								
							 | 
						|
								### Before Dependency Changes
							 | 
						|
								
							 | 
						|
								- [ ] **Current State Review**: Check current dependency versions and status
							 | 
						|
								- [ ] **Impact Analysis**: Assess impact of dependency changes on codebase
							 | 
						|
								- [ ] **Compatibility Check**: Verify compatibility with existing code
							 | 
						|
								- [ ] **Security Review**: Review security implications of dependency changes
							 | 
						|
								
							 | 
						|
								### During Dependency Management
							 | 
						|
								
							 | 
						|
								- [ ] **Version Selection**: Choose appropriate dependency versions
							 | 
						|
								- [ ] **Testing**: Test with new dependency versions
							 | 
						|
								- [ ] **Documentation**: Update dependency documentation
							 | 
						|
								- [ ] **Team Communication**: Communicate changes to team members
							 | 
						|
								
							 | 
						|
								### After Dependency Changes
							 | 
						|
								
							 | 
						|
								- [ ] **Comprehensive Testing**: Test all functionality with new dependencies
							 | 
						|
								- [ ] **Documentation Update**: Update all relevant documentation
							 | 
						|
								- [ ] **Deployment Planning**: Plan and execute deployment strategy
							 | 
						|
								- [ ] **Monitoring**: Monitor for issues after deployment
							 | 
						|
								
							 |