archy/image-recipe/build-frontend.sh

58 lines
1.3 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
# Build Archipelago Vue.js frontend for production
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
echo "🎨 Building Archipelago Frontend (Vue.js)"
echo ""
# Navigate to frontend directory
cd "$PROJECT_ROOT/neode-ui"
# Check if node_modules exists
if [ ! -d "node_modules" ]; then
echo "📦 Installing dependencies..."
npm install || {
echo "❌ npm install failed"
exit 1
}
fi
# Build for production
echo "🔨 Building production bundle (skipping type check for speed)..."
npm run build:docker || {
echo "❌ Build failed"
exit 1
}
# Create output directory
BUILD_DIR="$SCRIPT_DIR/build/frontend"
mkdir -p "$BUILD_DIR"
# Copy dist to build directory (check both possible output locations)
echo "📋 Copying build artifacts..."
if [ -d "../web/dist/neode-ui" ]; then
cp -r ../web/dist/neode-ui/* "$BUILD_DIR/" || {
echo "❌ Failed to copy build artifacts"
exit 1
}
elif [ -d "dist" ]; then
cp -r dist/* "$BUILD_DIR/" || {
echo "❌ Failed to copy build artifacts"
exit 1
}
else
echo "❌ Build output not found"
exit 1
fi
echo ""
echo "✅ Frontend built successfully!"
echo " Output: $BUILD_DIR"
echo " Files:"
ls -lh "$BUILD_DIR" | head -10
echo ""