Initial commit with translated description
This commit is contained in:
57
scripts/bundle-artifact.sh
Normal file
57
scripts/bundle-artifact.sh
Normal file
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
# Bundle a Vite React project into a single HTML file
|
||||
# Usage: bash scripts/bundle-artifact.sh
|
||||
# Run from project root (where package.json is)
|
||||
|
||||
set -e
|
||||
|
||||
echo "📦 Bundling to single HTML file..."
|
||||
|
||||
# Check if we're in a project directory
|
||||
if [ ! -f "package.json" ]; then
|
||||
echo "❌ Error: No package.json found. Run this 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."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Install bundling dependencies if needed
|
||||
if ! npm ls parcel > /dev/null 2>&1; then
|
||||
echo "📦 Installing bundling dependencies..."
|
||||
npm install -D parcel @parcel/config-default parcel-resolver-tspaths html-inline
|
||||
fi
|
||||
|
||||
# Create .parcelrc if it doesn't exist
|
||||
if [ ! -f ".parcelrc" ]; then
|
||||
echo "⚙️ Creating Parcel config..."
|
||||
cat > .parcelrc << 'EOF'
|
||||
{
|
||||
"extends": "@parcel/config-default",
|
||||
"resolvers": ["parcel-resolver-tspaths", "..."]
|
||||
}
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Build with Parcel
|
||||
echo "🔨 Building with Parcel..."
|
||||
npx parcel build index.html --no-source-maps --dist-dir dist-parcel
|
||||
|
||||
# Inline all assets
|
||||
echo "📄 Inlining assets into single HTML..."
|
||||
npx html-inline -i dist-parcel/index.html -o bundle.html -b dist-parcel
|
||||
|
||||
# Clean up
|
||||
rm -rf dist-parcel .parcel-cache
|
||||
|
||||
# Get file size
|
||||
SIZE=$(ls -lh bundle.html | awk '{print $5}')
|
||||
|
||||
echo ""
|
||||
echo "✅ Bundle created: bundle.html ($SIZE)"
|
||||
echo ""
|
||||
echo "You can now share this file or use it as a Claude artifact."
|
||||
echo ""
|
||||
Reference in New Issue
Block a user