Frontend Enhancements: - Complete React TypeScript frontend with modern UI components - Distributed workflows management interface with real-time updates - Socket.IO integration for live agent status monitoring - Agent management dashboard with cluster visualization - Project management interface with metrics and task tracking - Responsive design with proper error handling and loading states Backend Infrastructure: - Distributed coordinator for multi-agent workflow orchestration - Cluster management API with comprehensive agent operations - Enhanced database models for agents and projects - Project service for filesystem-based project discovery - Performance monitoring and metrics collection - Comprehensive API documentation and error handling Documentation: - Complete distributed development guide (README_DISTRIBUTED.md) - Comprehensive development report with architecture insights - System configuration templates and deployment guides The platform now provides a complete web interface for managing the distributed AI cluster with real-time monitoring, workflow orchestration, and agent coordination capabilities. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # webpack
 | |
| 
 | |
| ## Removing unused languages from dynamic import
 | |
| 
 | |
| If a locale is imported dynamically, then all locales from date-fns are loaded by webpack into a bundle (~160kb) or split across the chunks. This prolongs the build process and increases the amount of space taken. However, it is possible to use webpack to trim down languages using [ContextReplacementPlugin].
 | |
| 
 | |
| Let's assume that we have a single point in which supported locales are present:
 | |
| 
 | |
| `config.js`:
 | |
| 
 | |
| ```js
 | |
| // `see date-fns/src/locale` for available locales
 | |
| export const supportedLocales = ['en-US', 'de', 'pl', 'it']
 | |
| ```
 | |
| 
 | |
| We could also have a function that formats the date:
 | |
| 
 | |
| ```js
 | |
| const getLocale = (locale) => import(`date-fns/locale/${locale}/index.js`) // or require() if using CommonJS
 | |
| 
 | |
| const formatDate = (date, formatStyle, locale) => {
 | |
|   return format(date, formatStyle, {
 | |
|     locale: getLocale(locale),
 | |
|   })
 | |
| }
 | |
| ```
 | |
| 
 | |
| In order to exclude unused languages we can use webpacks [ContextReplacementPlugin].
 | |
| 
 | |
| `webpack.config.js`:
 | |
| 
 | |
| ```js
 | |
| import webpack from 'webpack'
 | |
| import { supportedLocales } from './config.js'
 | |
| 
 | |
| export default const config = {
 | |
|   plugins: [
 | |
|     new webpack.ContextReplacementPlugin(
 | |
|       /^date-fns[/\\]locale$/,
 | |
|       new RegExp(`\\.[/\\\\](${supportedLocales.join('|')})[/\\\\]index\\.js$`)
 | |
|     )
 | |
|   ]
 | |
| }
 | |
| ```
 | |
| 
 | |
| This results in a language bundle of ~23kb .
 | |
| 
 | |
| [contextreplacementplugin]: https://webpack.js.org/plugins/context-replacement-plugin/
 |