Initial commit
This commit is contained in:
54
skills/web-artifacts-builder/scripts/bundle-artifact.sh
Executable file
54
skills/web-artifacts-builder/scripts/bundle-artifact.sh
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "📦 Bundling React app to single HTML artifact..."
|
||||
|
||||
# Check if we're in a project directory
|
||||
if [ ! -f "package.json" ]; then
|
||||
echo "❌ Error: No package.json found. Run this script from your project root."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if index.html exists
|
||||
if [ ! -f "index.html" ]; then
|
||||
echo "❌ Error: No index.html found in project root."
|
||||
echo " This script requires an index.html entry point."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Install bundling dependencies
|
||||
echo "📦 Installing bundling dependencies..."
|
||||
pnpm add -D parcel @parcel/config-default parcel-resolver-tspaths html-inline
|
||||
|
||||
# Create Parcel config with tspaths resolver
|
||||
if [ ! -f ".parcelrc" ]; then
|
||||
echo "🔧 Creating Parcel configuration with path alias support..."
|
||||
cat > .parcelrc << 'EOF'
|
||||
{
|
||||
"extends": "@parcel/config-default",
|
||||
"resolvers": ["parcel-resolver-tspaths", "..."]
|
||||
}
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Clean previous build
|
||||
echo "🧹 Cleaning previous build..."
|
||||
rm -rf dist bundle.html
|
||||
|
||||
# Build with Parcel
|
||||
echo "🔨 Building with Parcel..."
|
||||
pnpm exec parcel build index.html --dist-dir dist --no-source-maps
|
||||
|
||||
# Inline everything into single HTML
|
||||
echo "🎯 Inlining all assets into single HTML file..."
|
||||
pnpm exec html-inline dist/index.html > bundle.html
|
||||
|
||||
# Get file size
|
||||
FILE_SIZE=$(du -h bundle.html | cut -f1)
|
||||
|
||||
echo ""
|
||||
echo "✅ Bundle complete!"
|
||||
echo "📄 Output: bundle.html ($FILE_SIZE)"
|
||||
echo ""
|
||||
echo "You can now use this single HTML file as an artifact in Claude conversations."
|
||||
echo "To test locally: open bundle.html in your browser"
|
||||
Reference in New Issue
Block a user