ShowerLoop-cc/quick-build.sh

45 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
set -e
echo "🚀 Starting quick build (skipping compression)..."
# Build JavaScript bundles with Rollup
echo "📦 Building JavaScript bundles..."
npm run build:js
# Create utils.js re-export file in static for development
echo "📝 Creating utils.js module alias in static..."
echo "// Re-export everything from the minified module
export * from './utils.modern.min.js';" > static/js/utils.js
# Run Hugo build with minification
echo "🏗️ Building site with Hugo..."
hugo --minify -d public
# Process JavaScript without compression
echo "🔧 Processing JavaScript files (skipping compression)..."
SKIP_COMPRESSION=1 ./optimize-js.sh
# Process CSS
echo "🎨 Optimizing CSS..."
if [ -d "public/css" ]; then
mkdir -p public/css/optimized
# Process CSS files with CSSO
echo "Processing CSS files..."
for CSS_FILE in public/css/vendor/*.css public/css/*.css; do
if [ -f "$CSS_FILE" ]; then
FILENAME=$(basename "$CSS_FILE")
echo "Optimizing $FILENAME..."
npx csso "$CSS_FILE" -o "public/css/optimized/$FILENAME"
fi
done
# Update HTML files to reference optimized CSS
echo "Updating CSS references..."
find public -name "*.html" -type f -exec sed -i '' 's|/css/vendor/|/css/optimized/|g' {} \;
find public -name "*.html" -type f -exec sed -i '' 's|/css/app.min.css|/css/optimized/app.min.css|g' {} \;
find public -name "*.html" -type f -exec sed -i '' 's|/css/custom.css|/css/optimized/custom.css|g' {} \;
fi
echo "✅ Quick build complete! Site is ready in the 'public' directory."