#!/bin/bash # Fix lodash.template assignWith issue for Linux/Mac servers # Run this script after npm/yarn install LODGASH_TEMPLATE="node_modules/lodash.template/index.js" if [ ! -f "$LODGASH_TEMPLATE" ]; then echo "❌ lodash.template not found. Please run npm install or yarn install first." exit 1 fi # Check if already patched if grep -q "LODASH_TEMPLATE_PATCHED" "$LODGASH_TEMPLATE"; then echo "✓ lodash.template already patched" exit 0 fi echo "🔧 Patching lodash.template..." # Create a temporary file with the patch PATCH=$(cat <<'EOF' /* LODASH_TEMPLATE_PATCHED */ // assignWith polyfill for lodash.template function assignWith(object, source, customizer) { if (object == null) return object; var props = Object.keys(Object(source)); for (var i = 0; i < props.length; i++) { var key = props[i]; var value = source[key]; var assignedValue = customizer ? customizer(object[key], value, key, object, source) : value; if (assignedValue !== undefined) { object[key] = assignedValue; } } return object; } EOF ) # Insert after the first line (license comment) { head -n 1 "$LODGASH_TEMPLATE" echo "$PATCH" tail -n +2 "$LODGASH_TEMPLATE" } > "$LODGASH_TEMPLATE.tmp" && mv "$LODGASH_TEMPLATE.tmp" "$LODGASH_TEMPLATE" echo "✅ Successfully patched lodash.template with assignWith function"