buildWeb method

Future<bool> buildWeb()

Flutter build web

Implementation

Future<bool> buildWeb() async {
  _logger.printStep('🔧 Building web...');

  try {
    // Build command args
    final args = ['build', 'web', '--release'];

    // Add custom build arguments if provided
    if (config.customBuildArgs != null &&
        config.customBuildArgs!.isNotEmpty) {
      final customArgs = config.customBuildArgs!
          .split(' ')
          .where((arg) => arg.isNotEmpty)
          .toList();
      args.addAll(customArgs);
      if (config.verbose) {
        _logger.printInfo('Custom build args: ${customArgs.join(' ')}');
      }
    }

    final result = await _runFlutterCommand(args);

    if (result.exitCode != 0) {
      _logger.printError('Flutter web build failed-----');
      _logger.printError('Error: ${result.stderr}');

      // if (config.verbose) {
      //   _logger.printError('Error: ${result.stderr}');
      // }
      return false;
    }

    // Verify build output exists
    final defaultBuildPath = path.join(config.buildDir, 'web');
    if (!Directory(defaultBuildPath).existsSync()) {
      _logger.printError('Build failed - $defaultBuildPath not found');
      return false;
    }

    _logger.printSuccess('Build completed');
    return true;
  } catch (e) {
    _logger.printError('Flutter build failed: $e');
    return false;
  }
}