64
openhis-ui-vue3/public/help-center/vuepress-theme-vdoing-doc/fix-lodash.sh
Executable file
64
openhis-ui-vue3/public/help-center/vuepress-theme-vdoing-doc/fix-lodash.sh
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
# Emergency patch for lodash.template@4.18.x only. Skip when overrides pin 4.5.0.
|
||||
# Run after npm install on Linux/Mac if needed.
|
||||
|
||||
if [ -f "node_modules/lodash.template/package.json" ]; then
|
||||
VER=$(node -p "require('./node_modules/lodash.template/package.json').version" 2>/dev/null || echo "")
|
||||
case "$VER" in
|
||||
4.5.*) echo "✓ lodash.template is $VER; skip manual patch"; exit 0 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
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 with v2
|
||||
if grep -q "LODASH_TEMPLATE_PATCHED_V2" "$LODGASH_TEMPLATE"; then
|
||||
echo "✓ lodash.template already patched with v2"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Remove old patch if exists
|
||||
if grep -q "LODASH_TEMPLATE_PATCHED" "$LODGASH_TEMPLATE"; then
|
||||
echo "🔄 Removing old patch..."
|
||||
# Use sed to remove old patch (multi-line)
|
||||
sed -i '/\/\* LODASH_TEMPLATE_PATCHED \*\//,/^}$/d' "$LODGASH_TEMPLATE"
|
||||
fi
|
||||
|
||||
echo "🔧 Patching lodash.template with v2..."
|
||||
|
||||
# Create a temporary file with the patch
|
||||
PATCH='/* LODASH_TEMPLATE_PATCHED_V2 */
|
||||
// assignWith polyfill for lodash.template - Fixed version
|
||||
function assignWith(object, source, customizer) {
|
||||
if (object == null) return object;
|
||||
if (typeof customizer !== "function") {
|
||||
customizer = function(objValue, srcValue) {
|
||||
return srcValue;
|
||||
};
|
||||
}
|
||||
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(object[key], value, key, object, source);
|
||||
if (assignedValue !== undefined) {
|
||||
object[key] = assignedValue;
|
||||
}
|
||||
}
|
||||
return object;
|
||||
}
|
||||
'
|
||||
|
||||
# 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 (v2)"
|
||||
Reference in New Issue
Block a user